目次
1.スクロール検出にはJavaScriptを使用してCSSを使用します
基本的なHTML構造
CSS:明らかなアニメーションを定義します
JavaScript:スクロールにクラスを追加します
2。オプション:再利用性のためにCSSカスタムプロパティを使用します
3。パフォーマンスのヒント
4。代替:交差点オブザーバーを使用する(推奨)
ホームページ ウェブフロントエンド CSSチュートリアル CSSを使用したスクロールエフェクトでテキストを作成する方法

CSSを使用したスクロールエフェクトでテキストを作成する方法

Aug 25, 2025 am 06:06 AM
css スクロール効果

純粋なCSSは、スクロールトリガーされたテキスト表示効果を直接実現することはできませんが、少量のJavaScriptとCSS遷移アニメーションを組み合わせることで効率的に実装できます。特定の方法は、JavaScriptを使用して、要素がビューポートに入り、「公開された」クラスを追加するかどうかを検出することです。 CSSは、透明性と変位の遷移効果を定義する責任があります。交差点オブザーバーAPIを使用してパフォーマンスを改善し、最終的にはスムーズでエレガントなスクロールテキストディスプレイ効果を実現することをお勧めします。

CSSを使用したスクロールエフェクトでテキストを作成する方法

CSSを使用したスクロール効果に関するテキストの作成を作成することは、Webページに微妙な相互作用を追加するためのクリーンでパフォーマンスのある方法です。純粋なCSSには、スクロールベースのアニメーションに関しては制限がありますが(CSSだけではスクロール位置を直接検出できないため)、スクロール検出のために最小限のJavaScriptと組み合わせたCSSを使用して、説得力のあるテキスト明らかな効果を実現できます。効果的に行う方法は次のとおりです。

1.スクロール検出にはJavaScriptを使用してCSSを使用します

真の「スクロール」効果では、JavaScriptがユーザーのスクロール位置を監視し、要素が表示されたときにクラスの変更をトリガーする必要があります。ただし、実際のアニメーションとスタイリングはCSSによって処理されます。

基本的なHTML構造

<div class = "revele container">
  <p class = "text-to-reveal">このテキストは、スクロールするときに明らかになります。</p>
</div>

CSS:明らかなアニメーションを定義します

.text-to-reveal {
  不透明:0;
  変換:Translatey(20px);
  トランジション:不透明度0.8s断念、0.8sの容易さを変換します。
}

.text-to-reveal.revealed {
  不透明:1;
  変換:翻訳(0);
}

これにより、テキストが見えないようになり、最初はわずかにシフトします。 revealedクラスが追加されると、それはフェードインしてスムーズに上昇します。

JavaScript:スクロールにクラスを追加します

const textelements = document.QuerySeLectorall( &#39;。テキストから革新&#39;);

const leveryonscroll =()=> {
  textelements.foreach(el => {
    const elementtop = el.getBoundingClientRect()。top;
    const windowheight = window.innerheight;

    //要素がビューポートにある場合
    if(elementtop <windowheight * 0.8){
      el.classlist.add( &#39;leaved&#39;);
    }
  });
};

//ロードで実行してスクロールします
window.addeventlistener( &#39;load&#39;、leveryonscroll);
window.addeventlistener( &#39;scroll&#39;、leveryonscroll);

このスクリプトは、各.text-to-reveal要素がビューポートの高さの80%以内であるかどうかをチェックします。 0.8調整して、公開が発生したときに制御できます(例えば、以前に0.7 、完全に見える場合は1 )。

2。オプション:再利用性のためにCSSカスタムプロパティを使用します

CSS変数を使用することにより、効果をより柔軟にすることができます。

 .reveal-container {
  -reveal-delay:0.2s;
}

.text-to-reveal {
  不透明:0;
  変換:Translatey(20px);
  トランジション:不透明度0.8s断念、0.8sの容易さを変換します。
  トランジションデレイ:var( -  revelie-delay、0s);
}

.text-to-reveal.revealed {
  不透明:1;
  変換:翻訳(0);
  トランジションデレイ:var( -  revelie-delay、0s);
}

これで、要素ごとのタイミングを制御できます。

 <div class = "revele container" style = " -  reveal-delay:0.3s;">
  <p class = "text-to-reveal">は少し後で</p>を明らかにします
</div>

3。パフォーマンスのヒント

  • パフォーマンスの問題を防ぐために、スクロールイベントを絞ります

     ISSCROLLING = false;
    window.addeventlistener( &#39;scroll&#39;、()=> {
      if(!isscrolling){
        window.requestanimationframe(()=> {
          rebrowenscroll();
          isscrolling = false;
        });
        isscrolling = true;
      }
    });
  • アニメーションにtransformopacity使用します - それらはGPUアクセラレーションされており、 margintopアニメーションよりも優れています。

  • リスナーをあまりにも多くの要素に添付しないでください。複数の明らかな要素に単一のオブザーバーパターンを使用することを検討してください。

4。代替:交差点オブザーバーを使用する(推奨)

パフォーマンスとクリーンなコードを改善するには、 IntersectionObserver APIを使用してください。

 const observer = new IntersectionObserver((エントリ)=> {
  entries.foreach(entry => {
    if(entry.isinterSecting){
      entry.target.classlist.add( &#39;leaved&#39;);
      //オプション:公開後に観察を停止します
      Observer.unobserve(entry.target);
    }
  });
}、{しきい値:0.1}); //トリガー要素の10%が表示されている場合

document.QuerySeLectorall( &#39;。テキストからreveal&#39;)。foreach(el => {
  Observer.observe(el);
});

これは、すべてのスクロールイベントを聴くよりも効率的であり、スクロールベースの公開の最新の標準です。


基本的に、CSSのみを使用して真のスクロールトリガーの公開を行うことはできませんが、最小限のJavaScriptとスムーズなCSS遷移を組み合わせることで、強力でパフォーマンスのあるテキスト明らかな効果が得られます。 IntersectionObserverを使用して最良の結果を得て、アニメーションを微妙に保ち、プロの外観にします。

以上がCSSを使用したスクロールエフェクトでテキストを作成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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

ホットAIツール

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Stock Market GPT

Stock Market GPT

AIを活用した投資調査により賢明な意思決定を実現

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

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

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

ホットトピック

CSSを使用してTextareaをスタイリングする方法 CSSを使用してTextareaをスタイリングする方法 Sep 16, 2025 am 07:00 AM

まず、幅、高さ、マージン、境界、フォント、色などの基本的なスタイルを設定します。 2。インタラクティブなフィードバックを強化して:Hoverおよび:フォーカス状態。 3。サイズ属性を使用して、サイズの動作を制御します。 4。::プレースホルダーの擬似要素を使用して、プレースホルダーテキストをスタイリングします。 5.レスポンシブデザインを使用して、デバイス間の可用性を確保します。 6.相関ラベル、色のコントラスト、フォーカスの概要に注意を払って、アクセシビリティを確保し、最終的に美しく機能的なテキストレアスタイルを実現します。

純粋なCSSを使用してドロップダウンメニューを作成する方法 純粋なCSSを使用してドロップダウンメニューを作成する方法 Sep 20, 2025 am 02:19 AM

HTMLとCSSを使用して、JavaScriptなしでドロップダウンメニューを作成します。 2。:Hover Pseudo-Classを介してSubmenuディスプレイをトリガーします。 3.ネストされたリストを使用して構造を構築し、CSSに非表示および吊り下げのあるディスプレイ効果を設定します。 4。視覚的なエクスペリエンスを向上させるために、トランジションアニメーションを追加できます。

CSSでポインターイベントプロパティを使用する方法 CSSでポインターイベントプロパティを使用する方法 Sep 17, 2025 am 07:30 AM

pointer-events-eventsporpertyincssconstrolswhethernelementcanbetheTarget ofpointerevents.1.usepointer-events:nonetodisable interactionsionsionsionsionslikeclicksoversoverseepingtheelementはviseallyvisible.2.applyittooclaallowcliclowcliclavioturtuntowontuntuntointuentointyonelemenmen

画像がCSSで伸びたり縮小したりするのを防ぐ方法 画像がCSSで伸びたり縮小したりするのを防ぐ方法 Sep 21, 2025 am 12:04 AM

useObject-fitormax-widthwithheight:autotopreventimagedistortion; object-fitcontrolshowimagesfillcontainersは、asspectratios、andmax-width:100%; height:autoensuressivescaling withoutwithoutstretching。

CSSでボックスシャドウエフェクトを追加する方法 CSSでボックスシャドウエフェクトを追加する方法 Sep 20, 2025 am 12:23 AM

usethebox-shadowpropertytoaddropshadows.definehorizo​​ntalandaldverticalOffsets、blur、spread、color、andoptionalinsetforinnershadows.multipleshadowsarecomma-separated.example:box-shadow:5px10px8pxrgba(0,0,0,0.3);

CSSにグラデーションの背景を追加する方法 CSSにグラデーションの背景を追加する方法 Sep 16, 2025 am 05:30 AM

CSS勾配の背景を追加するには、背景または背景イメージ属性を使用して、linear-gradient()、radial-gradient()などの関数と協力します。最初に勾配の種類を選択し、方向と色を設定すると、線形勾配(Toright、#FF7E5F、#FEB47B)などの色のドッキングポイント、形状、サイズ、その他のパラメーターを介して細かく制御できます。

CSSでテキストに応答するようにする方法 CSSでテキストに応答するようにする方法 Sep 15, 2025 am 05:48 AM

tomaketextresponsiveincss、userelivateunitslikerem、vw、andclamp()withmediaqueries.1.replacefixedpixelswithremforconsistentscali ngbasedOnRootFontSize.2.USEVWFORFFRUIDSCALINGBUTCOMBINEWITHCALC()ORCLAMP()TOPREVENTEXTREMES.3.APPLYMEDAQUERIESATCOMMONBREAKPO

CSSで円形画像を作成する方法は? CSSで円形画像を作成する方法は? Sep 15, 2025 am 05:33 AM

ボーダーラジウスを使用してください:50%を使用して、幅と高さの画像を円に変え、オブジェクトフィットとアスペクト比を組み合わせて形状と作物を確保し、境界、影、その他のスタイルを追加して視覚効果を高めます。

See all articles