国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

目次
ブラウザのサポートとポリフィル
次のデモンストレーションは、
この新機能には優(yōu)れたブラウザのサポートはありませんが、PolyFillを使用することもできます。Modernizrで代替スタイルを定義する場合は、デフォルトの
は、相対的なポジショニングと固定ポジショニングの混合です。これにより、要素は、特定のスクロールポイントに到達するまで、その親要素內(nèi)の相対位置のように動作し、その時點で固定位置になります。これは、他のCSSの場所とは異なります。たとえば、「相対的な」位置では、要素の通常の位置に対する要素を位置付けることができますが、「固定」の位置は要素をブラウザウィンドウに対して配置し、ページがスクロールされていても移動しません。 「絶対」位置は、最新の位置付けられた祖先に対する要素を見つけます。「靜的」はデフォルト値であり、ページの通常のフローに応じて要素を見つけます。
なぜ私のCSSの粘著性が機能しないのですか?
CSSをすべてのブラウザで粘著性のある作業(yè)に位置付ける方法は?
ホームページ ウェブフロントエンド jsチュートリアル CSS 'Position:Sticky' - 紹介とポリフィル

CSS 'Position:Sticky' - 紹介とポリフィル

Feb 21, 2025 am 08:52 AM

CSS

キーポイント

  • cssのposition: stickyプロパティにより、ユーザーがページに固定せずにスクロールすると、ナビゲーションバーまたは他の要素が表示されたままになります。このプロパティは、與えられたオフセットしきい値に到達するまで、親要素內(nèi)の靜的位置のように機能します。 fixed この効果を達成する従來の方法には、ページのスクロールイベントが聴取され、JavaScriptを使用して、ビューポートの現(xiàn)在の位置に基づいて
  • およびプロパティの値を変更するJavaScriptが含まれます。ただし、要素の位置が
  • に変化すると、このメソッドは問題を引き起こし、ページストリームを殘し、下の要素を「ジャンプアップ」します。 position top現(xiàn)在、「fixed」屬性のブラウザサポートは限られています。ただし、フィラメントグループに固定されたスティッキー、マシューフィリップスの位置 - 焦げ付き防止、オレグコルスンスキーのスティッキーフィルなど、この機能を提供するために使用できるポリフィルがいくつかあります。
  • position: stickyAnnarita Tranficiの記事「明白なデザインは常に勝つ」を読んだことがあるなら、あなたは彼女に同意するかもしれません:

人々は一般的なパターンを見ることを期待しています。ページの上部にメインメニューを見つけ、右上隅にある検索ボックスを見つけ、下部にあるフッターを見つけます。

人々は、ウェブサイトの特定のコンポーネントが特定の場所に配置されることを期待していることに同意します。これは、私の意見では、メインメニューにとってより重要です。

時々、顧客の要件のため、またはこれが最良のアプローチであると判斷したため、基本的にページコンテンツに従って、そのページを所定の位置に固定せずに常に表示する必要がある場合があります。近年、CSSだけがこのタスクを完了できないため、多くのJavaScriptベースのソリューションがリリースされています。

この記事では、この問題の新しいCSSソリューションである

について説明します。

どのような問題を解決しますか?

position: stickyこの

プロパティの新しい価値について議論する前に、私たちが解決しようとしている問題をよりよく理解しましょう。

素晴らしいウェブサイトのメインメニューがタイトルの後にあるが、まだページの上部(サイドバーではない)にあり、利用可能なすべての幅を取り上げるとします。これは次のようになるかもしれません:

position

Codepenサンプルリンク

私たちが達成したいのは、ユーザーがページをスクロールすると、メニューがビューポートの上部にユナイテッドになったら、メニューはビューの外側(cè)にスクロールせず、上位の位置に固執(zhí)することです。 同じ(ビューポートの上部に到達した場合のみ)。

従來のコードでこれを達成するには、JavaScriptを追加する必要があります。ページ上のイベントのスクロールを聴き、JavaScriptを使用して、ビューポートの現(xiàn)在の位置に基づいてpositionおよびtopプロパティの値を変更します。具體的には、メニューがビューポートの一番上にある場合、メニューにtop: 0position: fixedを追加する必要があります。そうしないと、屬性がデフォルト値に復元されます。

別の同様のアプローチは、これらの値を含むCSSにクラスを作成し、必要に応じてJavaScriptを使用してクラスを追加および削除することです。これは次のようになります。

var menu = document.querySelector('.menu')
var menuPosition = menu.getBoundingClientRect().top;
window.addEventListener('scroll', function() {
    if (window.pageYOffset >= menuPosition) {
        menu.style.position = 'fixed';
        menu.style.top = '0px';
    } else {
        menu.style.position = 'static';
        menu.style.top = '';
    }
});
このコードスニペットは、古いバージョンのInternetExplorerを処理しないことに注意してください。これらのブラウザ(貧しい?。─藢潉Iする必要がある場合は、検討できるポリフィルオプションを提供します。

この2番目のステップのリアルタイムデモは次のとおりです。

Codepenサンプルリンク

しかし、待ってください!このコードによって引き起こされた問題を見つけることができますか?私たちがこれまでに開発したものを含め、私が見た多くの実裝は、重要な問題を考慮していません。要素の位置を

に変更すると、ページのストリームを離れるため、以下の要素は要素の高さのピクセル數(shù)にほぼ等しく「ジャンプ」します(この「ジャンプ」の高さは依存しますマージン、境界など)。

fixed可能なソリューションは、「貼り付け」したい要素と同じサイズのプレースホルダー要素を注入することです。そうすれば、粘著性要素のスタイルを更新すると、ジャンプがないようにします。さらに、正しい値が設定されている場合、理由もなく値を繰り返し再割り當てしたくありません。最後に、CSSクラスを使用して説明した手法を採用したいと考えています。

JavaScriptコードの最終バージョンは次のとおりです。

これは

クラスの宣言ブロックです:
var menu = document.querySelector('.menu');
var menuPosition = menu.getBoundingClientRect();
var placeholder = document.createElement('div');
placeholder.style.width = menuPosition.width + 'px';
placeholder.style.height = menuPosition.height + 'px';
var isAdded = false;

window.addEventListener('scroll', function() {
    if (window.pageYOffset >= menuPosition.top && !isAdded) {
        menu.classList.add('sticky');
        menu.parentNode.insertBefore(placeholder, menu);
        isAdded = true;
    } else if (window.pageYOffset < menuPosition.top && isAdded) {
        menu.classList.remove('sticky');
        menu.parentNode.removeChild(placeholder);
        isAdded = false;
    }
});

sticky最終結(jié)果は、この次のデモに示されています:

.sticky {
    top: 0;
    position: fixed;
}

Codepenサンプルリンク

問題が何であり、JavaScriptベースのソリューションが何であるかをよく把握しているので、近代化を受け入れ、これが何であるかを議論する時が來ました。

ポジションとは:粘著性?

position: sticky前のセクションを注意深く読んだら、「なぜブラウザが私のためにこれをすることができないのかと思っているかもしれません!

は、CSS

プロパティに導入された新しい値です。この値は、與えられたオフセットしきい値に到達するまで、その親要素內(nèi)の

のように動作する必要があります。言い換えれば、

を使用することにより、javaScriptなしで前のセクションで説明した問題を解決できます。 sticky position前の例をレビューして、この新しい値を使用して、次のことを記述できます。 position: static fixedブラウザは殘りをします!そんなに簡単です。 position: sticky

ブラウザのサポートとポリフィル

この新しい値のサポートは現(xiàn)在非常に悪いです。各ブラウザのスタック狀況は次のとおりです

    firefox 26 - css.sticky.enabledをcss.sticky.enabledの設定でサポートしています。
  • Chrome 23 - Chrome:// Flagsで実験的なWebプラットフォーム機能を有効にすることでサポートされています。
  • Chrome 38(?) - Chromeチームは最近、この機能をBlinkから削除したため、現(xiàn)在、Chrome Canary(バージョン38.x)では利用できません。削除を説明するバグレポートを読むことができますが、この機能はまもなく再実裝され、安定したバージョンのサポートを中斷しない可能性があると思います。
  • safari 6.1 -
  • ベンダープレフィックスを使用してこの値をサポートします(すなわち-webkitposition: -webkit-sticky
  • Opera 23 - About:Flagsで実験的なWebプラットフォーム機能を有効にすることでサポートされています。
  • Internet Explorer - サポートされていません(ステータスを參照)

を參照してください。すべての詳細については使用できますか。 position: sticky

幸いなことに、選択できる多數(shù)のポリフィルがあります

フィラメントグループの固定焦げつけ(jqueryが必要)
  • マシューフィリップスのポジション - スティッキー - (Modernizrでの検出)
  • フィリップウォルトンのpolyfill.jsライブラリ position: stickyFabrice Weinbergの
  • Codepen Demo(jquery required)
  • position: sticky oleg KorsunskyのStickyFill(IE9)
  • demo

次のデモンストレーションは、

の実際の効果を示しています。前述のように、それを機能させるために、そしてあなたが使用しているブラウザに応じて、あなたはフラグを有効にする必要があるかもしれません。

position: sticky

Codepenサンプルリンク

結(jié)論

この新機能には優(yōu)れたブラウザのサポートはありませんが、PolyFillを使用することもできます。Modernizrで代替スタイルを定義する場合は、デフォルトの

またはに優(yōu)雅にダウングレードします。

position: staticこのプロパティを試したことがある場合、または他のポリフィルを知っている場合は、コメントでお知らせください。 position: fixed CSS位置の粘著性(FAQ)

に関する

FAQ

CSS位置の粘著性と他のCSSの場所の違いは何ですか?

css

は、相対的なポジショニングと固定ポジショニングの混合です。これにより、要素は、特定のスクロールポイントに到達するまで、その親要素內(nèi)の相対位置のように動作し、その時點で固定位置になります。これは、他のCSSの場所とは異なります。たとえば、「相対的な」位置では、要素の通常の位置に対する要素を位置付けることができますが、「固定」の位置は要素をブラウザウィンドウに対して配置し、ページがスクロールされていても移動しません。 「絶対」位置は、最新の位置付けられた祖先に対する要素を見つけます?!胳o的」はデフォルト値であり、ページの通常のフローに応じて要素を見つけます。

なぜ私のCSSの粘著性が機能しないのですか?

cssposition: stickyはいくつかの理由で機能しません。一般的な理由は、親要素のoverflow屬性がhidden、auto、またはscrollに設定されていることです。もう1つの理由は、粘著性の要素がそれよりも高い兄弟を持ち、ビューポートからスクロールする原因となることかもしれません。また、一部のブラウザでは、CSS position: stickyがテーブル要素で動作しないため、粘著性要素がテーブル要素ではないことを確認してください。

CSSをすべてのブラウザで粘著性のある作業(yè)に位置付ける方法は?

cssposition: stickyは最新のブラウザーで広くサポートされていますが、一部の古いバージョンでは機能しない場合があります。すべてのブラウザにわたって互換性を確保するために、PolyFillを使用できます。 PolyFillは、ブラウザにネイティブに提供すると予想されるテクノロジーを提供するスクリプトです。 CSSの人気のあるポリフィルは粘著性です。 position: sticky

他のCSSプロパティに粘著性のCSS位置を使用できますか?

はい、他のCSSプロパティでCSS

を使用できます。たとえば、それをposition: stickyで使用してスタッキング順序を制御するか、z-indexで要素が粘著性になったときに影効果を作成できます。 box-shadow

CSSの位置粘著性は、スクロールコンテナでどのように動作しますか?

粘著性要素がローリングコンテナの內(nèi)側(cè)にある場合、下にスクロールすると容器の上部に付著し、コンテナの下端が過ぎ去ると貼り付けられます。

要素の下部でCSS位置の粘著性を使用できますか?

はい、要素の下部でcss

を使用できます。 position: sticky屬性の負の値を指定するだけです。これにより、要素が容器の底に付著します。 bottom

css位置粘著マージンでどのように機能しますか?

結(jié)婚とCSS

は、相対的なポジショニングで作業(yè)するのと同じように機能します。マージンは、元の位置ではなく、粘著性の位置に対して粘著性要素を移動します。 position: sticky

水平スクロールにCSS位置の粘著性を使用できますか?

はい、水平スクロールにはCSS

を使用できます。 position: stickyまたはleft屬性の値を指定するだけでなく、rightまたはtop屬性を指定する必要があります。 bottom

CSS位置を使用して、スクロールオフセットを制御するにはどうすればよいですか?

スクロールオフセットは、

top、right、およびbottomプロパティによって制御されます。これらのプロパティに指定する値は、要素が貼り付けを開始するビューポートの対応するエッジまでの距離を決定します。 left

CSS遷移でCSS位置を使用することはできますか?

はい、CSS遷移でCSS

を使用できます。ただし、遷移は、要素が相対位置から固定位置に変化する場合にのみ適用されることを忘れないでください。 position: sticky

実際のCodePenの例にアクセスできないため、CodePenリンクをプレースホルダーに置き換えたことに注意してください。これらのプレースホルダーを?qū)g際のリンクに置き換える必要があります。 さらに、元のテキストを可能な限り書き直し、元の意味を変えずに記事をよりスムーズで自然にするよう努めています。

以上がCSS 'Position:Sticky' - 紹介とポリフィルの詳細內(nèi)容です。詳細については、PHP 中國語 Web サイトの他の関連記事を參照してください。

このウェブサイトの聲明
この記事の內(nèi)容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰屬します。このサイトは、それに相當する法的責任を負いません。盜作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undress AI Tool

Undress AI Tool

脫衣畫像を無料で

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

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

SublimeText3 中國語版

SublimeText3 中國語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統(tǒng)合開発環(huán)境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

Java vs. JavaScript:混亂を解消します Java vs. JavaScript:混亂を解消します Jun 20, 2025 am 12:27 AM

JavaとJavaScriptは異なるプログラミング言語であり、それぞれ異なるアプリケーションシナリオに適しています。 Javaは大規(guī)模なエンタープライズおよびモバイルアプリケーション開発に使用されますが、JavaScriptは主にWebページ開発に使用されます。

JavaScriptコメント:短い説明 JavaScriptコメント:短い説明 Jun 19, 2025 am 12:40 AM

JavaScriptcommentsEareEssentialential-formaining、およびGuidingCodeexecution.1)single-linecommentseared forquickexplanations.2)多LinecommentsexplaincomplexlogiCorprovidededocumentation.3)clarifyspartsofcode.bestpractic

JSで日付と時間を操作する方法は? JSで日付と時間を操作する方法は? Jul 01, 2025 am 01:27 AM

JavaScriptで日付と時間を処理する場合は、次の點に注意する必要があります。1。日付オブジェクトを作成するには多くの方法があります。 ISO形式の文字列を使用して、互換性を確保することをお勧めします。 2。時間情報を取得および設定して、メソッドを設定でき、月は0から始まることに注意してください。 3.手動でのフォーマット日付には文字列が必要であり、サードパーティライブラリも使用できます。 4.ルクソンなどのタイムゾーンをサポートするライブラリを使用することをお勧めします。これらの重要なポイントを習得すると、一般的な間違いを効果的に回避できます。

JavaScript vs. Java:開発者向けの包括的な比較 JavaScript vs. Java:開発者向けの包括的な比較 Jun 20, 2025 am 12:21 AM

javascriptispreferredforwebdevelopment、whilejavaisbetterforlge-scalebackendsystemsandroidapps.1)javascriptexcelsininintingtivewebexperiences withitsdynAmicnature anddommanipulation.2)javaofferstruntypyping-dobject-reientedpeatures

なぜの下部にタグを配置する必要があるのですか? なぜの下部にタグを配置する必要があるのですか? Jul 02, 2025 am 01:22 AM

PLACSTHETTHETTHE BOTTOMOFABLOGPOSTORWEBPAGESERVESPAGESPORCICALPURPOSESESFORSEO、userexperience、andDesign.1.IthelpswithiobyAllowingseNStoAccessKeysword-relevanttagwithtagwithtagwithtagwithemaincontent.2.iTimrovesexperiencebyepingepintepepinedeeping

JavaScript:効率的なコーディングのためのデータ型の調(diào)査 JavaScript:効率的なコーディングのためのデータ型の調(diào)査 Jun 20, 2025 am 12:46 AM

javascripthassevenfundamentaldatypes:number、string、boolean、undefined、null、object、andsymbol.1)numberseadouble-precisionformat、有用であるため、有用性の高いものであるため、but-for-loating-pointarithmetic.2)ストリングリムムット、使用率が有用であること

DOMでのイベントの泡立ちとキャプチャとは何ですか? DOMでのイベントの泡立ちとキャプチャとは何ですか? Jul 02, 2025 am 01:19 AM

イベントキャプチャとバブルは、DOMのイベント伝播の2つの段階です。キャプチャは最上層からターゲット要素までであり、バブルはターゲット要素から上層までです。 1.イベントキャプチャは、AddEventListenerのUseCaptureパラメーターをTrueに設定することにより実裝されます。 2。イベントバブルはデフォルトの動作であり、UseCaptureはfalseに設定されているか、省略されます。 3。イベントの伝播を使用して、イベントの伝播を防ぐことができます。 4.イベントバブルは、動的なコンテンツ処理効率を改善するためにイベント委任をサポートします。 5.キャプチャを使用して、ロギングやエラー処理など、事前にイベントを傍受できます。これらの2つのフェーズを理解することは、タイミングとJavaScriptがユーザー操作にどのように反応するかを正確に制御するのに役立ちます。

JavaとJavaScriptの違いは何ですか? JavaとJavaScriptの違いは何ですか? Jun 17, 2025 am 09:17 AM

JavaとJavaScriptは、異なるプログラミング言語です。 1.Javaは、エンタープライズアプリケーションや大規(guī)模なシステムに適した、靜的に型付けされ、コンパイルされた言語です。 2。JavaScriptは動的なタイプと解釈された言語であり、主にWebインタラクションとフロントエンド開発に使用されます。

See all articles