[英]Clearinterval on mouse click or hover
我有一個沒有自動播放功能的全屏圖像滑塊,因此我必須編寫自定義腳本才能單擊下一個按鈕。
這里是
var interval = setInterval(function() {
document.querySelector('.fp-controlArrow.fp-next').click();
}, 7000);
setTimeout(function( ) { clearInterval( interval ); }, 44000);
但是,現在我很想在用戶單擊同一類(.fp-controlArrow.fp-next)的按鈕時清除clearInterval 。 JS能否以某種方式區分模擬點擊和真實鼠標點擊之間的區別? 如果是這樣,那將是什么代碼?
如果不是,也許可以通過.fp-controlArrow.fp-next類清除將鼠標懸停在按鈕上的時間間隔嗎?
謝謝!
是的,您可以通過使用事件偵聽器中事件對象的isTrusted屬性來區分用戶生成的事件與代碼生成的事件。
var elem = document.querySelector('.fp-controlArrow.fp-next');
elem.addEventListener("click", function( event ) {
if(event.isTrusted)
clearInterval(interval);
}, false);
https://developer.mozilla.org/en/docs/Web/API/Event/isTrusted
您可以將mousedown
事件用於實際點擊。
var el = document.querySelector('.fp-controlArrow.fp-next')
el.addEventListener('mousedown', function(){
clearInterval( interval );
});
工作示例: https : //jsfiddle.net/fov47eny/
您也可以使用isTrusted
但它對瀏覽器的支持有限。
if (e.isTrusted) {
/* The event is trusted. */
} else {
/* The event is not trusted. */
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.