酷! 不同风格页面布局幻灯片特效js实现


Posted in Javascript onFebruary 19, 2021

这是一款效果非常炫酷的不同风格页面布局幻灯片特效。该特效中,通过前后导航按钮来切换幻灯片,每个幻灯片中的图片均为不同的布局效果。

酷! 不同风格页面布局幻灯片特效js实现

该幻灯片特效使用anime.js来制作幻灯片的动画特效,并使用很多CSS3属性,需要最新版本的现代浏览器才能看到效果。对于IE浏览器,前面几种效果可以在IE11及以上的浏览器看到效果,最后一种效果由于IE浏览器不支持SVG clip-path属性,所以是看不到效果的。

使用方法

HTML结构

该幻灯片的基本HTML结构如下:每一个幻灯片都有各自的布局class类,和一个data-layout属性,用于制作各自的动画效果。 

<div class="slideshow"> 
 <div class="slide slide--layout-1" data-layout="layout1"> 
 <div class="slide-imgwrap"> 
 <div class="slide__img"><div class="slide__img-inner" style="background-image: url(img/1.jpg);"></div></div>
 <div class="slide__img"><div class="slide__img-inner" style="background-image: url(img/2.jpg);"></div></div>
 <div class="slide__img"><div class="slide__img-inner" style="background-image: url(img/3.jpg);"></div></div> 
 </div> 
 <div class="slide__title"> 
 <h3 class="slide__title-main">Now or Never</h3> 
 <p class="slide__title-sub">... <a href="#">Read more</a></p> 
 </div> 
 </div><!-- /slide --> 
 <div class="slide slide--layout-2" data-layout="layout2"> 
 <!-- ... -->
 
 </div> 
 <!-- ... --> 
</div><!-- /slideshow -->

CSS样式

下面是其中一个布局的CSS样式: 

/* Layout 1: 3 grid images */
.slide--layout-1 .slide__img { 
 position: absolute; 
 width: calc(50% - 1em); 
} 
 
.slide--layout-1 .slide__img:first-child { 
 left: 0.5em; 
 height: 100%; 
} 
 
.slide--layout-1 .slide__img:nth-child(n+2) { 
 left: calc(50% + 0.5em); 
 height: calc(50% - 0.5em); 
} 
 
.slide--layout-1 .slide__img:nth-child(3) { 
 top: calc(50% + 0.5em);
}

得到的效果如下图所示:

酷! 不同风格页面布局幻灯片特效js实现

JavaScript

每一个幻灯片布局的动画效果定义在js文件中。结构为: [layout name] : { out : {navigating out properties}, in : {navigating in properties} }。可以为进入和离开的幻灯片设置不同的动画效果。下面的代码是第一个布局的示例代码:  

MLSlideshow.prototype.options = { 
 // Starting position. 
 startIdx : 0, 
 // Layout configuration. 
 // [layout name] : { out : {navigating out properties}, in : {navigating in properties} } 
 layoutConfig : { 
 layout1 : {
 out : { 
 translateX : { 
 next: '-100%', 
 prev: '100%' 
 }, 
 rotateZ : { 
 next: function(el, index) { 
 return anime.random(-15, 0); 
 }, 
 prev: function(el, index) { 
 return anime.random(0, 15); 

 } 
 }, 
 opacity : 0,
 duration: 1200, 
 easing : 'easeOutQuint', 
 itemsDelay : 80 
 },
 in : { 
 resetProps : { 
 translateX : {
 next: '100%', 

 prev: '-100%' 
 },
 rotateZ : { 
 next: function(el, index) {
 return anime.random(0, 15);
 }, 
 
 prev: function(el, index) { 
 return anime.random(-15, 0); 
 } 
 }, 
 opacity : 0, 
 }, 
 translateX : '0%',
 rotateZ : 0, 
 opacity : 1,
 duration: 700, 
 easing : 'easeOutQuint', 
 itemsDelay : 80
 
 }
 
 },
 layout2 : { /* ... */ }, 
 layout3 : { /* ... */ }, 
 /* ... */
 
 }
 
};

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
用javascript连接access数据库的方法
Nov 17 Javascript
JavaScript原生对象之String对象的属性和方法详解
Mar 13 Javascript
jQuery使用hide方法隐藏页面上指定元素的方法
Mar 30 Javascript
javascript+html5实现绘制圆环的方法
Jul 28 Javascript
jQuery实现的左右移动焦点图效果
Jan 14 Javascript
JavaScript使用简单正则表达式的数据验证功能示例
Jan 13 Javascript
深入理解Angular4中的依赖注入
Jun 07 Javascript
在Js页面通过POST传递参数跳转到新页面详解
Aug 25 Javascript
微信小程序视图template模板引用的实例详解
Sep 20 Javascript
vue中锚点的三种方法
Jul 06 Javascript
详解如何在vscode里面调试js和node.js的方法步骤
Dec 24 Javascript
Vue 组件的挂载与父子组件的传值实例
Sep 02 Javascript
JS+CSS3模拟溢出滚动效果
Aug 12 #Javascript
JS中script标签defer和async属性的区别详解
Aug 12 #Javascript
jquery实现网站列表切换效果的2种方法
Aug 12 #Javascript
很实用的js选项卡切换效果
Aug 12 #Javascript
js实现浏览器倒计时跳转页面效果
Aug 12 #Javascript
javascript实现瀑布流动态加载图片原理
Aug 12 #Javascript
jquery实现垂直和水平菜单导航栏
Aug 27 #Javascript
You might like
php加密算法之实现可逆加密算法和解密分享
2014/01/21 PHP
理解PHP中的Session及对Session有效期的控制
2016/01/08 PHP
PHP分页初探 一个最简单的PHP分页代码的简单实现
2016/06/21 PHP
ThinkPHP中create()方法自动验证实例
2017/04/26 PHP
javascript Zifa FormValid 0.1表单验证 代码打包下载
2007/06/08 Javascript
JavaScript DOM学习第四章 getElementByTagNames
2010/02/19 Javascript
用js实现小球的自由移动代码
2013/04/22 Javascript
Jquery插件easyUi表单验证提交(示例代码)
2013/12/30 Javascript
JavaScript中的getMilliseconds()方法使用详解
2015/06/10 Javascript
JS正则表达式比较常见用法
2016/01/26 Javascript
使用NodeJs 开发微信公众号(三)微信事件交互实例
2016/03/02 NodeJs
详解nodejs 文本操作模块-fs模块(三)
2016/12/22 NodeJs
javascript 中关于array的常用方法详解
2017/05/05 Javascript
angular动态表单制作
2018/02/23 Javascript
深入学习TypeScript 、React、 Redux和Ant-Design的最佳实践
2019/06/17 Javascript
Vue3.0中的monorepo管理模式的实现
2019/10/14 Javascript
[01:04:05]VG vs Newbee 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
用Python的SimPy库简化复杂的编程模型的介绍
2015/04/13 Python
整理Python 常用string函数(收藏)
2016/05/30 Python
Python算法之图的遍历
2017/11/16 Python
Python minidom模块用法示例【DOM写入和解析XML】
2019/03/25 Python
python实现简单成绩录入系统
2019/09/19 Python
Django框架实现在线考试系统的示例代码
2020/11/30 Python
莫斯科高科技在线商店:KremlinStore
2019/03/13 全球购物
会计毕业生自我鉴定
2013/11/04 职场文书
大学生毕业自我评价范文分享
2013/11/11 职场文书
培训主管的岗位职责
2013/11/23 职场文书
毕业自我鉴定怎么写
2014/03/25 职场文书
生日寄语大全
2014/04/08 职场文书
县级文明单位申报材料
2014/05/23 职场文书
5s标语大全
2014/06/23 职场文书
2014年保险公司工作总结
2014/11/22 职场文书
结婚保证书(卖身契)
2015/02/26 职场文书
幼儿园大班教师随笔
2015/08/14 职场文书
Python基础之常用库常用方法整理
2021/04/30 Python
最新动漫情报:2022年7月新番定档超过30部, OVERLORD骨王第四季也在其中噢
2022/05/04 日漫