フローティング広告は、ウェブサイト上で非常に一般的な広告形式です。フローティング広告は、ユーザーの閲覧をリアルタイムで追跡し、商品の意味を効果的に伝え、優れたコミュニケーション効果を実現します。では、フローティング広告はどのように実装されるのでしょうか? 実は、フローティング広告の実装は難しくありません。詳細は次のとおりです。 * { マージン: 0; パディング: 0; } 画像 { 位置: 絶対; 左: 0; } p { テキスト配置: 中央; 行の高さ: 40px; } <img src="images/left_ad.png" alt=""> <p>私は本文1です</p> <p>私は本文2です</p> <p>私は本文3です</p> <p>私は本文4です</p> <p>私は本文5です</p> <p>私は本文6です</p> <p>私は本文7です</p> <p>私は本文8です</p> <p>私は本文9です</p> <p>私は本文10です</p> <p>私は本文11です</p> <p>私は本文12です</p> <p>私は本文13です</p> <p>私は本文14です</p> <p>私は本文15です</p> <p>私は本文16です</p> <p>私は本文17です</p> <p>私は本文18です</p> <p>私は本文19です</p> <p>私は本文20です</p> <p>私は本文21です</p> <p>私は本文22です</p> <p>私は本文23です</p> <p>私は本文24です</p> <p>私は本文25です</p> <p>私は本文26です</p> <p>私は本文27です</p> <p>私は本文28です</p> <p>私は本文29です</p> <p>私は本文30です</p> <p>私はテキスト31です</p> <p>私はテキスト32です</p> <p>私はテキスト33です</p> <p>私は本文34です</p> <p>私は本文35です</p> <p>私はテキスト36です</p> <p>私はテキスト37です</p> <p>私はテキスト38です</p> <p>私はテキスト39です</p> <p>私はテキスト40です</p> <p>私はテキスト41です</p> <p>私はテキスト42です</p> <p>私はテキスト43です</p> <p>私はテキスト44です</p> <p>私は本文45です</p> <p>私はテキスト46です</p> <p>私はテキスト47です</p> <p>私はテキスト48です</p> <p>私はテキスト49です</p> <p>私はテキスト50です</p> //1. 操作対象となる要素を取得します。const oAdImg = document.querySelector("img"); //2. 広告画像の上部の値を計算する = (ビューポートの高さ - 広告の高さ)/2 const screenHeight = getScreen().height; const imgHeight = oAdImg.offsetHeight; 定数 offsetY = (画面の高さ - 画像の高さ) / 2; // コンソールログ(オフセットY); //3. 計算された上部の値を広告画像に設定します // oAdImg.style.top = offsetY + 'px'; アニメーションのイーズ(oAdImg, { "上": オフセットY }); //4. Webページのスクロールイベントをリッスンする window.onscroll = function() { //Web ページのスクロール距離を取得します //広告画像の上部の値 + Web ページのスクロール距離 let pageOffsetY = getPageScroll().y; アニメーションのイーズ(oAdImg, { "top": offsetY + pageOffsetY }); }; // ブラウザのビューポートの幅と高さ関数 getScreen() { 幅、高さを指定します。 if (window.innerWidth) { 幅 = ウィンドウの内側の幅; 高さ = window.innerHeight; } そうでない場合 (document.compatMode === "BackCompat") { 幅 = document.body.clientWidth; 高さ = document.body.clientHeight; } それ以外 { 幅 = document.documentElement.clientWidth; 高さ = document.documentElement.clientHeight; } 戻る { 幅: 幅、 高さ: 高さ } } // イーズアニメーション関数easeAnimation(ele, obj, fn) { 間隔をクリアします(ele.timerId); ele.timerId = setInterval(関数() { // フラグ変数は、すべてのプロパティがアニメーションを完了したかどうかを示すために使用されます。let flag = true; for (let key in obj) { ターゲットをobj[キー]とします。 // 1. 要素の現在の位置を取得します。let style = getComputedStyle(ele); begin = parseInt(style[key]) || 0 とします。 // 2. 可変レコードステップサイズを定義する // 式: (終了位置 - 開始位置) * イージング係数 (0 ~ 1) ステップ = (ターゲット - 開始) * 0.3 とします。 // 3. 新しい位置を計算します。begin += step; (Math.abs(Math.floor(step)) > 1) の場合 { フラグ = false; } それ以外 { 開始 = ターゲット; } // 4. 要素の位置をリセットします。ele.style[key] = begin + "px"; } //アニメーションが実行されたかどうかを判定する if (flag) { //アニメーションが終了したら、タイマーをオフにします。clearInterval(ele.timerId); // fn 関数が渡されたかどうかを判断し、渡された場合は実行し、そうでない場合は実行しません fn && fn(); } }, 100); } //ウェブページのスクロール距離関数 getPageScroll() { x, y とします。 if (window.pageXOffset) { x = ウィンドウのページXオフセット; y = ウィンドウのYオフセット; } そうでない場合 (document.compatMode === "BackCompat") { ドキュメントの左端をスクロールします。 ドキュメントの先頭部分をスクロールします。 } それ以外 { ドキュメント要素の左スクロール。 y = document.documentElement.scrollTop; } 戻る { x: x, y: y } } レンダリング これで、JavaScript でフォローアップ広告を実装するためのサンプルコードに関する記事は終了です。JavaScript フォローアップ広告に関するより関連性の高いコンテンツについては、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: Nginx プロセス管理とリロードの原則の詳細な説明
具体的なコードは次のとおりです。 <スタイル> #トーストローダーフルスクリーン{ 高さ...
背景最近、SQL 文を書くときに、IN と Exists のどちらを選択するか迷ったので、両方の方法...
目次1. 需要2. 実装3. 結果1. 需要入力ボックスにデータを入力し、入力結果に基づいてデータベ...
目次最初のステップのインストールステップ2: MySQLデータを準備する3 番目のステップは、bin...
この記事では、ログインタイプの切り替えを実装するためのVueの具体的なコードを例として紹介します。具...
目次1. JavaScript エンジンとは何ですか? 2. V8エンジン3. ランタイム環境4. ...
この記事は、WeChat アプレットを使用して作成された簡単な計算機です。興味のある方はご覧ください...
0x0 はじめにまず、ハッシュアルゴリズムとは何でしょうか?メッセージやセッション項目など、一部のデ...
自分でウェブページを書きたいので、HTML 言語についても少し勉強しています。これは、大学時代にウェ...
CSS を記述するときに、デザインに存在する重要なケースを忘れてしまうことがあります。たとえば、コン...
デフォルトでは、コンテナ データの読み取りと書き込みはコンテナのストレージ レイヤーで行われます。コ...
その理由は、このタイプの Web ページが WAP と呼ばれるワイヤレス プロトコルから生成されたた...
目次1. 重複行を見つける方法2. 重複行を削除する方法3. 複数の列で重複を見つける方法4. クエ...
1. VMware vSphere の概要VMware vSphere は、業界をリードする最も信...
この記事では、MySQLバージョン5.7のインストール方法と使用方法、およびデータベースデータの保存...