1. ホーム
  2. javascript

[解決済み] offsetTop vs. jQuery.offset().top

2023-04-28 22:45:10

質問

私は、以下のことを読みました。 offsetLeftoffsetTop は、すべてのブラウザで正しく動作しません。 jQuery.offset() は、xbrowserで正しい値を提供するために、この抽象化を提供することになっています。

私がやろうとしていることは、要素がクリックされた場所の座標を、要素の左上からの相対値で取得することです。

問題は jQuery.offset().top が FFX 3.6 で実際に 10 進数の値を与えていることです (IE と Chrome では、2 つの値は一致します)。

このフィドル が問題を示しています。 下の画像をクリックすると jQuery.offset().top は 327.5 を返しますが offsetTop は328を返します。

と思いたいところですが offset() は正しい値を返すので、ブラウザ間で動作するため、これを使うべきだと思いたいです。 しかし、人々は明らかにピクセルの小数点をクリックすることができません。 への真のオフセットを決定する適切な方法はありますか? Math.round() へのオフセットは、jQueryが返しているオフセットと同じですか? 私は offsetTop を使うべきか、それとも全く別の方法を使うべきか?

どのように解決するのですか?

半ピクセルをクリックできないというのはその通りだと思いますので、個人的にはjQueryのオフセットを丸くする...といったところでしょうか。