0

私が達成したいのは、ユーザーがスクロールを停止したときに、中心に最も近い画像を中心に配置したいということです。ifこれには、中心に最も近い画像を決定するために一連のステートメントを実行することが含まれると思います。私はこれを行うことができますが、その前に私が得ているオフセットは間違っています。画像のポジショニングを取得するのに苦労しています。オフセットと関係があることはわかっていますが、オフセット値が正しくないため、ガイダンスが必要です。このリンクhttp://bit.ly/PDz2JDを見て、その中の関数setupHscrollを見てくださいgetImageOffset。これが問題の原因だと思います。

function getImageOffset() {
   var arr = new Array;
   var images = document.getElementById("container").getElementsByTagName("img");
   for (var i = 0, l = images.length; i < l; i++) {
       arr.push(images[i].offsetLeft);
       console.log(images[i].offsetLeft - rect.left);
   }
   return arr;
}

助けてください、そして可能であれば私が理解するのを手伝ってください。ありがとう、そして私は画像の位置を取得するために正しいものを使用していますか?

4

2 に答える 2

0

http://www.w3.org/TR/cssom-view/#offset-attributesを参照してください

offsetLeftは、offsetParentを基準にしたオフセットを取得します。

可能であれば、機能のためにjQueryを導入することをお勧めし$.offset()ます。

それ以外の場合は、これを試してください:http ://www.quirksmode.org/js/findpos.html

于 2012-08-21T23:33:34.647 に答える
0

単純なケースでは、次のようなことを行うことができます。すべての画像(または、より適切には、<div>それを含むすべての画像)に対して、その画像を取得し、そのoffsetLeft半分を追加しoffsetWidthます。次に、offsetWidthのを取り、#containerそれを2で割ってから、そのmarginLeftスタイルプロパティの量を減算します。

これに最も近い値を持つ画像を見つければ、それで終わりです。

于 2012-08-21T23:34:47.033 に答える