この質問はばかげているように聞こえるかもしれませんが、頭が混乱しています。さまざまなスライドで構成された、一種の縦スクロール プレゼンテーションを作成したいと思います。効果はこのサイトと「似ている」はずです: http://www.soleilnoir.net/believein/#/start
別のスライドを含む順不同のリストを作成しました。
<div id="main">
<div id="content">
<ul id="bg">
<li id="slide1"> <!-- content --></li>
<li id="slide2"> <!-- content --></li>
<!-- and so on -->
</ul>
</div>
</div>
position:fixed
すべてのスライドのコンテンツ (これまでは画像) にページの中央に を指定し、スライドと画像を積み重ねるために別の z-index を指定しました。何かのようなもの
----- slide 1
§§§ image 2
----- slide 2
§§§ image 3
---- slide 3
等々
もちろん、これはある意味でのみ機能します。スライドをスクロールすると、次のスライドが表示されますが、前の画像は常に表示され、位置が固定されているため、フローからすべて削除されます。
そこで、画像に aposition:absolute
を与える (そして に与える) ことposition:relative
を考えまし<li>
たが、新しいスライドが到着してそれをカバーするまで、ページの中央に「くっつく」ことはありません。もちろん、それらは自然に親<li>
の動きに従います。
私はこれについて完全に途方に暮れています。また、ウィンドウに現在表示されているリストを取得する方法についてもです。jQueryscrollTop()
によって提供されるすべての組み込み関数を見てきましoffset().top
たposition().top
:スクロール)、スライドが画面の半分に達したときに何かを実行できるようにする方法がわかりません(ただし、何をするかはまだわかりません)。$(window).height()
$('#container').height()
<li>
ここで明らかな何かが欠けていると確信しています。リンクされたサイトのコードを調べましたが、ほとんどすべてを理解できますが、現在のスライドを取得する方法をまだ理解できません (さらに、アニメーション GIF を動的にロードし、私の場合、各スライドは異なる要素、アニメーションなどを含むコンテナーです)。
たとえば、$('li#slide3')
内部ビューである場合、どうすれば取得できますか? 積み上げられた画像の問題を解決するにはどうすればよいですか? それらを動的に「固定」として設定するか、スクロールするたびに位置を再計算するposition:absolute
必要がありますか? この 1 秒間は、固定点と比較して各要素の位置を取得する必要があります ($(window).scrollTop()
これまでのところ、スクロール中は常に 0 になると思います)が、方法がわかりません。
ああ、スクロールをバインドするために jQueryscroll()
メソッドを使用しています。これは、目的のスライドにジャンプできるナビゲーション リストもあるからです。
これを明確にしていただければ幸いです。画像は常に中央に配置する必要があり、スライドをスクロールするとそれらが隠れる必要があり、画像が覆われている間は次のものが表示され、その場所に配置される必要があるため、方法を理解する必要があります。現在の要素の位置を取得し、<li>
それがウィンドウの途中にある場合など、それに応じて前の画像を設定します。