2012-01-06 8 views
0

"next"リンクをクリックするたびに.next()画像に.scrollLeft()するdivが必要です。div内の.scrollLeft()

文書のスクロール(jsfiddle) があればうまく動作しますが、divをスクロールして欲しいのであれば問題ありません。 (jsfiddle

答えて

2

relative to the documentであることに注意してください。これは、divが既にどこにスクロールされているかによって異なります。

私が代わりに行うための最善のことがわからないんだけど(DOM位置プロパティが毛深いと欠けているものがあり、それはシンプルであるべき)が、動作するものではなく、.position()を使用し、内のオフセット親を確立することですスクロール可能な要素(すなわち、相対的に配置され、画像を含む要素)。あなたのコードに

変更:

$("#slides").animate({scrollLeft: $($current).position().left}, 500); 
<div id="slides"> 
     <div class="offset-parent"> <!-- added --> 
      <img src="http://www.petwebsite.com/uploadpics/ginger-cat.jpg" class="images" alt="cat"> 
      ... 
     </div> 
    </div> 
.offset-parent { 
    position: relative; 
} 

jsfiddle

+0

はぁため

もう一つの良いプラグイン。あなたはHTMLとCSSを変更するだけでそれを修正し、Javascriptを変更するだけで修正しました。私が推測する猫の皮膚には複数の方法があります。 –

+0

いいえ、私は '.offset()'の代わりに '.position()'も使いました。 –

+0

ああ、そうした。私はちょうどすぐに現実を見た。 –

5

offset()divがすでにスクロールさ量が含まれていません。あなたはそれを説明する必要があります。

the jsfiddleを参照してください。

jQueryメソッド呼び出しを行うのではなく、配列内のインデックスに基づいてスクロール操作を行うようにしました。これにより、(より少し速く)実行されます。

+0

あなたのソリューションは、スクロールのために左の左に親を追加するだけで、それは完全に機能します! –

0

私はあなたがそれのためにそれははるかに行う必要があるとは思わない、私はあなたが私に応じてそれを行うための最善の方法になりますslidesプラグインやcycle plugingを、使用することをお勧めします。プラグインサイトの例を確認してください。このcarousel