ホームページ ウェブフロントエンド CSSチュートリアル CSS3+fullPage.js は全画面スクロール効果コードを実装します

CSS3+fullPage.js は全画面スクロール効果コードを実装します

May 08, 2017 am 11:35 AM
css3 全画面スクロール

この記事では、全画面スクロール効果を実現するための fullPage.js と CSS3 について詳しく紹介します。興味のある方は参考にしてください。

まず、fullpage について説明します。 jquery このプラグインは、マウスを上下にスライドさせると、自動的に前の画面または次の画面に切り替わることを実現するために使用されます。これは、確かにいくつかのハイエンドエフェクトを作成するための優れたプラグインです。まず、基本的なレンダリングを示します。

コンテンツは全部で4画面あります


CSS3+fullPage.js は全画面スクロール効果コードを実装します

CSS3+fullPage.js は全画面スクロール効果コードを実装します

CSS3+fullPage.js は全画面スクロール効果コードを実装します

CSS3+fullPage.js は全画面スクロール効果コードを実装します

マウスを上下にスライドさせるたびに画面全体が切り替わります。

最初の画面は1枚の写真を使用し、他の3つの画面は左側の3枚の写真と右側の2枚の写真で構成されています。

これら 3 つの画面の左側の写真はさまざまな方法で拡大されるため、よりクールな効果があります。

ページが表示されると、2番目の画面の3つの写真が下から上に正しい位置に表示されます。
3番目の画面の3つの画像は、ページが表示されるときに左から右に正しい位置に拡大されます。
4番目の画面の3つの写真は、ページが表示されたときに中央から両側に正しい位置に拡大されます。

ステップ 1: Fullpage には CSS と JS が含まれており、それらをインポートします。

<script type="text/javascript" src = "./jQuery/jquery-3.2.0.min.js"></script>
<link rel="stylesheet" type="text/css" href="./fullpage/jquery.fullPage.css">
<script type="text/javascript" src = "./fullpage/jquery.fullPage.min.js"></script>
ログイン後にコピー

2 番目のステップ: HTML で適切な要素を作成する:

<p class = "main">

  <p class="section page1">
    <img  src="/static/imghw/default1.png"  data-src="./images/page1.png"  class="lazy"   alt="CSS3+fullPage.js は全画面スクロール効果コードを実装します" >
  </p>
  <p class="section page2">
    <p class = "list">
      <img  src = "./images/page2_1.png" alt="CSS3+fullPage.js は全画面スクロール効果コードを実装します" >
      <img  src = "./images/page2_2.png" alt="CSS3+fullPage.js は全画面スクロール効果コードを実装します" >
      <img  src = "./images/page2_3.png" alt="CSS3+fullPage.js は全画面スクロール効果コードを実装します" >
    </p>
      <img  class = "text" src = "./images/page2_4.png" alt="CSS3+fullPage.js は全画面スクロール効果コードを実装します" >
      <img  class = "bg" src = "./images/page2_5.png" alt="CSS3+fullPage.js は全画面スクロール効果コードを実装します" >

  </p>
   <p class="section page3">
    <p class = "list">
      <img  src = "./images/page3_1.png" alt="CSS3+fullPage.js は全画面スクロール効果コードを実装します" >
      <img  src = "./images/page3_2.png" alt="CSS3+fullPage.js は全画面スクロール効果コードを実装します" >
      <img  src = "./images/page3_3.png" alt="CSS3+fullPage.js は全画面スクロール効果コードを実装します" >
    </p>
    <img  class = "text" src = "./images/page3_4.png" alt="CSS3+fullPage.js は全画面スクロール効果コードを実装します" >
      <img  class = "bg" src = "./images/page3_5.png" alt="CSS3+fullPage.js は全画面スクロール効果コードを実装します" >
  </p>

    <p class="section page4">
    <p class = "list">
      <img  src = "./images/page4_1.png" alt="CSS3+fullPage.js は全画面スクロール効果コードを実装します" >
      <img  src = "./images/page4_2.png" alt="CSS3+fullPage.js は全画面スクロール効果コードを実装します" >
      <img  src = "./images/page4_3.png" alt="CSS3+fullPage.js は全画面スクロール効果コードを実装します" >
    </p>
      <img  class = "text" src = "./images/page4_4.png" alt="CSS3+fullPage.js は全画面スクロール効果コードを実装します" >
      <img  class = "bg" src = "./images/page4_5.png" alt="CSS3+fullPage.js は全画面スクロール効果コードを実装します" >
  </p>

</p>
 <p id = "audioBox">
    <audio id = "audio" autoplay loop src= "./music/music.mp3"></audio>
  </p>
ログイン後にコピー

には、4 つの画面のコンテンツと、音楽を再生するためのオーディオ要素が含まれています。

ステップ 3: fullpage の js を使用して各画面の背景色を実装し、js を使用して音楽を一時停止します

//1.fullpage,由于有四屏,其颜色也一样
    $(".main").fullpage({
sectionsColor: [&#39;#1bbc9b&#39;,&#39;#1bbc9b&#39;,&#39;#1bbc9b&#39;,&#39;#1bbc9b&#39;]
    });

    //2.控制音频的播放
    var audioBox = document.getElementById(&#39;audioBox&#39;);
    var audio = document.getElementById("audio");

    audioBox.onclick = function(){

    if(audio.paused){
      audio.play();
    }
    else
    {
      audio.pause();
    }
  }
ログイン後にコピー

ステップ 4: CSS を使用してレイアウト:

<style type="text/css">
  *{
    margin: 0;
    padding:0;
  }

 //设置背景音乐的图标
  #audioBox{
    width: 45px;
    height: 45px;
    position: absolute;
    background: url(./images/music_on.png) no-repeat center;
    border-radius: 22px;
    top: 5%;
    right: 3%;
    cursor: pointer;
  }

  //让每屏超出的都自动隐藏
  .section{
    overflow: hidden;
  }

  /*设置第一屏的图片,因为第一屏也只有一个图片*/
  .page1 img{
    width: 50%;
    margin-left: 30%;
  }

 /*从第二屏开始都包含一个class=list的元素块,设置其距离左侧的距离*/
  [class *= "page"] .list{
    margin-left: 5%;
  }

 /*让左边的图片的宽度都为240px*/
  [class *= "page"] .list img{
    width: 240px;

  }

  /*利用属性选择器,选出所有页的背景图片*/
  [class *= "page"] .bg{
    position: absolute;
    bottom: 5%;
    right: 5%;
    width: 30%;
  }

  /*利用属性选择器,选择出所有页的文字图片*/
  [class *= "page"] .text{
    position: absolute;
    top: 10%;
    right: 5%;
  }
ログイン後にコピー

4 番目のステップを通過した後の基本的な効果は完成しましたが、最後の点は、4画面の絵に

アニメーション効果が実装されていないことです。

ステップ 5: アニメーション効果を実現します。

1. 現在どの画面にスクロールしているかを確認する方法は?


fullpage は現在のページにアクティブなクラスを追加するため、そのクラスを使用して、現在のページでアニメーションがいつトリガーされるかを決定できます。


2. 最初の画面のアニメーションを実現します


最初の画面は主に画像のフェードイン効果です。

アイデア: 不透明度属性を変更して透明度を変更し、トランジションと組み合わせてフェードイン効果を実現します。

.page1 img{
    opacity: 0;  /*初始状态为全透明*/
    /*加上供应商前缀,持续时间为1.5s*/
    -moz-transition: opacity 1.5s;
    -webkit-transition: opacity 1.5s;
  }

/*当第一页显示的时候触发,当第一页时就会自动加上active类*/
  .page1.active img{
    opacity: 1;
  }
ログイン後にコピー

3. 2 番目の画面のアニメーションを実装します。ページが表示されたら、ウィンドウを下から上にスライドさせます。 中心的なアイデア: trans
for
m:translateYとtransitionを使用して実装します。

transitionは属性値の変更を検出します

translateY translation
4. 3番目の画面のアニメーションを実現します

画面が左右に移動する場合、水平方向を制御するためにtranslateXが必要です。まず、初期状態では一番左に3枚の絵が重なるようにして、2番目の画面の例に倣って順番に広げていきます。

この画面上の2つの画像の初期位置が大きく異なるので、一番左の画像に重ね合わせて、これら2つの画像にそれぞれtranslateXを設定します

/*动画的完成时间为1s,初始位置三个图片都处于向下移动到1000像素,即移出屏幕外。*/
  .page2 .list img{
    transition:1s;
    transform: translateY(1000px);
  }

 /*当第二屏触发时,图片回到原始位置*/
  .page2.active .list img{
    transform:translateY(0px);
  }

/*利用结构化伪类找到每一个图片并设置延时,为了使动画更灵活*/
  .page2 .list img:nth-child(1){
    transition-delay: 0.5s;
  }
  .page2 .list img:nth-child(2){
    transition-delay: 0.8s;
  }
  .page2 .list img:nth-child(3){
    transition-delay: 1s;
  }
ログイン後にコピー

5. 5番目の画面のアニメーションを設定します。

5番目の画面のアニメーションは、左側の3枚の絵が最初に中央の絵に重なって、トリガーされると元の位置に戻るというものです。

① 上記の考え方に従って、tanslateX を使用することで実現できます。

.page .list img{ 
/设置动画持续时间为1s,动画开始时延迟0.5s/ 
transition: 1s 0.5s; 
}
ログイン後にコピー
② css3 のアニメーションプロパティを使用することもできます:
key
frames

.page .list img:nth-child(2){ 
/向左移动了250px刚好与第一个重叠/ 
transform:translateX(-250px); 
}

.page .list img:nth-child(3){ 
/向左移动了500px刚好与第一个重叠/ 
transform:translateX(-500px); 
}

/设置触发时的动画,让所有的img归位/ 
.page3.active .list img{ 
transform:translateX(0px); 
}
ログイン後にコピー

キーフレームのパラメータについては、マニュアルを確認して慣れてください。

上記のコードで、かっこいい全画面スクロールページが完成しました!

添付されたソースコード:

.page4 .list img{
    transition: 1s 0.5s;
  }
  /*设置第一个和第三个的初始位置处于中间的位置上*/
  .page4 .list img:nth-child(1){
    transform:translateX(250px);
  }
  .page4 .list img:nth-child(3){
    transform:translateX(-250px);
  }
 /*触发时归位*/
  .page4.active .list img{
    transform:translateX(0px);
  }
ログイン後にコピー

【関連推奨事項】

1.

無料CSSオンラインビデオチュートリアル

2.

php.cn Dugu Jiijian (2)-cssビデオチュートリアル

以上がCSS3+fullPage.js は全画面スクロール効果コードを実装しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、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衣類リムーバー

Video Face Swap

Video Face Swap

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

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

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

純粋な CSS3 で波の効果を実現するにはどうすればよいですか? (コード例) 純粋な CSS3 で波の効果を実現するにはどうすればよいですか? (コード例) Jun 28, 2022 pm 01:39 PM

純粋な CSS3 で波の効果を実現するにはどうすればよいですか?この記事ではSVGとCSSアニメーションを使って波のエフェクトを作成する方法をご紹介しますので、お役に立てれば幸いです。

CSSを上手に使って色々な変わった形のボタンを実現(コード付き) CSSを上手に使って色々な変わった形のボタンを実現(コード付き) Jul 19, 2022 am 11:28 AM

この記事では、頻繁に登場する様々な奇妙な形のボタンをCSSを使って簡単に実現する方法を紹介しますので、ぜひ参考にしてください。

スペースを取らずにCSS内の要素を非表示にする方法 スペースを取らずにCSS内の要素を非表示にする方法 Jun 01, 2022 pm 07:15 PM

2 つの方法: 1. display 属性を使用して、要素に「display:none;」スタイルを追加するだけです。 2. Position 属性と top 属性を使用して、要素の絶対位置を設定し、要素を非表示にします。要素に「position:absolute;top:-9999px;」スタイルを追加するだけです。

CSS3でレースボーダーを実装する方法 CSS3でレースボーダーを実装する方法 Sep 16, 2022 pm 07:11 PM

CSS では、border-image 属性を使用してレースの境界線を実現できます。 border-image 属性では、画像を使用して境界線を作成できます。つまり、境界線に背景画像を追加できます。背景画像をレース スタイルとして指定するだけで済みます。構文「border-image: url (画像パス) は、内側への画像境界線の幅。開始を繰り返すかどうか;"。

CSS3でマウスクリックで画像を拡大する方法 CSS3でマウスクリックで画像を拡大する方法 Apr 25, 2022 pm 04:52 PM

実装方法: 1. ":active" セレクターを使用して、画像上のマウス クリックの状態を選択します; 2. 変換属性とscale() 関数を使用して、画像の拡大効果を実現します。構文 "img:active {transform : スケール(x 軸倍率、y 軸倍率);}"。

テキストカルーセルと画像カルーセルも純粋な CSS を使用して実現できることがわかりました。 テキストカルーセルと画像カルーセルも純粋な CSS を使用して実現できることがわかりました。 Jun 10, 2022 pm 01:00 PM

テキストカルーセルと画像カルーセルを作成するにはどうすればよいですか?皆さんが最初に考えるのはjsを使うかどうかですが、実はテキストカルーセルや画像カルーセルも純粋なCSSでも実現できますので実装方法を見ていきましょう。

CSS3でアニメーションの回転速度を設定する方法 CSS3でアニメーションの回転速度を設定する方法 Apr 28, 2022 pm 04:32 PM

CSS3 では、「animation-timing-function」属性を使用してアニメーションの回転速度を設定できます。この属性は、アニメーションがサイクルを完了する方法を指定し、アニメーションの速度曲線を設定するために使用されます。構文は「element {アニメーションタイミング関数: 速度属性値;}"。

css3のアニメーション効果に変形はありますか? css3のアニメーション効果に変形はありますか? Apr 28, 2022 pm 02:20 PM

css3 のアニメーション効果には変形があり、「animation: アニメーション属性 @keyframes ..{..{transform: 変換属性}}」を使用して変形アニメーション効果を実現できます。アニメーション属性はアニメーション スタイルを設定するために使用され、変形スタイルを設定するには、transform 属性を使用します。

See all articles