这篇文章主要介绍了关于jQuery实现切换页面过渡动画效果,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下

这是一款效果非常酷的jQuery和CSS3通过AJAX调用切换页面过渡动画特效插件。该页面切换特效使用AJAX来动态加载链接内容,在页面加载的时候,使用CSS3来制作非常酷的页面过渡动画效果。插件中使用pushState方法来管理浏览器的浏览历史,需要的朋友可以参考下

直接为大家介绍制作过程,希望大家可以喜欢。

HTML结构

该页面切换特效的HTML结构使用一个元素来作为页面的包裹元素,p.cd-cover-layer用于制作页面切换时的遮罩层,p.cd-loading-bar是进行ajax加载时的loading进度条。

Page Transition

CSS样式

该页面切换特效中使用body::before和body::after伪元素在页面切换过程中创建两个遮罩层来遮住页面内容。它们的定位是固定定位,高度等于50vh,宽度为100%。默认情况下,使用CSS transform属性将它们隐藏起来(translateY(-100%)/translateY(100%))。当用户切换页面的时候,这些元素被移动回视口当中(通过在

元素上添加.page-is-changing class)。

下面的图片演示了这个过程:

页面切换特效

body::after, body::before {

/* these are the 2 half blocks which cover the content once the animation is triggered */

height: 50vh;

width: 100%;

position: fixed;

left: 0;

}

body::before {

top: 0;

transform: translateY(-100%);

}

body::after {

bottom: 0;

transform: translateY(100%);

}

body.page-is-changing::after, body.page-is-changing::before {

transform: translateY(0);

}

页面切换时,页面内容的淡入淡出效果是通过改变p.cd-cover-layer的透明度实现的。它覆盖了.cd-main-content元素,并具有相同的背景色,然后在

被添加.page-is-changing class的时候,将透明度从0修改为1。

Loading进度条使用.cd-loading-bar::before伪元素来制作。默认它被缩小(scaleX(0))和transform-origin: left center。当页面切换开始时它被使用scaleX(1)放大会原来的尺寸。

.cd-loading-bar {

/* this is the loading bar - visible while switching from one page to the following one */

position: fixed;

height: 2px;

width: 90%;

}

.cd-loading-bar::before {

/* this is the progress bar inside the loading bar */

position: absolute;

left: 0;

top: 0;

height: 100%;

width: 100%;

transform: scaleX(0);

transform-origin: left center;

}

.page-is-changing .cd-loading-bar::before {

transform: scaleX(1);

}

特效中平滑的过渡效果使用CSS Transitions来实现。每一个动画元素都被添加了不同的transition-delay,以实现不同的元素动画顺序。

JAVASCRIPT

该页面切换特效中在链接上使用data-type="page-transition"属性,用于触发页面切换事件。当插件检测到用户点击事件,changePage()方法将被执行。

$('main').on('click', '[data-type="page-transition"]', function(event){

event.preventDefault();

//detect which page has been selected

var newPage = $(this).attr('href');

//if the page is not animating - trigger animation

if( !isAnimating ) changePage(newPage, true);

});

这个方法会触发页面切换动画,并通过loadNewContent()方法加载新内容。

function changePage(url, bool) {

isAnimating = true;

// trigger page animation

$('body').addClass('page-is-changing');

//...

loadNewContent(url, bool);

//...

}

当新的内容被加载后,会替代原来元素中的内容。.page-is-changing class被从body中移除,新加载的内容会被添加到window.history中(使用pushState()方法)。

function loadNewContent(url, bool) {

var newSectionName = 'cd-'+url.replace('.html', ''),

section = $('

section.load(url+' .cd-main-content > *', function(event){

// load new content and replace content with the new one

$('main').html(section);

//...

$('body').removeClass('page-is-changing');

//...

if(url != window.location){

//add the new page to the window.history

window.history.pushState({path: url},'',url);

}

});

}

为了在用户点击浏览器的回退按钮时触发相同的页面切换动画效果,插件中监听popstate事件,并在它触发时执行changePage()函数。

$(window).on('popstate', function() {

var newPageArray = location.pathname.split('/'),

//this is the url of the page to be loaded

newPage = newPageArray[newPageArray.length - 1];

if( !isAnimating ) changePage(newPage);

});

以上就是本文的全部内容,希望对大家的学习有所帮助,更多相关内容请关注PHP中文网!

相关推荐:

js html页面切换效果,jQuery实现切换页面过渡动画效果相关推荐

  1. html5文字飞入插件,jquery使用CSS3实现文字动画效果插件Textillate.js

    jquery使用CSS3实现文字动画效果插件Textillate.js Textillate是一款基于CSS3动画效果的 JavaScript 库,您可非常轻轻松地把这些动画效果应该于网页中的任何文字 ...

  2. JQuery中淡出和淡入动画效果

    开发工具与关键技术: MVC 班级:18级(4)班 撰写时间:2019.5.20 JQuery中淡出动画fadeOut让元素在页面不可见,常用的办法就是通过设置样式的display:none.除此之外 ...

  3. ppt模板页面过渡动画效果怎么制作?

    一个好看的ppt模板,动画效果少不了,ppt模板制作软件也带了不少动画效果,ppt家园下面就来介绍一下ppt模板页面过渡动画效果怎么制作? 插入-图片-将两张图片素材导入-一张铺满PPT页面-一张放在 ...

  4. jQuery 制作交通信号灯红绿灯动画效果

    jQuery 制作交通信号灯红绿灯动画效果 HTML <p>好好学习 天天向上</p><div class="light"><div cl ...

  5. react过渡动画效果的实现,react-transition-group

    本文介绍react相关的过渡动画效果的实现 有点类似vue的transition组件,主要用于组件mount和unmount之前切换时应用动画效果 安装 cnpm install react-tran ...

  6. Flutter ColorTween实现颜色过渡动画效果

    志在巅峰的攀登者,不会陶醉在沿途的某个脚印之中,在码农的世界里,优美的应用体验,来源于程序员对细节的处理以及自我要求的境界,年轻人也是忙忙碌碌的码农中一员,每天.每周,都会留下一些脚印,就是这些创作的 ...

  7. Vue入门之animate过渡动画效果

    简介: transition方法的使用 transition内置方法 transition-group animate库实现过渡动画 `<!DOCTYPE html>` `<html ...

  8. html 网页跳转动画效果,jQuery实现切换页面过渡动画效果_jquery

    直接为大家介绍制作过程,希望大家可以喜欢. HTML结构 该页面切换特效的HTML结构使用一个元素来作为页面的包裹元素,div.cd-cover-layer用于制作页面切换时的遮罩层,div.cd-l ...

  9. html设置樱花飘落效果,jQuery实现web页面樱花坠落的特效

    源码地址 开发原因 上课看到一位女生桌面背景是一课樱花树,顿时产生了一个让樱花可以在web页面飞舞的想法,借此把这个插件献送给那位女同学: 开发过焦点图,轮转图,瀑布流等应用插件,但是这类型插件还是第 ...

最新文章

  1. python写一个文件下载器_Python3使用TCP编写一个简易的文件下载器
  2. java获取jndi密码_用JAVA代码获取Weblogic配置的JNDI 数据源连接
  3. Ecplise中tomcat上运行HTML文件自动加载
  4. [R语言画图]气泡图symbols
  5. 在Win8中创建热点,共享网络
  6. 为什么说“人生苦短,我用Python”?为什么Python这么火?
  7. 【教程】写CSDN博客时 调整图片大小,图片居中
  8. 摆摊真的一个月能上万嘛
  9. 佳博LabelShop模板文件转成佳博打印机指令软件
  10. 利用U盘制作虚拟软驱加载raid驱动
  11. DNS协议及Bind应用
  12. tensorflow 版本列表_TensorFlow 版本兼容性
  13. gradle系列-1-gradle -x test clean build
  14. OSChina 周五乱弹 ——程序猿到底算不算歧视
  15. 基于vue 2.x的移动端网页弹窗插件wc-messagebox(支持Alert,Confirm,Toast,Loading)
  16. QT中将文件夹内文件名称显示到tableview,对显示的文件名双击直接打开文件
  17. UV材质图片合并后UV坐标的变换
  18. openssl加密与模拟CA签证和颁发
  19. 【亲测】如何最优化的下载大量比较旧的资源
  20. 好白菜和猪的不解之缘

热门文章

  1. 计算机网络常见面试问题和解析
  2. Day of Week
  3. Stata:边际效应分析
  4. 实现条码枪的无焦点扫码
  5. linux显卡可以sli吗,驱动设置 开启SLI功能_显卡_显卡技术应用-中关村在线
  6. GPS nmealib学习笔记 .
  7. CF1633D Make Them Equal 题解
  8. AI学习之路(19)TensorFlow里的矩阵乘法
  9. 2.1 Converting Celsius to Fahrenheit
  10. 科软分数线狂降53分!凡是隔壁却。。。