0
我有一個可滾動內容的架子。當您將鼠標懸停在左側或右側按鈕上時,擱板就會如此滑動。這一切都完美。如果懸停:動畫完成後重新調用函數
當您點擊左側或右側按鈕時,擱板跳過擱板的寬度。也完美地工作。
我想要做的是在跳轉之後,擱架繼續滾動,因爲此時它會一起停止,直到您重新懸停鼠標。我認爲這只是在跳轉完成後重新調用函數,所以我在.promise().done()
之後添加了if (hover)
,但是我不確定其餘部分。
請指教。
謝謝。
function shelfScroll(el, modifier){
var sl = el.scrollLeft();
el.animate({scrollLeft: sl + (modifier * 100)}, 450, 'linear', function(){
if(hover){
shelfScroll(el, modifier);
}
});
}
var hover = false;
$('.scroll-arrow').each(function() {
var modifier = ($(this).hasClass('scroll-arrow-right')) ? 1 : -1;
var sib = ('.shelf-slide');
var shelf_width = $(this).siblings(sib).width();
$(this).hover(function() {
hover = true;
$(this).siblings(sib).stop();
shelfScroll($(this).siblings(sib), modifier);
}, function() {
hover = false;
$(this).siblings(sib).stop();
}).click(function(e) {
e.preventDefault();
$(this).siblings(sib).stop();
$(this).siblings(sib).animate({scrollLeft: $(this).siblings(sib).scrollLeft() + (modifier * shelf_width)}, 500);
$(this).siblings(sib).promise().done(function() {
if (hover){
} else{
}
});
});
});
這可能幫助HTTP://論壇。 jquery.com/topic/stop-and-reactivate-hover-event – CDspace
你可以使用像這樣的動畫回調[http://jsfiddle.net/mNrCD/1/](http://jsfiddle.net/mNrCD/ 1 /) –
我喜歡這種簡單,但你能解釋它究竟是如何工作的?我知道你在回調函數,但是修飾符是如何進入它的?謝謝。 – Jake