Ползунок непрерывной прокрутки в том же направлении с помощью jquery - PullRequest
1 голос
/ 23 марта 2012

Я использую jquery Tiny Carousel для скольжения изображений, но наш клиент просит непрерывную прокрутку в одном направлении, я искал его в течение дня, и я не могу найти точную вещь ... Кто-нибудь здесь сталкивался?Это?

Теперь я использую этот плагин для tinycarousel

<script type="text/javascript">
          jQuery(document).ready(function () {
          jQuery("#slider").tinycarousel({ axis: 'x', display: 1, interval: true })
         });
</script>

, и я обнаружил, что с этим зацикливание невозможно, кто-нибудь знает, как это зациклить?или укажите мне другой слайдер jquery control ....

Ответы [ 8 ]

2 голосов
/ 17 мая 2014

Вот демонстрация с использованием плагина jQuery.carouFredSel

HTML

<div id="wrapper">
    <div id="carousel">
        <div>
            <img src="img/fruit1.png" alt="fruit1" width="200" height="200" />
            <span>Apple</span>
        </div>
        <div>
            <img src="img/fruit2.png" alt="fruit2" width="200" height="200" />
            <span>Mandarin</span>
        </div>
        <div>
            <img src="img/fruit3.png" alt="fruit3" width="200" height="200" />
            <span>Banannas</span>
        </div>
        <div>
            <img src="img/fruit4.png" alt="fruit4" width="200" height="200" />
            <span>Cherries</span>
        </div>
        <div>
            <img src="img/fruit5.png" alt="fruit5" width="200" height="200" />
            <span>Orange</span>
        </div>
        <div>
            <img src="img/fruit6.png" alt="fruit6" width="200" height="200" />
            <span>Melon</span>
        </div>
        <div>
            <img src="img/fruit7.png" alt="fruit7" width="200" height="200" />
            <span>Lemon</span>
        </div>
        <div>
            <img src="img/fruit8.png" alt="fruit8" width="200" height="200" />
            <span>Grapes</span>
        </div>
        <div>
            <img src="img/fruit9.png" alt="fruit9" width="200" height="200" />
            <span>Peach</span>
        </div>
        <div>
            <img src="img/fruit10.png" alt="fruit10" width="200" height="200" />
            <span>Pear</span>
        </div>
        <div>
            <img src="img/fruit11.png" alt="fruit11" width="200" height="200" />
            <span>Strawberry</span>
        </div>
        <div>
            <img src="img/fruit12.png" alt="fruit12" width="200" height="200" />
            <span>Melon</span>
        </div>
    </div>
</div>

JavaScript

$(function() {

    var $c = $('#carousel'),
        $w = $(window);

    $c.carouFredSel({
        align: false,
        items: 10,
        scroll: {
            items: 1,
            duration: 2000,
            timeoutDuration: 0,
            easing: 'linear',
            pauseOnHover: 'immediate'
        }
    });


    $w.bind('resize.example', function() {
        var nw = $w.width();
        if (nw < 990) {
            nw = 990;
        }

        $c.width(nw * 3);
        $c.parent().width(nw);

    }).trigger('resize.example');

});

CSS

html, body {
    height: 100%;
    padding: 0;
    margin: 0;
}
body {
    background-color: #eee;
    position: relative;
    min-height: 300px;
}
body * {
    font-family: Arial, Geneva, SunSans-Regular, sans-serif;
    font-size: 14px;
    color: #333;
    line-height: 22px;
}

#wrapper {
    background-color: #fff;
    border-top: 1px solid #ccc;
    width: 100%;
    height: 50%;
    margin-top: -1px;
    position: absolute;
    left: 0;
    top: 50%;
}
#carousel {
    margin-top: -100px;
}
#carousel div {
    text-align: center;
    width: 200px;
    height: 250px;
    float: left;
    position: relative;
}
#carousel div img {
    border: none;
}
#carousel div span {
    display: none;
}
#carousel div:hover span {
    background-color: #333;
    color: #fff;
    font-family: Arial, Geneva, SunSans-Regular, sans-serif;
    font-size: 14px;
    line-height: 22px;
    display: inline-block;
    width: 100px;
    padding: 2px 0;
    margin: 0 0 0 -50px;
    position: absolute;
    bottom: 30px;
    left: 50%;
    border-radius: 3px;
}
2 голосов
/ 28 декабря 2013

Я делаю это

в jquery.tinycarousel.js Найдите функцию initialize () и замените

iSteps = Math.max(1, Math.ceil(oPages.length / options.display) - iLeftover); 

на

iSteps = 9999999999999999999999999;

ИЛИ в jquery.tinycarousel.min.js Найдите

u=Math.max(1,Math.ceil(k.length/e.display)-x);

и замените на u = 9999999999999999999999999;

Затем

поместите этот код в готовый документ

    $('#slider1').tinycarousel({'display':3});  
    var SliderLength = $('#slider1 .viewport li').length;//set li or img or what ever
    var append = $('#slider1 .viewport > ul').html();//grab the curent items
    $('.buttons.next').mouseup(function()
    {//next button click event
        $('#slider1 ul').append(append);//append those item 

        var sliderWidth = parseInt($('#slider1 .overview').width());
        var curLength = parseInt($('#slider1 li').length);
        $('#slider1 .overview').width((sliderWidth * (curLength / SliderLength) ));//update content width
    });

Демо

0 голосов
/ 19 декабря 2013

я думаю, что это должно работать

$('#slider1').tinycarousel({start: 2,
         interval: true 
        });
0 голосов
/ 28 июля 2012

Я внес некоторые изменения в Tiny Carousel, чтобы добавить циклы.Я только что подобрал кое-что из функции скользящего времени.

http://pastebin.com/3M3akv9r

0 голосов
/ 29 марта 2012

Наконец я нашел ползунок здесь

http://javascript.about.com/library/blcmarquee1.htm

0 голосов
/ 23 марта 2012

Для веб-сайта моего приложения для iPhone ( niwuzzles.com ) я использовал для этого плагин Alen Grakalic EasySlider.

Описание проекта:
http://cssglobe.com/post/5780/easy-slider-17-numeric-navigation-jquery-slider

Демонстрация непрерывного слайда:
http://cssglobe.com/lab/easyslider1.7/01.html

Пример кода:

<head>
    <script type="text/javascript" src="js/jquery.js"></script>
    <script type="text/javascript" src="js/easySlider1.7.js"></script>
    <script type="text/javascript">
        $(document).ready(function(){   
            $("#slider").easySlider({
                auto: true, 
                continuous: true
            });
        }); 
    </script>
</head>
<body>
    <div id="slider">
            <ul>                
                <li><img src="img1.png" /></li>
                <li><img src="img2.png" /></li>
                <li><img src="img3.png" /></li>
                <li><img src="img4.png" /></li>
            </ul>
        </div>
</body>
0 голосов
/ 23 марта 2012

Это то, что я кодировал в ситуации, подобной вашей.Это прокручивается вверх, но вы можете легко изменить его для прокрутки в любом направлении.Измените алгоритм с модификации marginTop на:

  • увеличение marginTop на 1, для прокрутки вверх
  • увеличение marginLeft на 1, для прокрутки слева направо
  • marginLeft уменьшается на 1, для прокрутки справа налево

    (function($)
    {
        var ScrollMe = function(element)
    {
           var elem = $(element);
           var obj = this;
    
           elem.wrapInner("<div class='mbui_scrollable'></div>");
           var scr=elem.children("div.mbui_scrollable");
    
           setInterval($(this).scrollUp,130); //CHANGE HERE FOR SPEED
       };
       $.fn.scrollme = function()
       {
           return this.each(function()
           {
               var element = $(this);
               // Return early if this element already has a plugin instance
               if (element.data('scrollme')) return;
               // pass options to plugin constructor
               var myplugin = new ScrollMe(this);
               // Store plugin object in this element's data
               element.data('scrollme', myplugin);
           });
       };
       $.fn.scrollUp = function(elem)
       {
            var allObj=$(".mbui_scrollable");
            for(i=0;i<allObj.length;i++)
            var s=$(allObj[i]).css('marginTop');
                var n=parseInt(s)-1;            //CHANGE HERE TO CHANGE DIRECTION AND SPEED
                var h=$(allObj[i]).css('height');
                if((n*-1)>=parseInt(h))
                    n=$(allObj[i]).parent().css('height');
                $(allObj[i]).css('marginTop',n);
       };})(jQuery);
    

Применяется к таким элементам, как:

$(".scroll").scrollme();
0 голосов
/ 23 марта 2012

Попробуйте это

$(function(){

var current = 1;
var totalImages = $("#slider-code li").size();
var oSlider = $('#slider-code').tinycarousel({        
    animation:false,
    controls: false
});

$('#nextButton').click(function(){
     current += 1;
    if(current > totalImages){
     current = 1;   
    }
     oSlider.tinycarousel_move(current);          
});

});

и вот демо в jsfiddler

...