滚动左/右图像与动画(Scroll left / right an image with anima

2019-10-19 20:55发布

请看看这个DEMO

通过使用代码这篇文章我已经成功地使图像通过点击左侧或右侧链接水平移动。

我想达成的目标是,使图像更流畅跳跃莫名其妙。

这里是我的代码:

<script>
    var scrollDiv = function(dir, px) {
        var scroller = document.getElementById('scroller');
        if (dir == 'l'){
            scroller.scrollLeft -= px;
        }
        else if (dir == 'r'){
            scroller.scrollLeft += px;
        }
    }
</script>

<a class="tArrowL" href="javascript: void(0);" onclick="scrollDiv('l', 80); return false;">« left</a>
<a class="tArrowR" href="javascript: void(0);" onclick="scrollDiv('r', 80); return false;">right »</a>
<div class="wrapOut">
    <div id="scroller" class="wrapIn">
        <img id="" src="http://lorempixel.com/output/nature-q-c-1044-480-2.jpg" />
    </div>
</div>

我试图用animate功能,但没有成功:

var scrollDiv = function(dir, px) {
    var scroller = document.getElementById('scroller');
    if (dir == 'l'){
        scroller.animate( { scrollLeft: '-= px' }, 1000);
    }
    else if (dir == 'r'){
        scroller.animate( { scrollLeft: '+= px' }, 1000);
    }
}

我在触摸屏台式机在Windows 8上的IE 10的测试,所以它必须在刷卡/ TAP事件工作了。

任何帮助,将不胜感激!

Answer 1:

DEMO

您需要动画scrollLeft jQuery对象的属性scroller ,而不是HTMLObject scroller ,因为它具有方法前者animate

var scrollDiv = function (dir, px) {
    var scroller = document.getElementById('scroller'), // HTMLObject
        go;   // holds '+=' or '-='

    if (dir == 'l') go = '-=';
     else go = '+=';     // no need for else-if here

    // `$(HTMLObject)` ---> `jQuery Object`
    $(scroller).animate({
        scrollLeft: go + px  // becomes '-=int' or '+=int' 
    }, 500); // duration
}


文章来源: Scroll left / right an image with animation