обнаружить прокрутку мыши на элементе, который не прокручивается

0

У меня есть тег элемента изображения, я пытаюсь узнать, как определить прокрутку пользователя на этом изображении, даже если он не прокручивается?
и после этого я проверю налево или вправо, как qaru.site/questions/2040934/... тогда я могу вызвать ajax change image url

$('img').scroll(function(){
    console.log('scroll');

});
Теги:

2 ответа

1
Лучший ответ

Событие 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

но я не знаю, могут ли они поймать горизонтальные события прокрутки.

1

Вот мой способ сделать это:

Создать переменную 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);

Надеюсь, это поможет вам. Приветствия!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню