Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我可以使用css或jQuery更改滚动速度吗?_Jquery_Css_Scroll - Fatal编程技术网

我可以使用css或jQuery更改滚动速度吗?

我可以使用css或jQuery更改滚动速度吗?,jquery,css,scroll,Jquery,Css,Scroll,在下面的示例中,我想降低div内容的滚动速度,尤其是在使用鼠标滚轮时,因为一个滚轮滴答地滚动大约div的高度 有没有可能用CSS来控制它,如果没有,用javascript(也许用jQuery)来控制它 。可滚动{ 宽度:500px; 高度:70像素; 溢出:自动; } 对于所有的错误,我们都要清楚地认识到这一点,因为我们必须清楚地认识到,所有人都应该受到赞扬、尊重和尊重,因为他们都是发明家和准建筑师。Nemo enim ipsam Voluptate是一个有着丰富经验的人,他是一个理性的人。

在下面的示例中,我想降低div内容的滚动速度,尤其是在使用鼠标滚轮时,因为一个滚轮滴答地滚动大约div的高度

有没有可能用CSS来控制它,如果没有,用javascript(也许用jQuery)来控制它

。可滚动{
宽度: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中有不同的行为