在没有任何插件的jquery中可滚动,旋转木马,滑块 - 最简单的方法

时间:2011-03-09 20:18:07

标签: jquery slider cycle

我正在寻找有关循环动画的jQuery滑块(如可滚动插件)的教程。 没有任何插件,最简单的方法,教程

2 个答案:

答案 0 :(得分:5)

更新时间:2014年8月27日

  
    $(function() {
        /* author: Luca Filosofi * contact: aseptik@gmail.com * http://devilmaycode.it * license: Public * Updated: 27/08/2014 */
        var animating = false, iXS = 3, $slider = $('.panel-inner'), liW = $slider.find('li:first').width(), liFW = (liW * $slider.find('li').length);
        $slider.width(liFW);
        $('.button a').on('click', function(e) {
            e.preventDefault();
            if(!animating){
                var left = Math.abs(parseInt($slider.css('left')));
                var side = ($(this).data('direction') == 'right')  ? (((left + (liW * iXS)) >= liFW) ? 0 : -(left + liW)) : ((left > 0) ? -(left - liW) : -(liFW - (liW * iXS)));
                rotate(side);
            }
        });
        var rotate = function(leftY) {
            if(!animating){
                animating = true;
                $slider.stop(true, true).animate({left : leftY}, 500, function(){animating = false;});
            }
        }
    });

答案 1 :(得分:1)

<强>样本

  

https://jsfiddle.net/w9wjk22n/

我写了一些代码:

    <script type="text/javascript"> 
        $(document).ready(function() {      
            $('a.next').click(function() {
                var duplicate = $('#a li:first').clone();

                //
                $(duplicate).appendTo('#a ul');

                $('#a ul').animate({
                    marginLeft: '-=52px'
                }, 2000, 'linear', function() {
                    $('#a li:first').remove();
                }); 


            });
        });
</script>
<style type="text/css">
        #a {
            list-style: none;
            width: 52px;
            height: 50px;
            border: 1px solid blue;
            margin-left: 200px;
        }   
        #a ul {
            margin: 0;
            margin-left: -104px;
            padding: 0;
            width: 420px;
            border: 1px solid green;
            height: 50px;
            position: absolute;
        }   
        #a ul li {
            border: 1px solid red;
            float: left;
            width: 50px;
            text-align: center;
        }   
        .services {
            border: 1px solid green;
            padding: 5px;
            width: 300px;
            margin-left: 100px;
            display: none;
        }</style>
    <a href="#" class="next">next</a>
    <div id="a">
        <ul>
            <li>1</li>
            <li>2</li>
            <li>3</li>
            <li>4</li>
            <li>5</li>
            <li>6</li>
            <li>7</li>
            <li>8</li>
        </ul>
    </div>

...但是当我删除第一个元素时,元素在动画后移动到左边,当我点击“下一个”几次时,元素将位于蓝色容器之外。