Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/439.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
Javascript 滚动div直到鼠标向下移动到最后一个div_Javascript_Jquery_Iscroll4 - Fatal编程技术网

Javascript 滚动div直到鼠标向下移动到最后一个div

Javascript 滚动div直到鼠标向下移动到最后一个div,javascript,jquery,iscroll4,Javascript,Jquery,Iscroll4,还有一个问题。我已经建立了一个新的组织 我想滚动mousedown上的div。它应该滚动到最后: 不断地 没有任何中断 具有静态速度 直到最后的 div ,或者在中间做 MousUpU//> > 有可能实现这一点吗?您能否检查此解决方案: html: 您可以更改时间值以实现速度首选项。 希望有帮助。检查这把小提琴: 还有一个问题。当它到达终点时,它不会停止。iScroll使用CSStranslate进行滚动,我找不到一种方法来获取当前的翻译表单。目前正在寻找解决方案 更新 iScroll

还有一个问题。我已经建立了一个新的组织

我想滚动
mousedown
上的
div
。它应该滚动到最后:

  • 不断地
  • 没有任何中断
  • 具有静态速度

直到最后的<代码> div ,或者在中间做<代码> MousUpU//> >


有可能实现这一点吗?

您能否检查此解决方案:

html:

您可以更改时间值以实现速度首选项。 希望有帮助。

检查这把小提琴:

还有一个问题。当它到达终点时,它不会停止。iScroll使用CSS
translate
进行滚动,我找不到一种方法来获取当前的翻译表单。目前正在寻找解决方案

更新

iScroll有一个useTransform选项,使用它我们可以要求它不要使用translate,而是使用CSS left属性进行滚动。通过这种方式,我们可以很容易地确定是否已经达到了目的(无论哪种方式)。要使用,只需在初始化iScroll时设置
useTransform:false

更新2


检查这把小提琴:

我修改了@techfoobar代码,并做了类似的操作,这两个操作都会持续滚动,直到鼠标向下结束,并在单击时将一个div移入或移出。代码片段是:

        var scrolling=false;
        var scrollTimer=-1;
        $('#next').bind('mousedown',function () {
            scrolling = true;
            scrollTimer = setInterval(function () {
                scrollDivRight();
            }, 100);
            return false;
        });
        $('#next').bind('mouseup',function () {
            scrolling = false;
            clearInterval(scrollTimer);
            return false;
        });
        $('#next').bind('mouseout',function () { /*For smoother effect and also prevent if any previous delay (eg. 100ms)*/
            scrolling = false;
            clearInterval(scrollTimer);
            return false;
        });
        scrollDivRight:function(){
            if(!scrolling) return false;
            myScroll.scrollTo(177, 0, 400, true);       
        }

请建议是否有比这更好的。当然,@techfoobar在他的回答中提到的问题仍然没有解决。

好吧,即使这个问题也有我在我的回答中提到的问题(不会在最后停止)。此外,由于鼠标向上是由触发器元素本身处理的,如果用户错误地将鼠标移开,则此后无法停止滚动。我已经检查了您所做的演示。除了你提到的那一点之外,它工作得很好。我注意到的一件事是,在mousedown上,它正在做它的工作,但在立即单击并离开(单次单击)时,需要做一些事情,以便只移动一个div。我有一个固定的div宽度。那么你能不能研究一下这项工作。在这里,单击一次就发生了一些不寻常的事情。如果您查看iscroll源代码,您将看到有一个
useTransform
选项,您可以使用该选项要求它不要使用translate,而是使用CSS left属性进行滚动。通过这种方式,我们可以很容易地确定是否已经达到了目的(无论哪种方式)。我尝试了你建议的方法。在滚动过程中,是否有办法在iscroll4的move函数中获取当前的左位置。在最后,我们可以得到左值,但在滚动时,如何理解滚动器已经到达末尾,应该停止滚动,直到我们在iscroll的move函数中得到滚动的左值。添加了一个小提琴,演示
useTransform:false
方法
jQuery("#click").bind('mousedown', function(){
    intInterval=setInterval(function(){
            myScroll.scrollTo(25, 0, 800, true);
    },30);
});
jQuery("#click").bind('mouseup', function(){
    intInterval=window.clearInterval(intInterval);
});
        var scrolling=false;
        var scrollTimer=-1;
        $('#next').bind('mousedown',function () {
            scrolling = true;
            scrollTimer = setInterval(function () {
                scrollDivRight();
            }, 100);
            return false;
        });
        $('#next').bind('mouseup',function () {
            scrolling = false;
            clearInterval(scrollTimer);
            return false;
        });
        $('#next').bind('mouseout',function () { /*For smoother effect and also prevent if any previous delay (eg. 100ms)*/
            scrolling = false;
            clearInterval(scrollTimer);
            return false;
        });
        scrollDivRight:function(){
            if(!scrolling) return false;
            myScroll.scrollTo(177, 0, 400, true);       
        }