酷! 不同风格页面布局幻灯片特效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 跨域访问解决方案
Feb 14 Javascript
一些常用弹出窗口/拖放/异步文件上传等实用代码
Jan 06 Javascript
js获取RadioButtonList的Value/Text及选中值等信息实现代码
Mar 05 Javascript
解析Jquery的LigerUI如何实现文件上传
Jul 09 Javascript
非常漂亮的相册集 使用jquery制作相册集
Apr 28 Javascript
原生JS实现-星级评分系统的简单实例
Aug 21 Javascript
html判断当前页面是否在iframe中的实例
Nov 30 Javascript
浅谈JavaScript中promise的使用
Jan 11 Javascript
关于不同页面之间实现参数传递的几种方式讨论
Feb 13 Javascript
JavaScript之Map和Set_动力节点Java学院整理
Jun 29 Javascript
SpringBoot+Vue前后端分离,使用SpringSecurity完美处理权限问题的解决方法
Jan 09 Javascript
vue自定义指令directive实例详解
Jan 17 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 Google的translate API代码
2008/12/10 PHP
php连接mssql的一些相关经验及注意事项
2013/02/05 PHP
解析php中static,const与define的使用区别
2013/06/18 PHP
用PHP来计算某个目录大小的方法
2014/04/01 PHP
Thinkphp调用Image类生成缩略图的方法
2015/03/07 PHP
php无序树实现方法
2015/07/28 PHP
php 在字符串指定位置插入新字符的简单实现
2016/06/28 PHP
Yii2.0中使用js异步删除示例
2017/03/10 PHP
Laravel框架之解决前端显示图片问题
2019/10/24 PHP
Laravel自动生成UUID,从建表到使用详解
2019/10/24 PHP
50个优秀经典PHP算法大集合 附源码
2020/08/26 PHP
php实现JWT验证的实例教程
2020/11/26 PHP
理解Javascript_06_理解对象的创建过程
2010/10/15 Javascript
js中判断数字\字母\中文的正则表达式 (实例)
2012/06/29 Javascript
THREE.JS入门教程(2)着色器-上
2013/01/24 Javascript
js工具方法弹出蒙版
2013/05/08 Javascript
为什么JavaScript没有块级作用域
2016/05/22 Javascript
javascript表单正则应用
2017/02/04 Javascript
js实现加载页面就自动触发超链接的示例
2017/08/31 Javascript
vue 1.x 交互实现仿百度下拉列表示例
2017/10/21 Javascript
vue如何引入sass全局变量
2018/06/28 Javascript
微信小程序中上传图片并进行压缩的实现代码
2018/08/28 Javascript
微信小程序使用字体图标的方法
2019/05/23 Javascript
浅谈vue的第一个commit分析
2020/06/08 Javascript
js实现简单的随机点名器
2020/09/17 Javascript
[02:46]2014DOTA2国际邀请赛 选手为你解读比赛MVP充满梦想
2014/07/09 DOTA
python利用elaphe制作二维条形码实现代码
2012/05/25 Python
Python返回真假值(True or False)小技巧
2015/04/10 Python
Python实现的基于优先等级分配糖果问题算法示例
2018/04/25 Python
Python实现FTP文件传输的实例
2019/07/07 Python
docker django无法访问redis容器的解决方法
2019/08/21 Python
Selenium 安装和简单使用的实现
2020/12/04 Python
参观监狱心得体会
2014/01/02 职场文书
工程类专业自荐信范文
2014/03/09 职场文书
2014年房地产工作总结范文
2014/11/19 职场文书
文案策划岗位个人自我评价(范文)
2019/08/08 职场文书