4

simple.carousel.jsに編集を加えて、ホバーしたときにカルーセルを停止しましたが、マウスを離したときにカルーセルを再起動する際に問題が発生します。simple.carousel.jsに追加したコードは次のとおりです。

// hover stop
if(config.auto!=true)
    $(this).mouseenter(function() {
        config.auto=false;
    }).mouseleave( function() {
        config.auto=true;
    });

上記からの私の追加でここに完全なコード/例を見ることができます:http://jsfiddle.net/6r6sC/2/

マウスリーブ機能に問題がありますか?

これが役立つかどうかはわかりませんが、次のことも試しましたが、どちらも機能しません。

// hover stop
if(config.auto!=true)
    $(this).mouseenter(function() {
        config.auto=false;
    }).mouseleave( function() {
        setTimeout(function() {
        slide('next');
    }, config.auto);
    });

これは私を困惑させたので、どんな助けでも大いに感謝されるでしょう。

4

2 に答える 2

0

値として true を使用すると問題が発生します。false ブール値が発生するか、init 関数から int が予期されます。

編集 4: http://jsfiddle.net/6r6sC/44/

slide() に startAuto() を追加

if(config.auto!=false) {
startAuto();    
}

EDIT3: 複数のタイマーの問題を修正し、自動スライダーの開始/停止を処理する 2 つの関数を作成しました。

ここでの解決策: http://jsfiddle.net/6r6sC/41/

var cachedAuto = config.auto;
var timer = "";

var startAuto = function() {

    config.auto = cachedAuto;
    clearTimeout(timer);

    timer = setTimeout(function() {
         slide('next');
    }, config.auto);   
}

var stopAuto = function() {
    clearTimeout(timer);
    config.auto = false;
}

if(config.auto!=false) {
    // start auto sliding
    startAuto();    

    // pause/start on mouse events            
    $(this).on("mouseenter", function(event){
        stopAuto();
    }).on("mouseleave", function(event){
        startAuto();
    });
}
于 2012-11-28T20:43:24.070 に答える
-1

さて、私は少しの調査とテストを行い、「mouseleave」を「mouseout」に置き換えました。だからそれを試してください。

 // hover stop
 if(config.auto!=true)
$(this).mouseenter(function() {
    config.auto=false;
}).mouseout( function() {
    config.auto=true;
});
于 2012-11-28T20:27:02.327 に答える