この記事では、携帯電話のプルダウンリフレッシュを模倣したjsの具体的なコードを参考までに共有します。具体的な内容は次のとおりです。 では早速、レンダリングを見てみましょう。 プルダウンが 40 ピクセル未満の場合、テキストが表示されます。 プルダウンが40pxより大きい場合、テキストが表示されます リリース時にテキストを表示する 実施原則<div class="content"> <div class="left"></div> <div class="top"> <p id="p"></p> <div id="button"> </div> </div> </div> CS: ... <スタイル> * { マージン: 0; パディング: 0; ボックスのサイズ: 境界線ボックス; } 。コンテンツ { 幅: 350ピクセル; 高さ: 600px; 位置: 相対的; マージン: 0 自動; } .トップ{ 幅: 100%; 高さ: 100%; 背景色: #ccc; 境界線: 12px 黒一色; 境界線の半径: 10px; オーバーフロー: 非表示; 上マージン: 50px; border-top: 35px 黒一色; } #ボタン { 幅: 100%; 高さ: 100%; 背景色: rgb(47, 196, 47); 位置: 相対的; パディング: 10px; border-top: 2px 赤実線; } #p { 表示: インラインブロック; 高さ: 30px; 幅: 100%; テキスト配置: 中央; 行の高さ: 30px; 色: rgb(2, 2, 2); フォントサイズ: 15px; 位置: 絶対; 上: 40px; 左: 0; 表示: なし; } 。左 { 高さ: 10px; 幅: 100ピクセル; 背景色: #ccc; 位置: 絶対; 上: 12px; 左: 110px; 境界線の半径: 5px; } .left::after { 表示: インラインブロック; コンテンツ: ""; 幅: 15px; 高さ: 15px; 背景色: #ccc; 境界線の半径: 50%; 位置: 絶対; 左: 120px; 上: -2px; } </スタイル> JS: <スクリプト> var but = document.getElementById("buttom"); var p = document.getElementById("p"); var moveY = 0 // 押されたときの位置を初期化します var tops = 0; // tops を初期化します。 tops はプルダウンの距離ですbut.onmousedown = function(e) { //マウス押下イベントmoveY = e.offsetY //マウスが押されたときの Y 軸の位置を取得しますbut.onmousemove = function(e) { //マウス移動イベントp.innerHTML = "Pull down to refresh" p.style.display = "block"; //マウスを動かすと、テキストは「下に引いて更新」と表示されます tops = e.offsetY - moveY //topsのサイズは、マウスがY軸上で移動する距離から、マウスが押されたときの距離を引いたものです。if (tops < 0) { tops = 0 // プルアップを停止 } else if (tops > 40) { //tops が 40 より大きい場合、マウスを放すとすぐに更新できるというメッセージが表示されます。p.innerHTML = "放すとすぐに更新されます" } this.style.top = tops + 'px'; //要素の相対位置の top 値を tops の値と同じにします // console.log(tops) } but.onmouseup = function() { //マウスリリースイベント but.onmousemove = null //マウス移動イベントをクリアして、要素がマウスを追い続けるのを防ぎます if (tops < 40) { // プルダウン距離 b が 40px 未満の場合、要素は更新されずにすぐにリセットされ、プロンプト テキストは消えます this.style.top = 0; p.style.display = "なし" } それ以外 { // プルダウン距離が 40 ピクセルより大きい場合は、更新中であることを示すプロンプトが表示されます。p.innerHTML = "更新中..." setTimeout(() => { // 1.3 秒の遅延後にリセットします。これは単なるシミュレーションです。実際のプロジェクトでは、データの再要求に成功した後、tops = 0 をリセットする必要があります。 this.style.top = トップス; p.style.display = "なし" }, 1300); } } } </スクリプト> 以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: Docker イメージに基づいて Go プロジェクトをデプロイする方法と手順
>>: Windows での mysql-5.7.28 のダウンロード、インストール、および構成に関する詳細なグラフィックとテキストのチュートリアル
1. muttをインストールするsudo apt-get install mutt 2. msmtp...
序文Vue には、v-if、v-bind、v-on などの豊富な組み込みディレクティブが用意されてい...
1. 時間の種類は次のように分けられます。 1. ネットワーク時間(タイムゾーンの設定、ntpサーバ...
Enctype : ブラウザがデータをサーバーに送り返すときに使用するエンコーディングのタイプを指定...
目次現象根本原因分析getLastPacketReceivedTimeMs() メソッドの呼び出し時...
システム トレイ アイコンは、今日でも魔法のような機能です。アイコンを右クリックして目的のアクション...
vuex 永続状態基本原則: すべての vuex データをローカルストレージに保存し、ページが更新さ...
1. 内閣府マスターノードを監視することで、他のスレーブノードへの自動フェイルオーバーを実現できます...
さっそく、コードを直接投稿します。具体的なコードは次のとおりです。 <!DOCTYPE htm...
私は最近新しい会社に入社したのですが、データベース設計にいくつか小さな問題があることに気付きました。...
インストール環境: CAT /etc/os-release CentOS システムのバージョン情報を...
el-form フォームにルールを追加します。データにルールを定義する定義されたルールをel-for...
MySQL Workbench - モデリングおよび設計ツール1. モデルは、最も効果的で高性能なデ...
序文スロー クエリ ログは、MySQL で非常に重要な機能です。MySQL のスロー クエリ ログ機...
<br />Web2.0とは何ですか? Web2.0にはソーシャルネットワーク製品とその...