Jquery图像滑块自动播放

时间:2014-10-02 06:53:20

标签: javascript jquery

我想从我的滑块jquery部分添加一个自动播放。我能做什么?

我有下一个&一个上一个按钮,但我想添加一个自动播放,当鼠标悬停在幻灯片自动停止的图像上时。

任何人都可以帮助我吗?

这是我在codepen

中的 DEMO 页面
jQuery(document).ready(function ($) {

    var slideCount = $('#slider ul li').length;
    var slideWidth = $('#slider ul li').width();
    var slideHeight = $('#slider ul li').height();
    var sliderUlWidth = slideCount * slideWidth;

    $('#slider').css({ width: slideWidth, height: slideHeight });

    $('#slider ul').css({ width: sliderUlWidth, marginLeft: - slideWidth });

    $('#slider ul li:last-child').prependTo('#slider ul');

    function moveLeft() {
        $('#slider ul').animate({
            left: + slideWidth
        }, 200, function () {
            $('#slider ul li:last-child').prependTo('#slider ul');
            $('#slider ul').css('left', '');
        });
    };

    function moveRight() {
        $('#slider ul').animate({
            left: - slideWidth
        }, 200, function () {
            $('#slider ul li:first-child').appendTo('#slider ul');
            $('#slider ul').css('left', '');
        });
    };

    $('a.control_prev').click(function () {
        moveLeft();
    });

    $('a.control_next').click(function () {
        moveRight();
    });

});

3 个答案:

答案 0 :(得分:5)

像这样修改你的脚本:

jQuery(document).ready(function ($) {

    var slideCount = $('#slider ul li').length;
    var slideWidth = $('#slider ul li').width();
    var slideHeight = $('#slider ul li').height();
    var sliderUlWidth = slideCount * slideWidth;

    $('#slider').css({ width: slideWidth, height: slideHeight });

    $('#slider ul').css({ width: sliderUlWidth, marginLeft: - slideWidth });

    $('#slider ul li:last-child').prependTo('#slider ul');

    function moveLeft() {
        $('#slider ul').animate({
            left: + slideWidth
        }, 1000, function () {
            $('#slider ul li:last-child').prependTo('#slider ul');
            $('#slider ul').css('left', '');
        });
    };
  function do_slide(){
    interval = setInterval(function(){
      moveLeft();
    }, 1000);
  }
  do_slide();


     $('ul li').hover(function(){
       clearInterval(interval);
     });
      $('ul li').mouseleave(function(){
       do_slide();
     });
}); 

答案 1 :(得分:1)

我找到了这段代码的解决方案:

$(function(){
    setInterval(function () {
        moveRight();
    }, 3000);
  });

答案 2 :(得分:0)

在最终"})之前将其添加到javascript代码的末尾; "

      var myparam1 = true;

      (function(){
       if (myparam1){
        moveLeft();};
        setTimeout(arguments.callee, 1000);
      })();

      $( "#slider" )
        .mouseenter(function(){myparam1 = false;})
        .mouseleave(function(){myparam1 = true;});