Advertisement

html 网页跳转动画,CSS3+js实现web页面切换动画

阅读量:

首先是效果展示图!
0818b9ca8b590ca3270a3433284dd417.png

一共有两个页面~代码方面差别并不是很大。所以我只讲解其中一个页面。

上代码。

index.html

点击切换页面

css_index.css

*{

padding: 0;

margin: 0;

}

#all{

position: absolute;

left: -100vw;

transition:left 1s;

-moz-transition:left 1s;/* Firefox 4 */

-webkit-transition:left 1s; /* Safari and Chrome */

-o-transition:left 1s; /* Opera */

}

js_index.js

$(document).ready(function(){

window.setTimeout('goin()',1);

$('#change').click(function(){

goout();

window.setInterval("window.location.href = "1.html"",1000);

})

})

function goin(){

$('#all').css({left:"0vw"})

}

function goout(){

$('#all').css({left:"-100vw"})

}

页面切换的动画效果实现的核心之处在于CSS3提供的动画过渡效果

transition:left 1s;

-moz-transition:left 1s;/* Firefox 4 */

-webkit-transition:left 1s; /* Safari and Chrome */

-o-transition:left 1s; /* Opera */

没错!transition就是实现的关键~~~!

至于-moz- -wekit- -o-这些前缀是针对不同浏览器用来适配的~

闲来讲解一下transition的用法吧

transition:css time;

css=代表赋予动画的CSS样式,time=代表动画的过度时间

比如transition:width 1s;

意思当宽度发生变化的时候,会有1s的时间过度。

比如宽度10px变成100px,在上述css的修饰下,10px并不会瞬间变成100px;会在1s内从10px逐渐变成100px;示意图如下
0818b9ca8b590ca3270a3433284dd417.png

再来谈谈JS,window.setTimeout(a,b)

a=要执行的函数或者语句

b=延迟的时间

注意!!!!setTimeout中的a是在延时b后只执行一次

而setInterval是每隔b执行一次a!

为什么我们要把页面的进入动画延时1ms执行页面的goin动画呢?

因为如果不延迟1ms是看不见动画的,JS会在预加载的时间就把你函数里的内容执行了,也就是说你改变的left或者top值会直接跳过transition,并不会产生对应的效果~

那么为什么页面的切出动画可以直接用gout函数呢,因为那是在页面加载完成以后触发了点击事件以后才会执行的函数,这个时候页面已经加载完成了,就不会跳过transition~

那么为什么在goout中要延时1s执行window.location.href呢?

因为我们在css样式表中设置了动画的时间为1s。如果直接执行window.location.href的话,就看不见页面切换动画了,会直接跳转到指定的页面。

如果延迟时间小于1s会导致动画没有执行完全就切换的下一个页面,可能会影响美观~

当然你有特殊需求也可以自行抉择~~~!

下面附上打包后可以直接运行代码的下载地址和transition参考~

打包代码:

transiton参考:

全部评论 (0)

还没有任何评论哟~