鼠标滑动到当前页面触发动画效果

近年来,关于鼠标滑动到当前页面从而触发动画效果十分的火热,今天我们就来学习下这一效果。
一、首先,我们先来了解一下这一效果实现的原理

   1.一个网页离不开基本的布局,所以首先就是要先用html将所需要的结构布局出来(长页风格)。
   2.另外,这一效果的实现主要是结合css3的自定义动画(animation)来实现的。所以,这一阶段,就需要将你所想要实现的动画效果用css3样式实现出来。
   3.最后,这也是最重要的一步,就是利用javascript实现对相对应页面动画的触发。

二、接下来我们就来正式的学习一下这一效果

1.首先是利用html将最基本的长页布局出来(在这里作为案例,我就实现了两个页面,其中第二个页面就是我们所需要触发动画的页面),静态页面实现效果如下图所示(粉色页面中的图片就是我们要实现的动画对象):

鼠标滑动到当前页面触发动画效果_第1张图片

实现代码如下:

<body>
<div class="box">
    <div class="two">div>
    <div class="one">
        <h2><img class="img01" src="img/4.jpg" />h2>
    div>
div>
body>

2.接下来就是对样式的设置(在这里我们设置当第二页面距离顶部多少PX之后触发的动画效果样式<这里我们设置图片在被触发动画的时候放大并旋转了120度>)实现代码如下:

<style>
    * { margin:0; padding:0; }//reset css
    .box { width:100%; height:1500px; background:gray; } 
    .two { width:100%; height:500px; background:orange; }
    .one { width:100%; height:500px; background:pink; position:relative; }
    .one h2 { width:100%; }
    .one h2 img{ width:200px; height:200px; border-radius:50%;margin:0 0 0 -100px;left:50%; top:100px; display:block; position:absolute;}
    .animated { animation-duration:3s;-webkit-animation-duration:3s; -webkit-animation-fill-mode: both;animation-fill-mode: both; }
    .xuanzhuan { animation-name:xuanzhuan; -webkit-animation-name:xuanzhuan;}
    @keyframes xuanzhuan { 
        0% { opacity:0; transform:rotate(120deg);-webkit-transform:rotate(120deg);}
        50% { opacity:0.5; transform:scale(1.5,1.5);-webkit-transform:scale(1.5,1.5);}
        100% { opacity:1; transform: scale(1,1);-webkit-transform:scale(1,1);}
    }
    @-webkit-keyframes xuanzhuan { 
        0% { opacity:0; transform:rotate(120deg);-webkit-transform:rotate(120deg);}
        50% { opacity:0.5; transform:scale(1.5,1.5);-webkit-transform:scale(1.5,1.5);}
        100% { opacity:1; transform:scale(1,1);-webkit-transform:scale(1,1);}
    }

style>
3.最后,就是利用javascript来触发动画效果的执行(此处我们设置当对象距离顶部300px的时候动画被触发)。

JS代码实现如下:


                    
                    

你可能感兴趣的:(css3,jQuery学习)