酷! 不同风格页面布局幻灯片特效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 相关文章推荐
JQuery 中几个类选择器的简单使用介绍
Mar 14 Javascript
javascript+canvas实现刮刮卡抽奖效果
Jul 29 Javascript
js淡入淡出的图片轮播效果代码分享
Aug 24 Javascript
TypeOf这些知识点你了解吗
Feb 21 Javascript
jQuery实现指定区域外单击关闭指定层的方法【经典】
Jun 22 Javascript
JavaScript实战之菜单特效
Aug 16 Javascript
使用snowfall.jquery.js实现爱心满屏飞的效果
Jan 05 Javascript
JAVA中截取字符串substring用法详解
Apr 14 Javascript
bootstrap Table服务端处理分页(后台是.net)
Oct 19 Javascript
vue element项目引入icon图标的方法
Jun 06 Javascript
浅谈Vue CLI 3结合Lerna进行UI框架设计
Apr 14 Javascript
微信小程序接入腾讯云验证码的方法步骤
Jan 07 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冒泡排序算法代码详细解读
2011/07/17 PHP
如何在PHP中使用数组
2020/06/09 PHP
jquery $.ajax入门应用一
2008/11/19 Javascript
javascript 打印内容方法小结
2009/11/04 Javascript
jquery重新播放css动画所遇问题解决
2013/08/21 Javascript
Jquery增加鼠标中间功能mousewheel的实例代码
2013/09/05 Javascript
基于javascript的COOkie的操作实现只能点一次
2014/12/26 Javascript
javascript中Object使用详解
2015/01/26 Javascript
PHP和NodeJs开发的应用如何共用Session
2015/04/16 NodeJs
js脚本分页代码分享(7种样式)
2015/08/19 Javascript
如何使用jquery easyui创建标签组件
2015/11/18 Javascript
nodeJs爬虫获取数据简单实现代码
2016/03/29 NodeJs
js仿3366小游戏选字游戏
2016/04/14 Javascript
jQuery Dialog对话框事件用法实例分析
2016/05/10 Javascript
jQuery Mobile动态刷新页面样式的实现方法
2016/05/28 Javascript
浅析Vue 生命周期
2018/06/21 Javascript
webpack实现一个行内样式px转vw的loader示例
2018/09/13 Javascript
小程序指纹验证的实现代码
2018/12/04 Javascript
引入外部js脚本加载慢与页面白屏问题的解决
2018/12/10 Javascript
linux 下以二进制的方式安装 nodejs
2020/02/12 NodeJs
解决vue项目,npm run build后,报路径错的问题
2020/08/13 Javascript
[03:13]DOTA2-DPC中国联赛1月25日Recap集锦
2021/03/11 DOTA
Python中input与raw_input 之间的比较
2017/08/20 Python
python画折线图的程序
2018/07/26 Python
transform python环境快速配置方法
2018/09/27 Python
解决python中无法自动补全代码的问题
2018/12/04 Python
python中多个装饰器的调用顺序详解
2019/07/16 Python
python实现凯撒密码、凯撒加解密算法
2020/06/11 Python
检测浏览器对HTML5和CSS3支持度的方法
2015/06/25 HTML / CSS
模具专业毕业生自荐书范文
2014/02/19 职场文书
各营销点岗位职责范本
2014/03/05 职场文书
股权转让协议书范本
2014/04/12 职场文书
房地产资料员岗位职责
2014/07/02 职场文书
党员干部民主生活会议批评与自我批评材料
2014/09/20 职场文书
初婚未育证明样本
2015/06/18 职场文书
Python干货实战之八音符酱小游戏全过程详解
2021/10/24 Python