1

こんにちは私はいくつかの画像を表示し、5秒ごとに自動スクロールするjcarouselliteのページを持っています私はカルーセル内の任意の画像をクリックしたときにスクロールを停止したい

これが私がやろうとしていることです

$(document).ready(function() {
    $('.slider_images').jCarouselLite({
        btnNext: "#next",
        btnPrev: "#prev",
        auto:  3000         
    }); 

    $(".slider_images img").click(function(){


        $('.slider_images').jCarouselLite({
            btnNext: "#next",
            btnPrev: "#prev",
            scroll: false       
        }); 


    });
});
4

6 に答える 6

1

返信が遅くなってすみません。私の問題は解決しました。jcarouselliteのpauseOnHoverオプションを変更することで、クリックの停止プロパティを非常に簡単に実現できます。pauseOnHoverの実装を見ると、次のようになります。

o.pauseOnHover ? ul.hover(function (){ paused == 1 }, function (){paused=0}) : "";

ul.hoverをul.clickに変更することで、クリックの停止を実現できます。

o.pauseOnHover ? ul.click(function (){ paused == 1 }, function (){paused=0}) : "";

ごきげんよう。

于 2011-05-24T10:14:26.090 に答える
0

しばらくコードを読んだところ、自動スクロールがsetTimeout:を使用して実装されていることがわかりました。

if(o.auto)
    setInterval(function() {
        go(curr+o.scroll);
    }, o.auto+o.speed);

2回目に使用jCarouselLiteしても、停止しませんsetTimeout。を停止するsetTimoutには、次を呼び出す必要がありwindow.clearTimeoutます。

var timeoutId = window.setTimeout(function(){...}, 100);

window.clearTimeout(timeoutId);

jcarouselのコードがこれらを提供しなかったため、これは不可能ですtimeoutId。開発者に相談するか、自分でコードを変更することができます。

于 2011-04-06T16:00:00.487 に答える
0

scheffieldに同意しないか、このプラグインを使用する回避策を見つけたかったのですが、彼に同意する必要があります。必要な処理を行うには、ソースを書き直す必要があります。または、 jqueryサイクルを検討することもできます。'pause'メソッドと'stop'メソッドがすでにあります。

于 2011-04-06T17:29:39.523 に答える
0

これをファイルの先頭に追加します

var timers = new Array();

変化する

setInterval(function(){go(curr+o.scroll)},o.auto+o.speed)  

timers.push(new Array( this.className, setInterval(function(){go(curr+o.scroll)},o.auto+o.speed)));

スクロールを停止するには

var classToStop = ".TestClass"; 

for(var i=0; i < timers.length; i++)
{
    if("."+timers[i][0] == uploadifyClass)
    window.clearInterval(timers[i][1])
}
于 2011-05-01T12:17:22.763 に答える
0

これにより、ページ上のすべてのカルーセルの自動進行が停止します。ここでタイムアウトを使用しているすべてのものを強制終了しています。これは私のために働いた:

$(".slider_images img").click(function(){
    var x = setTimeout("");
    for (var i = 0 ; i < x ; i++)
    clearTimeout(i);
}
于 2011-10-28T13:30:52.627 に答える
0
$(".mycarousel").trigger('stopCarousel');

最新のjcarouselを使用している場合https://github.com/kswedberg/jquery-carousel-lite/

このイベントは、pauseCarouselが含まれていますが、何らかの理由でドキュメントに含まれていません。

于 2013-12-03T21:57:16.550 に答える