Javascript ScrollBy不';当在除窗口以外的任何元件上使用时,不能在IE和Chrome中工作

Javascript ScrollBy不';当在除窗口以外的任何元件上使用时,不能在IE和Chrome中工作,javascript,Javascript,正如标题所暗示的,当用户点击按钮时,我试图将div的内容滚动20像素,但到目前为止,它只在firefox中起作用。 这是html: <html> <head> <title>Testing Scroll By on Chrome</title> <meta charset="utf-8"> <style> div{ width:500px;

正如标题所暗示的,当用户点击按钮时,我试图将div的内容滚动20像素,但到目前为止,它只在firefox中起作用。 这是html:

<html>
<head>
    <title>Testing Scroll By on Chrome</title>
    <meta charset="utf-8">
    <style>
        div{
            width:500px;
            height: 500px;
            overflow: scroll;
        }
    </style>
</head>
<body >
<button onclick="goDown()">Go Down </button>
<div>
    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis id ultricies velit. Etiam ut elit viverra, iaculis purus at, sollicitudin quam. Maecenas eget mollis metus. Duis et facilisis eros, ac gravida mi. Duis turpis urna, faucibus quis risus ac, ornare euismod justo. Fusce venenatis lorem in orci sagittis aliquam. Etiam fermentum metus faucibus velit rutrum rutrum.

    Aenean tincidunt auctor tincidunt. Integer in vulputate dui, eget maximus mauris. Cras at libero vehicula, volutpat lectus ac, pulvinar enim. In porttitor leo vel laoreet facilisis. Mauris ultrices justo non lectus maximus, ut blandit augue malesuada. Lorem ipsum dolor sit amet, consectetur adipiscing elit. In eget turpis pulvinar, iaculis nisl vitae, mattis dui. Vestibulum facilisis posuere libero at venenatis. Vestibulum posuere tempor est, ut pretium ligula sollicitudin viverra. Sed id tellus nibh. Curabitur varius velit nibh, id placerat nunc venenatis eget.

    Vivamus gravida consectetur urna id blandit. Integer mauris felis, dignissim ut risus eget, consequat convallis odio. Donec vitae tristique est, et sollicitudin urna. Nam justo est, bibendum consequat luctus quis, scelerisque eget enim. Morbi lorem ligula, tincidunt ut molestie at, scelerisque et turpis. Sed lacinia dictum pellentesque. Fusce vestibulum, leo ac auctor iaculis, ante magna faucibus nulla, at elementum sem lectus quis tortor. Suspendisse eu dignissim lacus, vel elementum felis. Praesent non molestie ex, et ornare massa.

    Nullam diam lacus, ultrices sed eleifend laoreet, placerat a dolor. Quisque non enim id erat tincidunt fringilla. Integer neque lacus, aliquet id iaculis sed, efficitur ac velit. Etiam felis felis, cursus a massa ac, tincidunt convallis leo. Cras tempor ante laoreet dignissim bibendum. Nullam non auctor turpis. Etiam in est posuere, gravida nulla nec, maximus purus. Fusce non rutrum quam. Pellentesque in orci facilisis, posuere lorem sed, pharetra sem. Quisque malesuada, dui in hendrerit posuere, sem est iaculis justo, sit amet iaculis lectus neque sit amet velit. Etiam vulputate ut diam at aliquet. Nunc ultricies velit non elit vehicula malesuada id a odio.

    Vestibulum vitae gravida lectus. Phasellus bibendum pharetra maximus. Maecenas et velit quis augue tincidunt vehicula. Proin pharetra magna in lectus feugiat, sed hendrerit neque suscipit. Sed pretium aliquam nunc, eu commodo nunc. Mauris quis dui diam. In fringilla leo ut arcu pellentesque elementum sed in metus. Nam maximus diam felis, nec lacinia elit rhoncus sit amet. In maximus, leo eget consequat finibus, augue purus dictum dolor, a sollicitudin risus mauris eu ante. Etiam dapibus interdum ligula ac gravida. Morbi non turpis posuere, volutpat dui sit amet, malesuada tortor. Morbi mollis, ipsum eu vulputate porttitor, enim lacus elementum leo, sed ornare lacus felis ut sapien. Sed lobortis ipsum et dui facilisis, nec consequat nibh gravida. Sed tristique libero eu efficitur pharetra. Donec suscipit consequat nibh a bibendum. Fusce efficitur mi a nibh vestibulum scelerisque.

    In mi velit, facilisis sed tortor vitae, dapibus scelerisque lectus. Quisque laoreet mollis mattis. Proin id mauris euismod dolor suscipit bibendum. Suspendisse ut convallis nisl. Nunc suscipit non ex lobortis rutrum. Suspendisse ornare nibh eu sapien rhoncus molestie. Vestibulum ornare massa feugiat, convallis metus eu, sagittis lorem. Sed nec metus faucibus, iaculis nisi at, pulvinar odio. Ut dignissim ex a elementum hendrerit. Nullam lobortis ultrices quam, id feugiat odio iaculis eu. In in ex elementum, rhoncus sapien sit amet, consectetur est. Aliquam dignissim velit tortor, et porttitor arcu suscipit at. Morbi in dui vel libero feugiat venenatis. 
</div>
</body>
</html>

在Chrome上测试滚动条
div{
宽度:500px;
高度:500px;
溢出:滚动;
}
下降
Lorem ipsum dolor sit amet,是一位杰出的献身者。杜伊斯·尤里西斯·维利特。我是维韦拉的精英,我是帕鲁斯,索利西丁。梅塞纳斯·埃吉特·莫利斯·梅特斯。Duis et facilisis eros,ac孕妇mi。乌尔纳,福西布斯·奎斯·里苏斯·阿克,或者尤伊斯莫·胡斯托。虎耳草中的维尼那鱼。发酵液滴鼻法。
埃尼安·汀西登拍卖人汀西登。整数单位:酒后驾车,eget maximus mauris。自由汽车公司的CRA,帕特·莱克图斯ac,普尔文纳埃尼姆。在porttitor leo vel laoreet facilisis。毛里斯·乌尔特里斯只不过是个无名小卒,但他是个无名小卒。Lorem ipsum dolor sit amet,是一位杰出的献身者。在pulvinar的eget turpis,iaculis nisl vitae,mattis dui。威尼斯纳蒂斯的自由前庭设施。前庭是暂时性的,但前庭是永久性的。我告诉你尼布。维利特尼布葡萄品种库拉比图尔。
怀孕的孩子们,我们的孩子们。整型毛里斯·费利斯、威严和威严、康塞卡·康瓦利斯·奥迪奥。请不要为自己的生活而烦恼。南朱斯托东部,比本杜姆·卢克图斯·奎斯(luctus quis),权杖埃吉特·埃尼姆(scelerisque eget enim)。Morbi lorem ligula,tincidunt ut molestie at,scelerisque和turpis。佩伦茨克的名言。前庭导板,利奥·艾库利斯拍卖人,前大浮雕,位于托托托尔之地。休止符欧盟显贵,猫咪元素。无胎膜前病变等。
一片空白,一片空白,一片空白。我不喜欢弗林西利亚。整数neque lacus,aliquet id iaculis sed,efficitur ac velit。猫咪,马萨,狮子座。比本杜姆的权贵们的临时协议。非拍卖者turpis。这是一个很好的例子,没有怀孕的孩子。不含芸香。orci facilisis中的Pellentsque,posuere lorem sed,pharetra sem。在亨德雷特·波苏尔的酒后驾车中,他坐在阿梅特·艾库利斯·胡斯托的座位上,他坐在阿梅特·维利特的座位上。Etiam在aliquet处计算直径。非精英交通工具的特殊用途。
妊娠前庭。大叶扁豆。这是一辆汽车。在《封建主义选》中的《大法王》中,塞德·亨德雷特·内克·苏西比特(sed hendrerit neque suscipit)。这是一个很好的例子。毛里斯·奎斯酒后驾车。在弗林蒂利亚,狮子座和阿库·佩伦茨克的元素在梅特斯出现。不,最大的钻石是猫科动物,而最优秀的钻石是猫科动物。在《马克西姆斯》中,利奥·埃吉特·康塞奎特·菲尼布斯,奥古斯·普卢斯·迪克特·多洛(augue purus dictum dolor),一位《莫里斯·莫里斯·欧兰特》(risus mauris eu ante)中的独角兽。孕妇的中间舌苔。莫比·非图尔皮斯·波苏尔,帕特·杜伊·西特,马莱苏亚达·托托。Morbi mollis,ipsum eu vulputate porttitor,enim lacus elementum leo,sed ornare lacus felis ut sapien。同侧肢体和双下肢便利,nec用于孕妇。这是自由欧盟的效率。请不要把你的名字写在纸上。我的前庭是一个半圆形的。
在米维利特(mi velit)中,被称为托托维塔(tortor vitae)的设施,被称为权杖(dapibus scelerisque lectus)。奎斯克·劳里特·莫利斯·马蒂斯。我是毛里斯·尤伊斯莫德·多洛·苏西比特·比本杜姆。暂时停止。Nunc非罗波尔蒂斯芦苇寄主。悬钩子。前庭,前庭,前庭,前庭,前庭。在普尔维纳尔奥迪奥,他是一位新的作家。我是一个有尊严的人。我是奥迪奥·亚库利斯·欧盟的封建者。在前元素中,智者坐在阿梅特,是圣者。他是一个有尊严的人。莫比在维尼那提斯自由世仇的两层。
这是javascript:

<script>
function goDown(){
  document.getElementsByTagName("div")[0].scrollBy(0,20);
}
</script>

函数仓库(){
document.getElementsByTagName(“div”)[0].scrollBy(0,20);
}

在Chrome和IE中有什么解决方案吗?

我认为最好的解决方案是使用
scrollLeft/scrollTop
属性

也就是说,你可以说,而不是
elem.scrollBy(0,10)
-->
elem.scrollTop=elem.scrollTop+10

或者,您可以插入
元素。prototype

Element.prototype.scrollBy = function(x,y) {
  this.scrollLeft = this.scrollLeft + x;
  this.scrollTop = this.scrollTop + y;
};

MSIE和Edge仍然不支持
元素。自2019年起scrollBy
。基于这个原因,我构建了一个最小的npm包,它将符合W3C规范的
scrollBy
scrollTo
scroll
方法添加到
元素
实例中

或者,您可以使用提供更多功能但大小约为其两倍的