css3怎么实现页面滚动动画特效?

藏色散人
藏色散人原创
2018-08-06 14:32:174028浏览

本篇文章主要介绍css3实现页面滚动动画特效。那么我们首页要认识一下,什么是AOS?AOS 是一个用于在页面滚动的时候呈现元素动画的工具库,你可能会觉得它和 WOWJS 一样,虽然他们的效果类似,但是AOS是 CSS3 动画驱动的库,当你滚动页面的时候能让元素动起来,当页面滚回顶部的时候,元素能够回到前一个状态,如此达到循环动画的效果。aos.js是一款效果超赞的页面滚动元素动画jQuery动画库插件。希望本文介绍对大家有所帮助。

9a6fb61c4f09c8080d28028458f2a2e.png

css3实现页面滚动动画特效具体代码示例如下:

首先要在页面中引入aos.css文件,jquery和aos.js文件

<link rel="stylesheet" href="aos.css" />
<script src="jquery.min.js">
</script><script src="aos.js"></script>
<body aos-easing="ease-out-back" aos-duration="1000" aos-delay="0">
<header class="hero">
    <div class="hero-center">
        <h1 style="font-family:Microsoft YaHei">页面滚动元素动画插件-aos.js</h1>
        <h2 class="hero__text aos-init" aos="fade-up" aos-easing="ease" aos-delay="400">Animate On Scroll <span>Library</span></h2>
    </div>
   <span class="hero__scroll aos-init" aos="fade-up" aos-easing="ease" aos-delay="800">
      Scroll down <br>
      <i class="chevron bottom"></i>
   </span>
</header>

<section class="section section--code">
    <div class="container">
        <h2 class="section-title">Fade</h2>
        <div class="code code--small code--left aos-init" aos="fade-up">
            <pre><code class="html">&lt;div aos="fade-up"&gt;&lt;/div&gt;</code></pre>
        </div>
        <div class="code code--small code--right aos-init" aos="fade-down">
            <pre><code>&lt;div aos="fade-down"&gt;&lt;/div&gt;</code></pre>
        </div>
        <div class="code code--small code--left aos-init" aos="fade-right">
            <pre><code>&lt;div aos="fade-right"&gt;&lt;/div&gt;</code></pre>
        </div>
        <div class="code code--small code--right aos-init" aos="fade-left">
            <pre><code>&lt;div aos="fade-left"&gt;&lt;/div&gt;</code></pre>
        </div>
        <div class="code code--small code--left aos-init" aos="fade-up-right">
            <pre><code>&lt;div aos="fade-up-right"&gt;&lt;/div&gt;</code></pre>
        </div>
        <div class="code code--small code--right aos-init" aos="fade-up-left">
            <pre><code>&lt;div aos="fade-up-left"&gt;&lt;/div&gt;</code></pre>
        </div>
        <div class="code code--small code--left aos-init" aos="fade-down-right">
            <pre><code>&lt;div aos="fade-down-right"&gt;&lt;/div&gt;</code></pre>
        </div>
        <div class="code code--small code--right aos-init" aos="fade-down-left">
            <pre><code>&lt;div aos="fade-down-left"&gt;&lt;/div&gt;</code></pre>
        </div>
    </div>
</section>

<section class="section section--code">
    <div class="container">
        <h2 class="section-title">Flip</h2>
        <div class="code code--small code--left aos-init" aos="flip-left">
            <pre><code>&lt;div aos="flip-left"&gt;&lt;/div&gt;</code></pre>
        </div>
        <div class="code code--small code--right aos-init" aos="flip-right">
            <pre><code>&lt;div aos="flip-right"&gt;&lt;/div&gt;</code></pre>
        </div>
        <div class="code code--small code--left aos-init" aos="flip-up">
            <pre><code>&lt;div aos="flip-up"&gt;&lt;/div&gt;</code></pre>
        </div>
        <div class="code code--small code--right aos-init" aos="flip-down">
            <pre><code>&lt;div aos="flip-down"&gt;&lt;/div&gt;</code></pre>
        </div>
    </div>
</section>

<section class="section section--code">
    <div class="container">
        <h2 class="section-title">Zoom</h2>
        <div class="code code--small code--left aos-init" aos="zoom-in">
            <pre><code>&lt;div aos="zoom-in"&gt;&lt;/div&gt;</code></pre>
        </div>
        <div class="code code--small code--right aos-init" aos="zoom-in-up">
            <pre><code>&lt;div aos="zoom-in-up"&gt;&lt;/div&gt;</code></pre>
        </div>
        <div class="code code--small code--left aos-init" aos="zoom-in-down">
            <pre><code>&lt;div aos="zoom-in-down"&gt;&lt;/div&gt;</code></pre>
        </div>
        <div class="code code--small code--right aos-init" aos="zoom-in-left">
            <pre><code>&lt;div aos="zoom-in-left"&gt;&lt;/div&gt;</code></pre>
        </div>
        <div class="code code--small code--left aos-init" aos="zoom-in-right">
            <pre><code>&lt;div aos="zoom-in-right"&gt;&lt;/div&gt;</code></pre>
        </div>

        <div class="code code--small code--right aos-init" aos="zoom-out">
            <pre><code>&lt;div aos="zoom-out"&gt;&lt;/div&gt;</code></pre>
        </div>
        <div class="code code--small code--left aos-init" aos="zoom-out-up">
            <pre><code>&lt;div aos="zoom-out-up"&gt;&lt;/div&gt;</code></pre>
        </div>
        <div class="code code--small code--right aos-init" aos="zoom-out-down">
            <pre><code>&lt;div aos="zoom-out-down"&gt;&lt;/div&gt;</code></pre>
        </div>
        <div class="code code--small code--left aos-init" aos="zoom-out-right">
            <pre><code>&lt;div aos="zoom-out-right"&gt;&lt;/div&gt;</code></pre>
        </div>
        <div class="code code--small code--right aos-init" aos="zoom-out-left">
            <pre><code>&lt;div aos="zoom-out-left"&gt;&lt;/div&gt;</code></pre>
        </div>
    </div>
</section>

<section class="section section--code">
    <div class="container">
        <h2 class="section-title">Different settings examples</h2>
        <div class="code code--left aos-init" aos="fade-up" aos-duration="3000">
         <pre><code>&lt;div aos="fade-up"
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;aos-duration="3000"&gt;
&lt;/div&gt;</code></pre>
        </div>
        <div class="code code--right aos-init" aos="fade-down" aos-easing="linear" aos-duration="1500">
         <pre><code>&lt;div aos="fade-down"
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;aos-easing="linear"
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;aos-duration="1500"&gt;
&lt;/div&gt;</code></pre>
        </div>
        <div id="example-anchor" class="code code--left aos-init" aos="fade-right" aos-offset="300" aos-easing="ease-in-sine">
         <pre><code>&lt;div aos="fade-right"
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;aos-offset="300"
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;aos-easing="ease-in-sine"&gt;
&lt;/div&gt;</code></pre>
        </div>
        <div class="code code--right aos-init" aos="fade-left" aos-anchor="#example-anchor" aos-offset="500" aos-duration="500">
         <pre><code>&lt;div aos="fade-left"
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;aos-anchor="#example-anchor"
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;aos-offset="500"
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;aos-duration="500"&gt;
&lt;/div&gt;</code></pre>
        </div>
        <div class="code code--left aos-init" aos="fade-zoom-in" aos-easing="ease-in-back" aos-delay="300" aos-offset="0">
         <pre><code>&lt;div aos="fade-zoom-in"
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;aos-easing="ease-in-back"
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;aos-delay="300"
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;aos-offset="0"&gt;
&lt;/div&gt;</code></pre>
        </div>
        <div class="code code--right aos-init" aos="flip-left" aos-easing="ease-out-cubic" aos-duration="2000">
         <pre><code>&lt;div aos="flip-left"
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;aos-easing="ease-out-cubic"
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;aos-duration="2000"&gt;
&lt;/div&gt;</code></pre>
        </div>
    </div>
</section>

<section class="section section--code">
    <div class="container">
        <h2 class="section-title">Anchor placement</h2>

        <div class="code code--wider code--left aos-init" aos="fade-up" aos-anchor-placement="top-bottom">
         <pre><code>&lt;div aos="fade-up"
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;aos-anchor-placement="top-bottom"&gt;
&lt;/div&gt;</code></pre>
        </div>
        <div class="code code--wider code--right aos-init" aos="fade-up" aos-anchor-placement="center-bottom">
         <pre><code>&lt;div aos="fade-up"
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;aos-anchor-placement="center-bottom"&gt;
&lt;/div&gt;</code></pre>
        </div>
        <div class="code code--wider code--left aos-init" aos="fade-up" aos-anchor-placement="bottom-bottom">
         <pre><code>&lt;div aos="fade-up"
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;aos-anchor-placement="bottom-bottom"&gt;
&lt;/div&gt;</code></pre>
        </div>

        <div class="code code--wider code--right aos-init" aos="fade-up" aos-anchor-placement="top-center">
         <pre><code>&lt;div aos="fade-up"
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;aos-anchor-placement="top-center"&gt;
&lt;/div&gt;</code></pre>
        </div>
        <div class="code code--wider code--left aos-init" aos="fade-up" aos-anchor-placement="center-center">
         <pre><code>&lt;div aos="fade-up"
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;aos-anchor-placement="center-center"&gt;
&lt;/div&gt;</code></pre>
        </div>
        <div class="code code--wider code--right aos-init" aos="fade-up" aos-anchor-placement="bottom-center">
         <pre><code>&lt;div aos="fade-up"
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;aos-anchor-placement="bottom-center"&gt;
&lt;/div&gt;</code></pre>
        </div>

    </div>
</section>
<script type="text/javascript" src="js/jquery.1.7.1.min.js"></script>
<script type="text/javascript" src="dist/aos.js"></script>
<script type="text/javascript">
    AOS.init({
        easing: 'ease-out-back',
        duration: 1000
    });
</script>

<script>
    $('.hero__scroll').on('click', function(e) {
        $('html, body').animate({
            scrollTop: $(window).height()
        }, 1200);
    });
</script>
</body>

<style>
.hljs-comment {
  color: #898ea4; }
/* Atelier-Sulphurpool Red */
.hljs-variable, .hljs-tag, .hljs-regexp, .hljs-name, .ruby .hljs-constant, .xml .hljs-tag .hljs-title, .xml .hljs-pi, .xml .hljs-doctype, .html .hljs-doctype, .css .hljs-id, .css .hljs-class, .css .hljs-pseudo {
  color: deepskyblue; }

.hljs-attribute {
  color: lightskyblue; }

/* Atelier-Sulphurpool Orange */
.hljs-number, .hljs-preprocessor, .hljs-built_in, .hljs-literal, .hljs-params, .hljs-constant {
  color: #c76b29; }

/* Atelier-Sulphurpool Yellow */
.ruby .hljs-class .hljs-title, .css .hljs-rule .hljs-attribute {
  color: #c08b30; }

/* Atelier-Sulphurpool Green */
.hljs-string, .hljs-value, .hljs-inheritance, .hljs-header, .ruby .hljs-symbol, .xml .hljs-cdata {
  color: darkorange; }

/* Atelier-Sulphurpool Aqua */
.hljs-title, .css .hljs-hexcolor {
  color: #22a2c9; }

/* Atelier-Sulphurpool Blue */
.hljs-function, .python .hljs-decorator, .python .hljs-title, .ruby .hljs-function .hljs-title, .ruby .hljs-title .hljs-keyword, .perl .hljs-sub, .javascript .hljs-title, .coffeescript .hljs-title {
  color: #3d8fd1; }

/* Atelier-Sulphurpool Purple */
.hljs-keyword, .javascript .hljs-function {
  color: #6679cc; }

.hljs {
  display: block;
  overflow-x: auto;
  background: #202746;
  color: #979db4;
  padding: 0.5em;
  -webkit-text-size-adjust: none; }

.coffeescript .javascript, .javascript .xml, .tex .hljs-formula, .xml .javascript, .xml .vbscript, .xml .css, .xml .hljs-cdata {
  opacity: 0.5; }

body {
  font-family: Helvetica,Tahoma;
  margin: 0;
  padding: 0;
  overflow-x: hidden; }

*, *:before, *:after {
  box-sizing: border-box; }

a {
  text-decoration: none;
  color: #FF4081; }

/**
 * Backgrounds
 */
.backgrounds {
  width: 100%;
  height: 100%;
  position: fixed;
  -webkit-transform: translateZ(0);
          transform: translateZ(0);
  z-index: -1; }
  .backgrounds .background {
    width: 100%;
    height: 100%;
    background-size: cover;
    position: absolute;
    left: 0;
    top: 0;
    background-attachment: fixed; }

.overlay:after {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  top: 0;
  background: #3F51B5;
  opacity: 0.8; }

/**
 * Hero
 */
.hero {
  width: 100%;
  height: 100vh;
  position: relative;
  overflow: hidden;
  color: #FFF;
  text-align: center; }

.hero-center {
  width: 100%;
  position: absolute;
  top: 40%;
  left: 0;
  -webkit-transform: translate(0, -50%);
      -ms-transform: translate(0, -50%);
          transform: translate(0, -50%); }

.hero__logo {
  font-size: 60px;
  color: rgba(0, 0, 0, 0.5); }

.hero__text {
  font-weight: normal;
  opacity: 0.8; }

.hero__scroll {
  position: absolute;
  bottom: 60px;
  width: 200px;
  margin: auto;
  display: block;
  cursor: pointer;
  padding-bottom: 40px;
  left: 0;
  right: 0;
  text-transform: uppercase; }
  .hero__scroll .chevron {
    margin-top: 20px;
    display: block;
    -webkit-animation: pulse 2s infinite;
            animation: pulse 2s infinite;
    color: #FF4081; }

@-webkit-keyframes pulse {
  0% {
    -webkit-transform: translate(0, 0);
            transform: translate(0, 0); }

  50% {
    -webkit-transform: translate(0, 10px);
            transform: translate(0, 10px); }

  100% {
    -webkit-transform: translate(0, 0);
            transform: translate(0, 0); } }

@keyframes pulse {
  0% {
    -webkit-transform: translate(0, 0);
            transform: translate(0, 0); }

  50% {
    -webkit-transform: translate(0, 10px);
            transform: translate(0, 10px); }

  100% {
    -webkit-transform: translate(0, 0);
            transform: translate(0, 0); } }

.octocat {
  position: absolute;
  top: 20px;
  right: 20px;
  width: 80px; }
  .octocat img {
    display: block;
    width: 100%; }

.chevron::before {
  border-style: solid;
  border-width: 0.25em 0.25em 0 0;
  content: '';
  display: inline-block;
  height: 20px;
  position: relative;
  -webkit-transform: rotate(-45deg);
      -ms-transform: rotate(-45deg);
          transform: rotate(-45deg);
  vertical-align: top;
  width: 20px; }

.chevron.right:before {
  left: 0;
  -webkit-transform: rotate(45deg);
      -ms-transform: rotate(45deg);
          transform: rotate(45deg); }

.chevron.bottom:before {
  top: 0;
  -webkit-transform: rotate(135deg);
      -ms-transform: rotate(135deg);
          transform: rotate(135deg); }

.chevron.left:before {
  left: 0.25em;
  -webkit-transform: rotate(-135deg);
      -ms-transform: rotate(-135deg);
          transform: rotate(-135deg); }

/**
 * Sections
 */
.section {
  width: 100%;
  float: left; }

.section-title {
  text-align: center;
  color: #FFF;
  text-transform: uppercase;
  font-weight: normal;
  padding: 30px 0;
  border-top: 1px solid rgba(255, 255, 255, 0.3);
  border-bottom: 1px solid rgba(255, 255, 255, 0.3);
  width: 100%;
  clear: both; }

.container {
  width: 970px;
  margin: 0 auto;
  max-width: 90%;
  -webkit-transform: translateZ(1000px);
          transform: translateZ(1000px); }

.code {
  width: 40%;
  clear: both;
  height: 200px;
  background: #FFF;
  border-radius: 2px;
  margin: 12vh 0;
  padding: 10px; }
  .code pre, .code code {
   color:#333;
    height: 100%;
    margin: 0; }
  .code code {
    padding: 20px 0 0 20px; }
  .code--small code {
    padding-top: 75px; }
  .code--left {
    float: left; }
  .code--right {
    float: right; }
  .code--wider {
    width: 60%; }
    .code--wider code {
      padding-top: 60px; }

.section--more {
  color: #FFF;
  background: #0E0F34;
  padding: 20px 0 40px 0; }

.section-group {
  border-bottom: 1px solid rgba(255, 255, 255, 0.2);
  padding: 30px 0; }
  .section-group h3 {
    margin: 0 0 20px 0;
    text-transform: uppercase; }
  .section-group h4 {
    font-weight: normal;
    color: rgba(255, 255, 255, 0.6); }
  .section-group code {
    padding: 20px;
    font-size: 1.2em; }
  .section-group .btn {
    margin-right: 20px; }

.btn {
  padding: 10px 20px;
  border: 1px solid #FF4081;
  display: inline-block;
  position: relative;
  -webkit-transition: all 0.2s ease;
          transition: all 0.2s ease;
  overflow: hidden; }
  .btn:before {
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    width: 1px;
    top: 0;
    bottom: 0;
    margin: auto;
    background: #FF4081;
    -webkit-transition: -webkit-transform 0.2s ease;
            transition: transform 0.2s ease;
    z-index: 0;
    opacity: 0; }
  .btn span {
    position: relative;
    z-index: 5; }
  .btn:hover {
    color: #FFF; }
    .btn:hover:before {
      -webkit-transform: scaleX(200);
          -ms-transform: scaleX(200);
              transform: scaleX(200);
      opacity: 1; }
</style>

以上就是css3怎么实现页面滚动动画特效?的详细内容,更多请关注php中文网其它相关文章!

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。