cssとhtmlのみを使用して、ページの残りの部分を下にスクロールする前に、内側のdiv(赤いdivをオーバーレイ)を完全にスクロールアウトすることは可能ですか?基本的に、後ろのdivをフリーズしながらオーバーレイスクロールがcssでのみ可能かどうか疑問に思っていますか?次に、赤いdivが消えたら、背景のスクロールを解除して続行します。ここのこのサイトに似ています:https://humaan.com/ 。それとも、何らかのJavaScriptを使用する必要がありますか?
.headervideo{background-color:blue; width:100%; height:900px;}
.headerbreak{width:100%; height:300px;}
.headervideo #inner-box {
background-color: red;
height: 90%;
width: 100%;
}
<div class="headervideo">
<div id="inner-box"></div>
</div>
<div class="headerbreak">
<div>
回答 2 件
CSSを使用すると、ホバーイベントを使用して特定のスクロール位置(たとえば、赤いdivの直後)を検出できますが、これは携帯電話などのタッチのみのデバイスでは機能しません。また、カーソルが画面上のどこにでもある可能性があるため、信頼性が低くなります。
JavaScriptを使用してスクロール位置を検出する必要があります。ただし、JavaScriptを使用して、異なるスクロール位置にクラスを追加し、残りをCSSで実行することしかできませんでした。簡単な例を次に示します。
var red = document.querySelector('#inner-box'); var begin = red.scrollTop; var end = begin + red.clientHeight; console.log(begin) document.body.classList.add('in'); window.addEventListener("scroll", (event) => { if(this.scrollY < begin) { document.body.classList.add('before'); document.body.classList.remove('after'); document.body.classList.remove('in'); } else if(end < this.scrollY) { document.body.classList.remove('before'); document.body.classList.add('after'); document.body.classList.remove('in'); } else { document.body.classList.remove('before'); document.body.classList.remove('after'); document.body.classList.add('in'); }; });
.headervideo { background-color: blue; width: 100%; height: 900px; } .headerbreak { width: 100%; height: 300px; } .headervideo #inner-box { background-color: red; height: 90%; width: 100%; } body { } body.before { background-color: lightgreen; } body.in { background-color: lightpink; } body.after { background-color: lightblue; }
<body> <div class="headervideo"> <div id="inner-box"></div> </div> <div class="headerbreak"> <div> </body>
関連した質問
- 1つにカーソルを合わせると、別のCSSに影響します
- CSS:ぼやけたdiv内のぼやけたdivの問題
- 水平ナビゲーションバーのドロップダウンメニューの配置関連の問題
- ブートストラップドロップダウン-メニューが開かない
- HTML/CSS + JS(Datatables)で2つの列を1つにマージしてテーブルを表示する
- ページの下部にいるときにドロップダウンボタンに触れると、フッターを持ち上げるスティッキーナビゲーションバー
- ボックスシャドウインセットと通常のdivを持つ方法はありますか
- HTMLとJavaScriptを使用してコピーボタンを作成するにはどうすればよいですか?
- JavaScript onclick画像を変更し、カウンターを増やします
position:sticky
これを概算できます: