フローティング広告は、ウェブサイト上で非常に一般的な広告形式です。フローティング広告は、ユーザーの閲覧をリアルタイムで追跡し、商品の意味を効果的に伝え、優れたコミュニケーション効果を実現します。では、フローティング広告はどのように実装されるのでしょうか? 実は、フローティング広告の実装は難しくありません。詳細は次のとおりです。 * { マージン: 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 プロセス管理とリロードの原則の詳細な説明
次に、2 つのテーブルを作成し、一連の SQL 文を実行します。SQL 文の実行後にテーブル内のデー...
目次1.Linuxログインインターフェース2. コードを書く3. Makefileを書く4. コンパ...
ページの自動スクロール効果は JavaScript で実現できますが、今日偶然、JS 制御なしでさま...
目次必要:ドライブ:アイデア:成し遂げる:個人的には、実際の開発ではストアド プロシージャの使用はお...
序文単一障害点を解決するには、マスター/スレーブ ホット スタンバイ ソリューションを構成する必要が...
1. yumソースの設定ファイルを入力します 2.lsで設定ファイルを表示する 3. ディレクトリを...
HTML を使用してコンテンツをマークアップする目的は、Web ページにセマンティクスを与えることで...
要素までスクロールするたびに読み込みアニメーションを追加するにはどうすればよいですか?初期パラメータ...
成果を達成する実装コードhtml <input type="radio" ...
目次典型的なウォーターフォールウェブサイトウォーターフォールフローレイアウトの原則一般的な考え方具体...
目次序文グローバルロックテーブルロックテーブルロックメタデータ ロック (MDL ロック)要約する参...
序文これまで当社ではMySQLの5.7シリーズを使用していましたが、バージョン8.0のリリースに合わ...
Web フロントエンド開発のプロセスでは、UI デザイナーはグラデーション テキストを使用したデザイ...
MyBatisインターセプターのページング機能を実装する方法序文:まず、実装原則についてお話しします...
目次1 v-ifとv-showの使用2. 計算と監視を区別する3 v-for トラバーサルでは、アイ...