酷! 不同风格页面布局幻灯片特效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 Date对象使用总结
May 14 Javascript
关于Jqzoom的使用心得 jquery放大镜效果插件
Apr 12 Javascript
js计算两个时间之间天数差的实例代码
Nov 19 Javascript
jQuery实现图片加载完成后改变图片大小的方法
Mar 29 Javascript
简单实现js点击展开二级菜单功能
May 16 Javascript
javascript+css3开发打气球小游戏完整代码
Nov 28 Javascript
Bootstrap模态对话框中显示动态内容的方法
Aug 10 Javascript
webpack4.x CommonJS模块化浅析
Nov 09 Javascript
Vue唯一可以更改vuex实例中state数据状态的属性对象Mutation的讲解
Jan 18 Javascript
JS匿名函数内部this指向问题详析
May 10 Javascript
vue 实现模糊检索并根据其他字符的首字母顺序排列
Sep 19 Javascript
微信小程序去除左上角返回键的实现方法
Mar 06 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
这部好评如潮的动漫 知名梗频出 但是画风劝退很多人
2020/03/08 日漫
PHP的宝库目录--PEAR
2006/10/09 PHP
PHP中实现汉字转区位码应用源码实例解析
2010/06/14 PHP
PHP如何抛出异常处理错误
2011/03/02 PHP
php数组中删除元素的实现代码
2012/06/22 PHP
深入PHP获取随机数字和字母的方法详解
2013/06/06 PHP
在Mac OS上搭建PHP的Yii框架及相关测试环境
2016/02/14 PHP
php 如何设置一个严格控制过期时间的session
2017/05/05 PHP
PHP四种排序算法实现及效率分析【冒泡排序,插入排序,选择排序和快速排序】
2018/04/27 PHP
php tpl模板引擎定义与使用示例
2019/08/09 PHP
php实现登录页面的简单实例
2019/09/29 PHP
javascript中注册和移除事件的4种方式
2013/03/20 Javascript
在服务端(Page.Write)调用自定义的JS方法详解
2013/08/09 Javascript
js左侧三级菜单导航实例代码
2013/09/13 Javascript
JavaScript执行顺序详细介绍
2013/12/04 Javascript
javascript获取隐藏元素(display:none)的高度和宽度的方法
2014/06/06 Javascript
Node.js中的缓冲与流模块详细介绍
2015/02/11 Javascript
学习javascript面向对象 javascript实现继承的方式
2016/01/04 Javascript
jquery pagination插件动态分页实例(Bootstrap分页)
2016/12/23 Javascript
使用bootstrap插件实现模态框效果
2017/05/10 Javascript
微信小程序日历/日期选择插件使用方法详解
2018/12/28 Javascript
vue+element树组件 实现树懒加载的过程详解
2019/10/21 Javascript
[43:58]DOTA2上海特级锦标赛C组败者赛 Newbee VS Archon第二局
2016/02/27 DOTA
python验证码识别教程之滑动验证码
2018/06/04 Python
django admin 自定义替换change页面模板的方法
2019/08/23 Python
基于python实现学生信息管理系统
2019/11/22 Python
浅谈pytorch中的BN层的注意事项
2020/06/23 Python
全面介绍python中很常用的单元测试框架unitest
2020/12/14 Python
CSS3基础(RGBa、text-shadow、box-shadow、border-radius)
2012/11/13 HTML / CSS
新西兰便宜隐形眼镜购买网站:QUICKLENS New Zealand
2019/03/02 全球购物
优秀的计算机专业求职信范文
2013/12/27 职场文书
市场营销大学生职业规划书
2014/02/25 职场文书
自我检讨书怎么写
2015/05/07 职场文书
七年级作文之《我和我的祖国》观后感作文
2019/10/18 职场文书
go设置多个GOPATH的方式
2021/05/05 Golang
利用JavaScript写一个简单计算器
2021/11/27 Javascript