酷! 不同风格页面布局幻灯片特效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 对象、函数和继承
Jul 07 Javascript
js监听输入框值的即时变化onpropertychange、oninput
Jul 13 Javascript
jQuery 自定义函数写法分享
Mar 30 Javascript
JS面向对象基础讲解(工厂模式、构造函数模式、原型模式、混合模式、动态原型模式)
Aug 16 Javascript
Highcharts 多个Y轴动态刷新数据的实现代码
May 28 Javascript
jQuery Ajax 全局调用封装实例代码详解
Jun 02 Javascript
js中遍历Map对象的方法
Jul 27 Javascript
Bootstrap基本组件学习笔记之缩略图(13)
Dec 08 Javascript
详解前端构建工具gulpjs的使用介绍及技巧
Jan 19 Javascript
利用Three.js如何实现阴影效果实例代码
Sep 26 Javascript
Vue父子之间值传递的实例教程
Jul 02 Javascript
Javascript前端下载后台传来的文件流代码实例
Aug 18 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
在数据量大(超过10万)的情况下
2007/01/15 PHP
php导出CSV抽象类实例
2014/09/24 PHP
Yii数据模型中rules类验证器用法分析
2016/07/15 PHP
阿里云的WindowsServer2016上部署php+apache
2018/07/17 PHP
javascript算法题 求任意一个1-9位不重复的N位数在该组合中的大小排列序号
2012/07/21 Javascript
JS写的贪吃蛇游戏(个人练习)
2013/07/08 Javascript
JavaScript获取当前网页标题(title)的方法
2015/04/03 Javascript
介绍JavaScript的一个微型模版
2015/06/24 Javascript
介绍一个简单的JavaScript类框架
2015/06/24 Javascript
微信小程序 devtool隐藏的秘密
2017/01/21 Javascript
js事件委托和事件代理案例分享
2017/07/25 Javascript
JavaScript重复元素处理方法分析【统计个数、计算、去重复等】
2017/12/14 Javascript
原生js实现的金山打字小游戏(实例代码详解)
2020/03/16 Javascript
js中!和!!的区别与用法
2020/05/09 Javascript
Javascript原型链及instanceof原理详解
2020/05/25 Javascript
vue结合el-upload实现腾讯云视频上传功能
2020/07/01 Javascript
利用python爬取散文网的文章实例教程
2017/06/18 Python
python3使用pyqt5制作一个超简单浏览器的实例
2017/10/19 Python
Python3的高阶函数map,reduce,filter的示例详解
2019/07/23 Python
利用Python检测URL状态
2019/07/31 Python
python--shutil移动文件到另一个路径的操作
2020/07/13 Python
Sublime Text3最新激活注册码分享适用2020最新版 亲测可用
2020/11/12 Python
床上用品全球在线购物:BeddingInn
2016/12/18 全球购物
N.Peal官网:来自伦敦的高档羊绒品牌
2018/10/29 全球购物
eBay意大利购物网站:eBay.it
2019/09/04 全球购物
Lovedrobe官网:英国领先的大码服装品牌
2019/09/19 全球购物
线程同步的方法
2016/11/23 面试题
活动策划邀请函
2014/02/06 职场文书
《夏夜多美》教学反思
2014/02/17 职场文书
个人合作协议书范本
2014/04/18 职场文书
扶贫办主任查摆“四风”问题个人对照检查材料思想汇报
2014/10/02 职场文书
学生评语集锦
2015/01/04 职场文书
大四学生个人总结
2015/02/15 职场文书
太行山上观后感
2015/06/05 职场文书
微信小程序结合ThinkPHP5授权登陆后获取手机号
2021/11/23 PHP
青岛市的收音机研制与生产
2022/04/07 无线电