我可以使用css或jQuery更改滚动速度吗?
在下面的示例中,我想降低div内容的滚动速度,尤其是在使用鼠标滚轮时,因为一个滚轮滴答地滚动大约div的高度 有没有可能用CSS来控制它,如果没有,用javascript(也许用jQuery)来控制它我可以使用css或jQuery更改滚动速度吗?,jquery,css,scroll,Jquery,Css,Scroll,在下面的示例中,我想降低div内容的滚动速度,尤其是在使用鼠标滚轮时,因为一个滚轮滴答地滚动大约div的高度 有没有可能用CSS来控制它,如果没有,用javascript(也许用jQuery)来控制它 。可滚动{ 宽度:500px; 高度:70像素; 溢出:自动; } 对于所有的错误,我们都要清楚地认识到这一点,因为我们必须清楚地认识到,所有人都应该受到赞扬、尊重和尊重,因为他们都是发明家和准建筑师。Nemo enim ipsam Voluptate是一个有着丰富经验的人,他是一个理性的人。
。可滚动{
宽度:500px;
高度:70像素;
溢出:自动;
}
对于所有的错误,我们都要清楚地认识到这一点,因为我们必须清楚地认识到,所有人都应该受到赞扬、尊重和尊重,因为他们都是发明家和准建筑师。Nemo enim ipsam Voluptate是一个有着丰富经验的人,他是一个理性的人。最重要的一点是,在劳动和就业领域,所有人都有自己的权利、义务和义务。但是最低限度的成本,是否需要在实验室中进行实际操作,是否需要从消费品中获得流动性?你是否应该在一个自由的世界里为自己的利益辩护?你是否应该在一个自由的世界里为自己的利益辩护?
否。滚动速度由浏览器决定(通常直接由计算机/设备上的设置决定)。CSS和Javascript不会(或者不应该)影响系统设置
也就是说,有很多方法可以通过移动自己的内容来抵消滚动,从而伪造不同的滚动速度。然而,就可用性、可访问性和对用户的尊重而言,我认为这样做是一个可怕的想法,但我会首先查找目标浏览器触发的指示滚动的事件
一旦可以捕获滚动事件(假设可以),就可以动态调整内容,使所需部分可见
另一种方法是在Flash中处理这一问题,它至少为您提供了对滚动事件的某种程度的控制。滚动速度可以通过javascript(或jQuery等js库)进行更改、调整或反转 你为什么要这么做?视差只是原因之一。我不知道为什么会有人反对这样做——同样的反对隐藏div、上下滑动元素等的负面论据也会出现。网站总是技术功能和用户体验设计的结合体——一个好的设计师几乎可以使用任何技术能力来改进用户体验。这就是他/她优秀的原因 葡萄牙代表团制作了一个精彩的演示,复制如下: HTML:
<div id="myDiv">
Use the mouse wheel (not the scroll bar) to scroll this DIV. You will see that the scroll eventually slows down, and then stops. <span class="boldit">Use the mouse wheel (not the scroll bar) to scroll this DIV. You will see that the scroll eventually slows down, and then stops. </span>
</div>
function wheel(event) {
var delta = 0;
if (event.wheelDelta) {(delta = event.wheelDelta / 120);}
else if (event.detail) {(delta = -event.detail / 3);}
handle(delta);
if (event.preventDefault) {(event.preventDefault());}
event.returnValue = false;
}
function handle(delta) {
var time = 1000;
var distance = 300;
$('html, body').stop().animate({
scrollTop: $(window).scrollTop() - (distance * delta)
}, time );
}
if (window.addEventListener) {window.addEventListener('DOMMouseScroll', wheel, false);}
window.onmousewheel = document.onmousewheel = wheel;
资料来源:
我刚刚基于该代码创建了一个纯Javascript函数。 仅Javascript版本演示: 这是来自jQuery的独立代码
if (window.addEventListener) {window.addEventListener('DOMMouseScroll', wheel, false);
window.onmousewheel = document.onmousewheel = wheel;}
function wheel(event) {
var delta = 0;
if (event.wheelDelta) delta = (event.wheelDelta)/120 ;
else if (event.detail) delta = -(event.detail)/3;
handle(delta);
if (event.preventDefault) event.preventDefault();
event.returnValue = false;
}
function handle(sentido) {
var inicial = document.body.scrollTop;
var time = 1000;
var distance = 200;
animate({
delay: 0,
duration: time,
delta: function(p) {return p;},
step: function(delta) {
window.scrollTo(0, inicial-distance*delta*sentido);
}});}
function animate(opts) {
var start = new Date();
var id = setInterval(function() {
var timePassed = new Date() - start;
var progress = (timePassed / opts.duration);
if (progress > 1) {progress = 1;}
var delta = opts.delta(progress);
opts.step(delta);
if (progress == 1) {clearInterval(id);}}, opts.delay || 10);
}
只需使用这个js文件。(我提到了两个不同js文件的示例。希望第二个是您需要的)
您只需更改参数即可更改滚动量、速度等
这里有一个
你也可以试试。这里有一个如果一个网站弄乱了我的滚轮速度,我会非常生气。@Juhana相同,但我不是在做UI决定。你可以在croll上返回当前的滚动位置,然后再从中添加/减去多少,然后将其设置为当前滚动position@BenjaminCrouzier一旦您可以捕获滚动事件(假设您可以)-$(窗口),请更新您选择的答案。滚动()有关详细信息,请参阅我的答案。根据此页面上的其他答案,此答案不正确,并且在其当前状态下会误导观众。请考虑更新你的答案。这可能是一个可怕的想法,但不改变速度有时甚至更可怕。例如,我有一个300行的表格,当我非常努力的时候,我可以一次滚动3行。最终,卷轴是一个动画,而不是一个跳跃。我猜你考虑控制任何元素的动画在网页中,你开发一个合法的权利。作为前端开发人员,这应该是您的责任。对吗?当我们谈论根元素上几乎不可避免的动画时,为什么你会有不同的想法?当你在向下滚动后立即向上滚动时不起作用此演示在Chrome Opera和FIreFox中有不同的行为