2013-03-08 2 views
2

스크롤이 끝나면 jQuery mousemove 기능으로 이벤트를 트리거하려고합니다.마우스를 움직일 때 트리거 이벤트

문제는 하여 MouseMove 이벤트가 (http://docs.jquery.com/Tutorials:Mouse_Position#Tracking_mouse_position), I는 스크롤에만 이벤트를 트리거 할

이 끝난 트리거 내가 "진짜"를 위해 마우스를 이동한다 스크롤 것입니다.

나는 스크롤이 멈추었을 때를 알기 위해 꽤 깔끔한 해결책을 사용하고있다. 그래서 나는 그 후에 내 mousemove-check를 원한다. jQuery scroll() detect when user stops scrolling

내 생각은 X -coordinate를 읽고에만 스크롤 한 이벤트를 트리거하는 경우 Y도 -coordinate 변경,하지만 난 같은 것을 사용할 수 있다면 정말 선호 지연() 또는 에서는 setTimeout(), 그러나 그 중 어느 것도 함께 작동하지 않습니다 ...이 작업을 수행하는

+0

이 작업을 수행하는 한 가지 방법은 스크롤/중지시 mousemove를 바인드/언 바인드하는 것입니다. 좌표를 확인하는 것이 좋은 방법입니다. 스크롤 마지막에 사용자 정의 이벤트를 발생시킨 다음 마우스 좌표를 확인하여 원하는 마우스를 트리거해야하는지 확인하십시오. – Huangism

+0

감사합니다! unbind-method는 훌륭하게 작동합니다! 나는 이것에 대한 좌표를 확인할 필요조차하지 않았다 : D – MMachinegun

+0

그래서 나는 스크롤 _start_에 mousemove를 언 바인드하고 스크롤 _end_에 바인드했다. 나는 그 질문에 지금 무엇을해야할지 확신하지 못한다. 대답은 : D, 아니면 그냥 그대로두면 누군가 다른 사람이 더 좋은 대답을 내놓을 수 있을까? (당신이 코멘트에서 대답했기 때문에 나는 그것을 검사 할 수 없다 : S) – MMachinegun

답변

1

한 가지 방법 (아마 가장 좋은 방법은) 스크롤/정지에/때어 MouseMove 이벤트를 결합하는 것입니다. 좌표를 확인하는 것이 좋은 방법입니다. 스크롤 끝에 사용자 정의 이벤트를 발생시킨 다음 마우스의 좌표를 확인하여 원하는 mousemove를 트리거해야하는시기를 확인하십시오.

때때로 mousemove를 바인딩 할 수 있지만 플래그를 설정하면 스크롤 할 때 플래그를 false로 설정하면 mousemove가 트리거되지 않고 스크롤이 중지되면 true로 설정하고 수동으로 mousemove를 트리거합니다. 이것은 항상 바인드/바인드 해제 이벤트보다 효과적 일 수 있습니다. 이것을 시도해보고 효과가 있는지 확인하십시오.

+0

나는 당신이 _flag_로 정확히 뭘 말하고 있는지 잘 모르겠다. 그러나 내가했던 것은 그것의'unbind ('mousemove') 이전이다. ** not ** false, _mousemove_를 바인드 해제하고 _variable_을 false로 설정하십시오. 이런 식으로 바인드 해제가 자주 실행되지 않습니다 ... Firefox에서 차이점을 발견했습니다. :) – MMachinegun

+0

제가 제안했던 것은 언 바인딩과 리 바인딩을 피하는 것입니다. 스크롤 할 때 flag = false를 설정하고 스크롤이 멈 추면 flag = true를 설정합니다. mousemove 이벤트 핸들러에서 flag = true 또는 false인지 확인하고, true이면 mousemove를 실행하고, false이면 아무것도하지 않습니다. 당신이 그것을 시도해 볼 수있는 시간이 있다면,하지만 그렇지 않다면 현재의 솔루션을 사용하십시오. – Huangism

관련 문제