ホームページ ウェブフロントエンド jsチュートリアル DOM向けJavaScriptアプリケーション解析(5)_DOM

DOM向けJavaScriptアプリケーション解析(5)_DOM

May 16, 2016 pm 05:54 PM
dom

実際、これは JS チュートリアルの範囲に含めるべきではありません。 IE6 以降のブラウザは固定属性をサポートしている必要があります。 IE6のみ対応しておりません。そこで私はIE6を選択しました。ここでチュートリアルを説明します。さらに、この効果は生徒のコンピューティングスキルを鍛えることもできます。将来のエフェクトの多くは、コンピューター能力を必要とします。笑
中央に固定。あるいは、どこに固定されても思考はほぼ同じです。アルゴリズムを明確にしたい場合に限ります。エフェクトを書くのは簡単です。最初にコードを投稿してください


[Ctrl A すべて選択 注: 外部 Js を導入する必要がある場合は、更新して
]

var を実行する必要がありますisIE=!!window .ActiveXObject;
var isIE6=isIE&&!window.XMLHttpRequest;
これら 2 つの文はブラウザを決定するために使用されます。 Aajxでの方法です。それも分かりやすいです。ここではこれ以上多くは言いません。興味があれば、オンラインで検索してさまざまなブラウザについて学ぶことができます。

var t= (document.documentElement.clientHeight - document.getElementById("gd").offsetHeight)/2 document.documentElement.scrollTop;
var l = (document.documentElement.clientWidth - document. getElementById("gd").offsetWidth)/2 document.documentElement.scrollLeft;
この 2 つの文が重要なポイントです。慎重に言っておきたいのですが、
document.documentElement.clientHeight は現在のブラウザ ウィンドウの高さを取得することです。
document.getElementById("gd").offsetHeight これは、dom 要素の実際の高さを取得するためのものです。
document.documentElement.scrollTop スクロールバーの高さを取得します。

document.documentElement.clientHeight/2 はブラウザ全体の高さの半分から、document.getElementById("gd").offsetHeight/2 を引いた値が dom 要素の高さの半分です。 DOM 要素を中央に配置する必要があるのは、現在のブラウザーの上部からの上部の距離です。しかし、これは単なる行き止まりです。ブラウザのコンテンツは、ブラウザの現在のウィンドウの高さ以下にすることはできないためです。コンテンツが特に多い場合には、スクロール バーが表示されます。幸いなことに、document.documentElement.scrollTop があり、これがスクロール バーの高さです。これを追加することは、リアルタイム DOM 要素を中央に配置する必要がある場合の現在のブラウザーの上部からの距離です。もちろん、次の文のアルゴリズムはこれと同じです。これ以上の詳細は説明しません。これは少し深い印象を与えます。

私が言ったことを理解したかどうかはわかりません。これは写真と文章で説明する必要があります。しかし、私が言ったことは非常に明確であるべきだと思います。まだ少し混乱している場合。紙に描くだけでも理解できます。
距離が明確であれば。最後にもう 1 つだけ行う必要があります。そのとき、スクロールバーがスクロールします。スクロールの高さはリアルタイムで追加されます。次に、即時の t 値と l 値を dom の上部と左の属性に設定します。これにより、ユーザーに誤った印象を与える可能性があります。これはそこで修正されたと思いました。 コードは次のとおりです:


if(isIE6){
setInterval (function( ){
t = (document.documentElement.clientHeight - document.getElementById("gd").offsetHeight)/2 document.documentElement.scrollTop;
l = (document.documentElement.clientWidth - document. getElementById(" gd").offsetWidth)/2 document.documentElement.scrollLeft;
document.getElementById("gd").style.position = "absolute"
document.getElementById("gd").style.トップ = t "px";
document.getElementById("gd").style.left = l
},1)
<script> window.onload = function(){ var isIE=!!window.ActiveXObject; var isIE6=isIE&&!window.XMLHttpRequest; var t = (document.documentElement.clientHeight - document.getElementById("gd").offsetHeight)/2 + document.documentElement.scrollTop; var l = (document.documentElement.clientWidth - document.getElementById("gd").offsetWidth)/2 + document.documentElement.scrollLeft; if(isIE6){ setInterval(function(){ t = (document.documentElement.clientHeight - document.getElementById("gd").offsetHeight)/2 + document.documentElement.scrollTop; l = (document.documentElement.clientWidth - document.getElementById("gd").offsetWidth)/2 + document.documentElement.scrollLeft; document.getElementById("gd").style.position = "absolute" document.getElementById("gd").style.top = t + "px"; document.getElementById("gd").style.left = l + "px"; },1) } else{ document.getElementById("gd").style.position = "fixed" document.getElementById("gd").style.top = t + "px"; document.getElementById("gd").style.left = l + "px"; } } </script>
この段落はこの目的のためのものです。 if(isIE6) は isIE6 が true の場合です。つまり、IE6ブラウザの場合です。 setInterval(...,1) は、IE6 ブラウザで 1 マイクロ秒ごとにステートメントを実行するクロックを設定します。つまり、tとlの値は常に更新されます。その後、DOM 要素の上部と左の属性を継続的に支払います。1 マイクロ秒は非常に高速です。ユーザーが 1 マイクロ秒以内にスクロール バーを引くことは不可能です。したがって、ユーザーは何も見ることができません。そこで決まったのかと思いました。もちろん、スクロールイベントwindon.onscrollを設定することもできます。それも大丈夫です。しかし、私はそれが良いとは思いません。興味があれば、調べてみてもいいでしょう(くどいので気にしないでください。私がたくさんのことを教えるよりも、自分で調べたほうが役に立つと思います)。

もちろん、IE6 以外のブラウザも固定属性をサポートしています。これらのステートメントを実行するだけです。
document.getElementById("gd").style.position = "fixed"//固定属性を dom 要素に追加します
document.getElementById("gd").style.top = t "px"; / /初期化中に dom 要素に中心の t 値を設定します。
document.getElementById("gd").style.left = l "px";//初期化中に dom 要素に中央の l 値を設定します

わかりました。この記事はここまでです。ちょうどここが中心です。下固定引き手、左固定引き手などもあります。原則は同じです。上と左の計算が違うだけです。元気であれば、自分で調べてもいいでしょう。 setInterval と setTimeout という 2 つのメソッドもあります。今後のチュートリアルで頻繁に使用されます。
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Vue3 で DOM ノードを取得する方法は何ですか? Vue3 で DOM ノードを取得する方法は何ですか? May 11, 2023 pm 04:55 PM

1. ネイティブ js は DOM ノードを取得します。 document.querySelector (セレクター) document.getElementById (id セレクター) document.getElementsByClassName (クラス セレクター).... 2. vue2 で現在のコンポーネントのインスタンス オブジェクトを取得します。コンポーネント インスタンスには、対応する DOM 要素またはコンポーネントへの参照を保存する $refs オブジェクトが含まれています。したがって、デフォルトでは、コンポーネントの $refs は空のオブジェクトを指します。まず ref="name" をコンポーネントに追加してから、this.$refs を渡します。

PHP での DOM 操作ガイド PHP での DOM 操作ガイド May 21, 2023 pm 04:01 PM

Web 開発において、DOM (DocumentObjectModel) は非常に重要な概念です。これにより、開発者は要素の追加、削除、変更など、Web ページの HTML または XML ドキュメントを簡単に変更および操作できるようになります。 PHP に組み込まれている DOM 操作ライブラリも開発者向けに豊富な機能を提供していますので、この記事では、皆様のお役に立てればと思い、PHP での DOM 操作ガイドを紹介します。 DOM の基本概念 DOM は、クロスプラットフォームで言語に依存しない API です。

vue dom とはどういう意味ですか? vue dom とはどういう意味ですか? Dec 20, 2022 pm 08:41 PM

DOM はドキュメント オブジェクト モデルであり、HTML プログラミング用のインターフェイスであり、ページ内の要素は DOM を通じて操作されます。 DOM は HTML ドキュメントのメモリ内オブジェクト表現であり、JavaScript を使用して Web ページと対話する方法を提供します。 DOM は、ドキュメント ノードをルートとするノードの階層 (またはツリー) です。

vue3 で dom またはコンポーネントへの ref バインディングが失敗する理由とその解決方法は何ですか? vue3 で dom またはコンポーネントへの ref バインディングが失敗する理由とその解決方法は何ですか? May 12, 2023 pm 01:28 PM

Vue3ref バインディング DOM またはコンポーネントの失敗理由分析シナリオの説明 Vue3 では、コンポーネントまたは DOM 要素をバインドするために ref を使用することがよくありますが、関連するコンポーネントをバインドするために ref が明確に使用されていることがよくありますが、ref バインディングが失敗することがよくあります。 ref バインディングが失敗する状況の例 ref バインディングが失敗するほとんどのケースは、ref がコンポーネントにバインドされているときにコンポーネントがまだレンダリングされていないため、バインディングが失敗することです。または、コンポーネントが最初にレンダリングされず、ref がバインドされていない場合、コンポーネントのレンダリングが開始されると、ref もバインドされ始めますが、ref とコンポーネントの間のバインディングが完了していません。このとき、問題が発生します。コンポーネント関連のメソッドを使用する場合。 ref にバインドされたコンポーネントが v-if を使用するか、その親コン​​ポーネントが v-if を使用してページに

dom オブジェクトと bom オブジェクトとは何ですか? dom オブジェクトと bom オブジェクトとは何ですか? Nov 13, 2023 am 10:52 AM

DOM オブジェクトは「ドキュメント」、「要素」、「ノード」、「イベント」、「ウィンドウ」の 5 つ、2.「ウィンドウ」、「ナビゲーター」、「場所」、「履歴」、「画面」、その他 5 つです。 BOM オブジェクト。

ボムとドムの違いは何ですか ボムとドムの違いは何ですか Nov 13, 2023 pm 03:23 PM

BOM と DOM は、役割と機能、JavaScript との関係、相互依存性、さまざまなブラウザーの互換性、セキュリティ上の考慮事項の点で異なります。詳細な紹介: 1. 役割と機能: BOM の主な機能はブラウザ ウィンドウを操作することであり、ブラウザ ウィンドウへの直接アクセスと制御を提供しますが、DOM の主な機能は Web ドキュメントをオブジェクト ツリーに変換し、開発者は、このオブジェクト ツリーを使用して Web ページの要素やコンテンツを取得および変更します。 2. JavaScript などとの関係

DOM の組み込みオブジェクトとは何ですか? DOM の組み込みオブジェクトとは何ですか? Dec 19, 2023 pm 03:45 PM

dom内置オブジェクトの内容:1、document;2、window;3、navigator;4、location;5、history;6、screen;7、document.documentElement;8、document.body;9、document.head;10、document .title;11、document.cookie。

js が dom 要素の水平および垂直スクロール アニメーションを実装する方法を説明する例 js が dom 要素の水平および垂直スクロール アニメーションを実装する方法を説明する例 Aug 07, 2022 am 09:36 AM

この記事では、JS で DOM 要素の横スクロールアニメーションと縦スクロールアニメーションを実装する方法を紹介します。

See all articles