jQuery가 포함 된 HTML5-e.offsetX가 Firefox에서 정의되지 않음
내 HTML5 페이지에는 mousemove
다음과 같은 이벤트 가있는 div가 있습니다.
$('#canvas').mousemove(function(e){
xpos = e.offsetX;
ypos = e.offsetY;
$('#mouse').html("X : " + xpos + " ; Y : " + ypos);
});
Google 크롬에서 잘 작동합니다. 그러나 Firefox에서는 둘 다 가치를 제공합니다 undefined
. Firebug를 사용하여 확인했습니다. 즉, e
개체를 콘솔에 기록했습니다 . 모두 offsetX
와 offsetY
로 발견된다 undefined
.
내가 구글에서 검색하면, 거기에 내가 사용한다라는 솔루션이었다 layerX
그리고 layerY
두 경우 offsetX
와는 offsetY
정의되지 않은 있습니다. 하지만 Firebug에서는 찾을 수 없었습니다. 그리고 나는 그것을 다음과 같이 시도했다.
xpos = (e.offsetX==undefined)?e.layerX:e.offsetX;
ypos = (e.offsetY==undefined)?e.layerY:e.offsetY;
그러나 그것은 또한 undefined
가치로 제공 됩니다.
최신 jQuery-v1.8.2를 사용하고 있습니다. 그리고 Firefox v14.0.1에서 테스트 중입니다.
어떤 아이디어 나 제안?
편집하다
도와 주신 dystroy와 vusan에게 감사드립니다. 위의 문제에 대한 해결책은 다음과 같습니다.
해결책
$('#canvas').mousemove(function(e){
$('#cursor').show();
if(e.offsetX==undefined) // this works for Firefox
{
xpos = e.pageX-$('#canvas').offset().left;
ypos = e.pageY-$('#canvas').offset().top;
}
else // works in Google Chrome
{
xpos = e.offsetX;
ypos = e.offsetY;
}
$('#mouse').html("X : " + xpos + " ; Y : " + ypos);
});
사용해보십시오 layerX
와 layerY
파이어 폭스와 offsetX
다른 브라우저.
이벤트가 jquery로 시작된 경우 :
xpos = e.offsetX === undefined ? e.originalEvent.layerX : e.offsetX;
ypos = e.offsetY === undefined ? e.originalEvent.layerY : e.offsetY;
자바 스크립트로 이벤트가 발생한 경우 :
xpos = e.offsetX==undefined?e.layerX:e.offsetX;
ypos = e.offsetY==undefined?e.layerY:e.offsetY;
사용 layerX
및 layerY
FF와 offsetX
및 offsetY
모든 다른 브라우저한다.
$('#canvas').mousemove(function(e){
xpos = e.offsetX === undefined ? e.originalEvent.layerX : e.offsetX;
ypos = e.offsetY === undefined ? e.originalEvent.layerY : e.offsetY;
$('#mouse').html("X : " + xpos + " ; Y : " + ypos);
});
originalEvent에 있기 때문에 찾지 못했습니다. 시도 : e.originalEvent.layerX e.originalEvent.layerY
pageX와 pageY에 대해 그들은 같은 것을 계산하지 않습니다. layerX는 첫 번째 상대 / 절대 상위에서 개체의 왼쪽입니다. pageX는 페이지에서 개체의 왼쪽입니다.
이것은 firefox 및 기타에서 잘 작동합니다.
var offsetRequired = (e.offsetX || e.pageX - $(e.target).offset().left);
파이어 폭스는 실제로 수행 지원 MouseEvent.offsetX
과 MouseEvent.offsetY
에 출시되는 릴리스 39.0 이후 2015 년 7 월 .
참고URL : https://stackoverflow.com/questions/12704686/html5-with-jquery-e-offsetx-is-undefined-in-firefox
'developer tip' 카테고리의 다른 글
node.js에 사용할 수있는 MySQL 드라이버는 무엇입니까? (0) | 2020.12.13 |
---|---|
HTML5 용 오픈 그래프 유효성 검사 (0) | 2020.12.13 |
업로드하기 전에 브라우저에서 이미지 자르기 (0) | 2020.12.13 |
CSS 변환이 인라인 요소에서 작동하지 않습니다. (0) | 2020.12.13 |
직렬화 가능한 Python 객체의 JSON 인코딩 동작을 변경하는 방법은 무엇입니까? (0) | 2020.12.13 |