[英]jQuery scroll on mousedown with listener (for jCarousel)
我正在嘗試使用jQuery jCarousel作為圖像瀏覽器。 它工作正常,但我想更改交互方式,以使其在鼠標按下時連續滾動,而不是在單擊時滾動設置的數量。
顯然,我是使用jQuery的完全新手,但我最初認為我可以使用jCarousel配置事件選項在鼠標按下時觸發控件。 這可行,但不會繼續滾動。
我想我需要一個監聽器來查看鼠標是否仍在按下,對嗎? 我在StackOverflow上找到了此解決方案,並嘗試應用: jsfiddle.net/amenity/BSq85/19
jQuery(document).ready(function () {
$('.jcarousel').jcarousel({
wrap: 'circular',
animation: 1500,
easing: 'linear'
});
var timeout, clicker = $('.jcarousel-prev');
var count = 0;
clicker.mousedown(function () {
timeout = setInterval(function () {
$('.jcarousel-prev').jcarouselControl({
target: '-=2'
});
}, 500);
return false;
});
$(document).mouseup(function () {
clearInterval(timeout);
return false;
});
$('.jcarousel-next').jcarouselControl({
target: '+=2',
'event': 'mousedown'
});
});
我單擊鼠標左鍵(右)以與功能外部控件進行比較。
沒有人把我從新手深淵中拉出來,我掙扎了直到我走了。 這個答案看起來非常接近我所需要的,因此我以它為起點。 現在我至少到了這里 。
正如我所懷疑的那樣,關鍵是創建一個計時器,以在鼠標仍然按下時再次調用該函數,並在mouseup上將其清除:
var _this = null;
$('.jcarousel-next').mousedown(function () {
$('.jcarousel-next').jcarouselControl({
target: '+=2'
});
_this = $(this);
_this.click();
window.setTimeout(CallAgain, 100);
});
$('.jcarousel-next').mouseup(function () {
_this = null;
});
function CallAgain() {
if (_this != null) {
//alert("Inside Call again");
_this.click();
window.setTimeout(CallAgain, 100);
}
};
在小提琴上,向右箭頭使鼠標向下滾動,而默認情況下向左/向左滾動。 現在,我只需要解決它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.