1

これには簡単な解決策があると確信しています。jCarouselliteを使用していますが、組み込みのナビゲーションボタンの動作を変更して、ホバーしたときに起動するようにします。

$("#carousel").jCarouselLite({


 vertical: true,
 btnNext: ".btn-down",
 btnPrev: ".btn-up",
 visible:6,
 circular: false

});

$("#carousel .btn-down").hover(function() {

 $("#carousel .btn-down").click();

});

ただし、マウスオーバー時に1回だけ起動するので、マウスオーバー中に継続的に起動する必要があります。

4

4 に答える 4

4

私も自分のコードで同じ問題を抱えていたので、この解決策を思いつきました。

$(document).ready(function(){
    $("someid1").hover(function a() {  //on hover over some element with id-> someid1  
        $("#someid2").animate({
            width:"+=10" 
        }, function(){
            a();
        });
    }); //execute animation function and call itself again and again on mouseover
});                                                     

$("someid1").mouseout(function() {
    $("#someid2").stop(); //stop the animation on mouseout.
});
});

それは私にとってトリックでした。お役に立てば幸いです。

于 2012-12-13T16:05:58.937 に答える
3

を使用setIntervalして、ホバー時に定期的にイベントのトリガーを開始しclearInterval、ユーザーがホバーを停止したときにイベントを停止するために使用できます。また、使用しているプラ​​グインがそのような API をサポートしていると仮定すると、クリック イベントをトリガーする代わりに、必要な実際の動作をトリガーする方がクリーンです。このようなもの:

var effectInterval;

$('#carousel .btn-down').hover(function() {
  effectInterval = setInterval(function() {
    $('#carousel').advanceToNextImage(); // sample API call, check your plugin's docs for how it might actually be done
  }, 5000);
}, function() {
  clearInterval(effectInterval);
});
于 2010-03-12T01:02:26.100 に答える
3
var nav = function() {
  $("#carousel .btn-down").click(); // next move
  $("#carousel").data(
    'hover', 
    window.setTimeout(nav, 1000); // continue in 1000 ms
  );
};
$("#carousel .btn-down").hover(
  nav,
  function() {
    window.cancelTimeout ($("#carousel").data('hover')); // stop the navigation
  }
);
于 2010-03-12T01:08:10.953 に答える
0

このようにクリックする間隔を設定できます。反対側のボタンについても同じことを行ってください。

$("#carousel .btn-down").hover(function() {
  $(this).data("to", setInterval(function() { $("#carousel .btn-down").click(); }, 200));
}, function() {
  clearInterval($(this).data("to"));
});
于 2010-03-12T01:05:43.207 に答える