У меня есть тег элемента изображения, я пытаюсь узнать, как определить прокрутку пользователя на этом изображении, даже если он не прокручивается?
и после этого я проверю налево или вправо, как qaru.site/questions/2040934/... тогда я могу вызвать ajax change image url
$('img').scroll(function(){
console.log('scroll');
});
Событие wheel
выглядит стандартным способом. https://developer.mozilla.org/en-US/docs/Web/Reference/Events/wheel
Вероятно, вы будете заинтересованы в свойстве deltaX
.
До wheel
стало стандартом, я слушал для mousewheel
событий для Chrome и DOMMouseScroll
событий для Firefox:
http://www.quirksmode.org/dom/events/scroll.html
https://developer.mozilla.org/en-US/docs/DOM/DOM_event_reference/DOMMouseScroll
но я не знаю, могут ли они поймать горизонтальные события прокрутки.
Вот мой способ сделать это:
Создать переменную isOvered
Чтобы отобразить, находится ли мышь на изображении.
В тэге img
добавьте OnMouseOver="isOvered=true;" OnMouseOut="isOvered=false;"
OnMouseOver="isOvered=true;" OnMouseOut="isOvered=false;"
И связывать событие прокрутки (mousewheel
или DOMMouseScroll
) для тела с проверкой того, является ли мышь на img
или нет.
var isOvered=false;
function displaywheel(e){
var evt=window.event || e;
var delta=evt.detail? evt.detail*(-120) : evt.wheelDelta;
if(isOvered){
if(delta<0)
{
//"Scroll Down On IMG Occured"
}
if(delta>0)
{
//"Scroll UP On IMG"
}
}
//delta returns +120 when wheel is scrolled up, -120 when down
}
var mousewheelevt=(/Firefox/i.test(navigator.userAgent))? "DOMMouseScroll" : "mousewheel";
if(document.attachEvent) document.attachEvent("on"+mousewheelevt, displaywheel);
else if (document.addEventListener) document.addEventListener(mousewheelevt, displaywheel, false);
Надеюсь, это поможет вам. Приветствия!