offset (). left, offsetLeft, offset.left, в чем разница? почему бы не использовать чистый js offsetLeft вместо jQuery? - PullRequest
2 голосов
/ 04 августа 2011

Обычно при получении смещения с помощью jQuery я делаю offset().left.Насколько я понимаю, offsetLeft - это чистый javascript, так почему бы не использовать его над jQuery offset().left?Это действительно помогает что-нибудь кросс-браузерное?или же?

И при использовании offset().left я видел, как люди вынимали (), так что это просто offset.left, это нормально?Разве это нормально, если в скобках ничего нет?

В качестве примечания: я слышал, что в IE7 при использовании способа jQuery offset().top это дает смещение screwey на основе того, сколько выпрокрутилКто-то в комментариях на странице jQuery API для offset () сказал, что document.getElementById(anchor).offsetTop исправил это.

1 Ответ

4 голосов
/ 04 августа 2011

Получение смещений может быть немного сложнее в некоторых браузерах. offsetTop и -Left неверны в IE 6 и ниже, а другие, такие как offsetX и offsetY, полностью несовместимы во всех браузерах (см. Quirksmode )

Как правило, когда библиотека включает в себя некоторые функции, даже если такая же функция , по-видимому, уже существует, это обычно делается для кросс-браузерного использования.

Насколько я могу судить, использование offset.left вместо offset().left даже не должно работать. Последнее будет «получить свойство left объекта , возвращаемое функцией offset()», что вам и нужно. Первый, без скобок, будет «получить left свойство функции offset», что не имеет большого смысла для меня (если только объект, свойство offset которого вы Это не оболочка jQuery, в этом случае свойство offset может быть не функцией, а объектом со свойствами left и top).

Но я не эксперт по jQuery

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...