1

このスライダー コードを作成しました。一時停止して続行するようにしたいと思いonmouseenterます。onmouseoutスライドの 1 つでビデオを再生します。スライダーが移動する前に、スライダーでビデオ全体を再生したいと考えています。

 // settings
var $slider = $('.slider'); 
var $slide = 'li'; 
var $transition_time = 1000; 
var $time_between_slides = 4000; 

function slides(){
  return $slider.find($slide);
}

slides().fadeOut();

// set active classes
slides().first().addClass('active');
slides().first().fadeIn($transition_time);

// auto scroll 
$interval = setInterval(
    function(){
      var $i = $slider.find($slide + '.active').index();

      slides().eq($i).removeClass('active');
      slides().eq($i).fadeOut($transition_time);

      if (slides().length == $i + 1) $i = -1; 

      slides().eq($i + 1).fadeIn($transition_time);
      slides().eq($i + 1).addClass('active');
    }
    , $transition_time +  $time_between_slides 
);  

助けてくれてありがとう。

4

2 に答える 2

0
var timeInterval = null, transition_time = 1000, time_between_slides = 4000;
$(document).ready(function () {
    var $slider = $('.slider');
    var $sliderLi = $slider.find('li');

    $sliderLi.hide();
    //$slider.find('li:first').addClass('active').fadeIn(transition_time);
    slideShow();
    timeInterval = setInterval(slideShow, transition_time + time_between_slides);

    function slideShow() {
        var i = $slider.find('li.active').index();

        $sliderLi.eq(i).removeClass('active').fadeOut(transition_time);

        if (i == -1 || $sliderLi.length == i + 1) {
            $slider.find('li:first').addClass('active').fadeIn(transition_time);
        } else {
            $sliderLi.eq(i + 1).addClass('active').fadeIn(transition_time);
        }
    };

    $slider.mouseenter(function () {
        clearInterval(timeInterval); //Or clearTimeout(timeInterval);
    }).mouseleave(function () {
        timeInterval = setInterval(slideShow, transition_time + time_between_slides);
    });
});

デモから

于 2013-01-10T08:34:45.403 に答える
0

ここでコードを更新しました。

//auto scrollコメントの下のコードを変更しました:

// auto scroll 
$intVar = start();
function start(){
  return setInterval(
      function(){
      var $i = $slider.find($slide + '.active').index();

      slides().eq($i).removeClass('active');
      slides().eq($i).fadeOut($transition_time);

      if (slides().length == $i + 1) $i = -1; // loop to start

      slides().eq($i + 1).fadeIn($transition_time);
      slides().eq($i + 1).addClass('active');
    }
    , $transition_time +  $time_between_slides);
}

//mouse over
$($slide).hover(function(){
  clearInterval($intVar);
}, function(){
  $intVar = start();
});

それがあなたが必要とするものであることを願っています。

于 2013-01-10T07:34:32.003 に答える