直接为大家介绍制作过程,希望大家可以喜欢。
超文本标记语言结构
该页面切换特效的超文本标记语言结构使用一个主要的元素来作为页面的包裹元素,div。光盘覆盖层用于制作页面切换时的遮罩层,div。光盘加载栏是进行创建交互式、快速动态网页应用的网页开发技术加载时的装货进度条。
main div class=' CD-index CD-main-content ' div h1页面过渡/h1!-您的内容在这里-/div/div/main div class=' CD-cover-layer '/div!-这是覆盖层- div class='cd-loading-bar'/div!这是加载栏样式
该页面切换特效中使用身体3360:之前和身体33600 .3:360伪元素在页面切换过程中创建两个遮罩层来遮住页面内容。它们的定位是固定定位,高度等于50vh,宽度为100%。默认情况下,使用半铸钢钢性铸铁(Cast Semi-Steel)转换属性将它们隐藏起来(翻译(-100%)/翻译(100%)).当用户切换页面的时候,这些元素被移动回视口当中(通过在身体元素上添加。换页类).下面的图片演示了这个过程:
页面切换特效
body:after,body:before { /*这是动画触发后覆盖内容的2个半块*/高度336050vh;宽度: 100%;位置:固定;左: 0;{ top : } 0之前的} body : before transform : translateY(-100%);} body:after在{底部: }之后0;transform : translateY(100%);}身体。正文后换页:在{ transform : translateY(0)之前,page-is-change :} 页面切换时,页面内容的淡入淡出效果是通过改变div。光盘覆盖层的透明度实现的。它覆盖了光盘主内容元素,并具有相同的背景色,然后在身体被添加。换页类的时候,将透明度从0修改为1。装货进度条使用cd .加载杆:前伪元素来制作。默认它被缩小(scaleX(0))和变换-原点:左中心。当页面切换开始时它被使用scaleX(1)放大会原来的尺寸。激光唱片加载栏{ /*这是加载栏-从一页切换到下一页时可见*/position:固定;高度: 2px宽度: 90%;}.{/*之前的CD加载条:这是装载杆内部的进度条*/位置:绝对;左: 0;top : 0;高度: 100%;宽度: 100%;transform : Scalex(0);转换-原始:左中;}.换页{ transform: scaleX(1)之前的激光唱片加载bar:before}特效中平滑的过渡效果使用半铸钢钢性铸铁(Cast Semi-Steel)过渡来实现。每一个动画元素都被添加了不同的转换延迟,以实现不同的元素动画顺序JAVASCRIPT。
该页面切换特效中在链接上使用数据类型="页面转换"属性,用于触发页面切换事件。当插件检测到用户点击事件,更改页面()方法将被执行。
$(“主”).on('click ','[data-type='page-transition']'),function(event){ event。prevent default();//检测选择了哪个页面var newPage=$(this).attr(' href ');//如果页面没有动画-触发动画如果(!正在成像)改变页面(新页面,真);});这个方法会触发页面切换动画,并通过loadNewContent()方法加载新内容。
函数changePage(url,bool){ Isimating=true;//触发页面动画$(“正文”).addCLaSS(' page-is-changing ');//.loadNewContent(url,bool);//.} 当新的内容被加载后,会替代原来主要的元素中的内容。换页类被从身体中移除,新加载的内容会被添加到窗口。历史中(使用pushState()方法)。
函数loadNewContent(url,bool){ var newSectionName=' CD-' URL。替换(' .html ',''),节=$(' div class=' CD-main-content ' newSectionName ' '/div ');section.load(url).cd-main-content * ',函数(事件){ //加载新内容并用新内容$(“主”)替换主内容html(节);//.$(“正文”).removeClass(“”正在更改页面');//.if(url!=窗口。位置){//将新页面添加到窗户。历史窗口。历史。pushstate({ path : URL },'',URL);} });} 为了在用户点击浏览器的回退按钮时触发相同的页面切换动画效果,插件中监听popstate事件,并在它触发时执行changePage()函数。
$(窗口)。on('popstate ',function(){ var new page array=location。路径名。拆分('/'),//这是要加载的页面的URL新页面=新页面数组[新页面数组。长度-1];if(!变更页面(新页面);});