HTML5 における scroll-to-bottom イベントの問題を解決する方法
2022-01-29 20:32:13
問題:H5では、リストがある場合など、下までスクロールすると、さらに読み込みが必要になることがあります。
解決方法 これは、ウィンドウのスクロールイベントを使用して処理することができます。
分析 スクロールが画面全体(インターフェイスの小さな部分ではない)であれば、画面の高さ + 最大スクロール距離 = コンテンツの高さ、が成り立つはずです。
コードの実装
<html>
<head>
<meta charset="UTF-8">
<title> listen to scroll to bottom scroll bottom</title>
<style>
.div2{
width:100px;
height:100px;
border:1px solid red
}
*{
margin:0
}
.button1:active{
background:red
}
body{
height:375px;
width:667px;
border:1px solid red
}
.div1{
height:600px;
width:100%;
background:red
}
.div2{
height:600px;
width:100%;
background:green
}
.div3{
height:600px;
width:100%;
background:blue
}
.div4{
height:600px;
width:100%;
background:yellow
}
</style>
</head>
<body >
<div class="div0">
<div class="div1"></div>
<div class="div2"></div>
<div class="div3"></div>
<div class="div4"></div>
<div class="div5"></div>
</div>
</body>
<script>
window.onload = function(){
//Get the container's parent element
var div0 = document.getElementsByClassName('div0')[0];
//height Calculate the height of the attribute
var height = parseInt((window.getComputedStyle(div0, null).height).replace('px', ''));
console.log(height,"div0's calculated height")
window.onscroll = function(){
/*
scrollTop is the distance of the top of the scrollbar from the top-right corner of the interface, here it is written in compatibility
*/
let scrollTop = document.documentElement && document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop;
//+-5 is to ensure a certain flexibility, not to be exactly equal before departure.
if(height-5<=scrollTop+clientHeight&&scrollTop+clientHeight<=height+5){
console.log('Listening success','reached bottom')
}
}
}
</script>
</html>
関連するコードのメモです。多くの場合、リストが読み込まれ、子要素を読み込む親コンテナの高さを設定することはできませんが、このとき、スタイルを auto に設定すると
element.style.height
もautoに等しくなるため、推奨されるのは
clientHeight
を使用するか、計算スタイル
getComputedStyle
高さを計算する
要約
以上、HTML5でイベントの下までスクロールする問題を解決するための小さな紹介でした、お役に立てれば幸いです、もし何か質問があれば、私にメッセージをください、すぐに返信します。これからもスクリプトハウスのウェブサイトをよろしくお願いします。
関連
-
HTML5入門(II)
-
キャンバスの内容を消去する(点消去+線消去)
-
データストレージの3つの方法、Cookie sessionstorage localstorageの類似点と相違点の分析
-
h5ページ evokeアプリがインストールされていない場合、ダウンロードにジャンプします(iOS、Android)。
-
HTML5 Blobオブジェクトの使用方法
-
html5 モバイルアダプティブレイアウトの実装
-
html5 android compatibility for mobile video (remove play control, full screen)(モバイルビデオ用アンドロイド互換性)。
-
印刷用のクリア画像を生成するhtml2canvasのサンプルコード
-
N種類のキャンバスエクスポートイメージのクロスドメインポーズサマリーのロックを解除する
-
html2 canvasで印刷用の鮮明な画像を生成
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Html5は、同時に複数のsdkのヒントをサポートする
-
html+cssでメニューバーのスロードロップダウン効果を実現するコード例
-
モバイルHTML5開発ツール vconsoleの詳細解説
-
キャンバスで画像のミラーリングと反転を実現する2つの方法
-
HTML5 Canvasタグの解説と基本的な使い方
-
Html5 webview要素位置決めツールの実装
-
Canvasでプログレスバー付きの非閉鎖円を描画する
-
ウェブアプリのページスクロールラグの解決策を詳しく解説
-
Canvas がクロスドメイン画像を導入し、toDataURL() エラーが発生する。
-
キャンバス画像getImageData,toDataURLのクロスドメイン問題の解決方法を説明する。