JavaScript でフォロー広告を実装するためのサンプルコード

JavaScript でフォロー広告を実装するためのサンプルコード

フローティング広告は、ウェブサイト上で非常に一般的な広告形式です。フローティング広告は、ユーザーの閲覧をリアルタイムで追跡し、商品の意味を効果的に伝え、優れたコミュニケーション効果を実現します。では、フローティング広告はどのように実装されるのでしょうか? 実は、フローティング広告の実装は難しくありません。詳細は次のとおりです。

        * {
            マージン: 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 をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • JavaScriptは次のスクロールバッファモーション広告フレームを実装します
  • jsを使用して次のマウスの動きを実現し、画像広告の例を閉じる
  • jsはマスクレイヤーのログインボックスとカプレット広告を書き込み、スクロールバーに従って自動的にスクロールします。

<<:  Nginx プロセス管理とリロードの原則の詳細な説明

>>:  MySQL 結合バッファの原理

推薦する

Mysql 更新マルチテーブル共同更新方法の概要

次に、2 つのテーブルを作成し、一連の SQL 文を実行します。SQL 文の実行後にテーブル内のデー...

Ubuntuはカーネルモジュールをコンパイルし、その内容はシステムログに反映されます。

目次1.Linuxログインインターフェース2. コードを書く3. Makefileを書く4. コンパ...

HTML タグ マーキーはさまざまなスクロール効果を実現します (JS 制御なし)

ページの自動スクロール効果は JavaScript で実現できますが、今日偶然、JS 制御なしでさま...

MySQL で重複時間を削除して時間差を計算する実装

目次必要:ドライブ:アイデア:成し遂げる:個人的には、実際の開発ではストアド プロシージャの使用はお...

Docker+keepalived+nginx を使用してマスタースレーブホットスタンバイを実装する方法の例

序文単一障害点を解決するには、マスター/スレーブ ホット スタンバイ ソリューションを構成する必要が...

Centos7環境でYUMを構築する方法

1. yumソースの設定ファイルを入力します 2.lsで設定ファイルを表示する 3. ディレクトリを...

HTMLプログラミングタグとドキュメント構造の詳細な説明

HTML を使用してコンテンツをマークアップする目的は、Web ページにセマンティクスを与えることで...

HTML+CSSは、要素の位置までスクロールして読み込みアニメーション効果を表示します。

要素までスクロールするたびに読み込みアニメーションを追加するにはどうすればよいですか?初期パラメータ...

CSS3はNESゲームコンソールのサンプルコードを実装します

成果を達成する実装コードhtml <input type="radio" ...

ウォーターフォールレイアウト+ダイナミックレンダリングの実装

目次典型的なウォーターフォールウェブサイトウォーターフォールフローレイアウトの原則一般的な考え方具体...

MySQL グローバルロックとテーブルレベルロックの具体的な使用法

目次序文グローバルロックテーブルロックテーブルロックメタデータ ロック (MDL ロック)要約する参...

MySQL 8.0 のインストール中に発生した 3 つの小さなエラーの概要

序文これまで当社ではMySQLの5.7シリーズを使用していましたが、バージョン8.0のリリースに合わ...

CSS でテキストカラーグラデーションを実装する 3 つの方法

Web フロントエンド開発のプロセスでは、UI デザイナーはグラデーション テキストを使用したデザイ...

MyBatisインターセプターのページング機能を実装する方法

MyBatisインターセプターのページング機能を実装する方法序文:まず、実装原則についてお話しします...

Vue2.x プロジェクトのパフォーマンス最適化のためのコード最適化の実装

目次1 v-ifとv-showの使用2. 計算と監視を区別する3 v-for トラバーサルでは、アイ...