2011-01-10 3 views
11

jQuery UI 범위 슬라이더에서 작업하는 동안 주로 크롬에서 디버깅을하고있었습니다.크롬 (웹킷)과 파이어 폭스 간의 jQuery 포지셔닝 차이점

$el.css('left');

나에게 백분율로 왼쪽 위치 줄 것입니다 : 84%을 나는 그렇게 같은 핸들 중 하나의 왼쪽 위치를 잡아 할 수 있도록 범위가 제한을 할 필요가 있었다. 그러나 Firefox에서 테스트했을 때 픽셀 단위로 값을 반환했습니다.

누구나 전에 경험 했습니까? Firebug에서 DOM을 살펴본 결과 Firefox는 퍼센트 기반의 왼쪽 위치를 인식하지만 값으로 반환하지는 않습니다. Firefox의 기본 동작입니까? 이것은 IE에서도 마찬가지입니까?

+0

좋은 질문입니다. 속성이 백분율 (또는 ems)로 지정되었을 때 파이어 폭스에서 픽셀을 반환하는 CSS ('왼쪽')를 찾기 위해 최근에 놀랐습니다. 결국 position(). left를 사용하여 항상 픽셀 값을 얻을 수 있습니다. Chrome에서 확인하지 않았습니다. – harpo

+0

그래, 내가 기본적으로 그 기능을 다할 줄 알았을 때, 요소 중 하나가 화면에서 튕겨 나왔을 때 나는 놀랐다. VMWare가없는 MBP로 작업하기 때문에 지금 당장 IE를 테스트 할 수는 없습니다. – hellatan

+0

이 질문에 대한 답변을하지 않지만 jQuery 기반 해결 방법은 모든 브라우저에서 동일한 값 (픽셀 단위)을 반환하는'position' (http://api.jquery.com/position/)을 사용하는 것입니다. – Emmett

답변

0

최신 버전 1.4.4에서 jQuery와의 위치 지정에 대해 알려진 차이점이 있다고 생각하지 않습니다.

1

는 CSS() 함수는 브라우저에 의해보고 된 지정된 CSS 속성의 값을 반환합니다. 결과적으로, 브라우저에 따라 다르므로 이러한 방식으로 길이와 위치를 처리 할 때 사용해서는 안됩니다.

+0

동의합니다. css() 함수를 사용하면 css 속성을 조작하거나 읽을 수 있으며 브라우저별로 다르게 해석됩니다. 브라우저 독립적 인 수치와 결과를 원한다면 position() 함수를 사용하십시오. – Ivanhoe

0

사용 $el.position().left; 대신 :

+0

운이 없다면 같은 결과를 낼 수 있습니다. (나를위한 순간에) – Sascha

0

내가 이렇게 직접 DOM에 액세스하여이 문제를 해결했다는 :

$el.get(0).style.left

는 FF, 크롬, 사파리와 IE9에 대한 % 값을 반환합니다. (그래도 Opera에서 테스트하지 않았 음)

관련 문제