酷! 不同风格页面布局幻灯片特效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 相关文章推荐
许愿墙中用到的函数
Oct 07 Javascript
WordPress 插件——CoolCode使用方法与下载
Jul 02 Javascript
Div自动滚动到末尾的代码
Oct 26 Javascript
jQuery简易图片放大特效示例代码
Jun 09 Javascript
JavaScript学习笔记(三):JavaScript也有入口Main函数
Sep 12 Javascript
JS实现不使用图片仿Windows右键菜单效果代码
Oct 22 Javascript
jquery利用拖拽方式在图片上添加热链接
Nov 24 Javascript
bootstrap和jQuery.Gantt的css冲突 如何解决
May 29 Javascript
浅谈Vue的基本应用
Dec 27 Javascript
bootstrap table支持高度百分比的实例代码
Feb 28 Javascript
jQuery实现炫丽的3d旋转星空效果
Jul 04 jQuery
node命令行工具之实现项目工程自动初始化的标准流程
Aug 12 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(8) php 数组
2010/03/05 PHP
深入php数据采集的详解
2013/06/02 PHP
Ext面向对象开发实践(续)
2008/11/18 Javascript
javascript 伪数组实现方法
2010/10/11 Javascript
jQuery教程 $()包装函数来实现数组元素分页效果
2013/08/13 Javascript
如何实现textarea里的不同文本显示不同颜色
2014/01/20 Javascript
浅谈Javascript中substr和substring的区别
2015/09/30 Javascript
jquery zTree异步加载、模糊搜索简单实例分享
2016/03/24 Javascript
Bootstrap实现input控件失去焦点时验证
2016/08/04 Javascript
Javascript基础回顾之(三) js面向对象
2017/01/31 Javascript
详解webpack中的hash、chunkhash、contenthash区别
2018/01/05 Javascript
如何使用 vue + d3 画一棵树
2018/12/03 Javascript
es6基础学习之解构赋值
2018/12/10 Javascript
vue中的面包屑导航组件实例代码
2019/07/01 Javascript
nodejs实现聊天机器人功能
2019/09/19 NodeJs
Js图片点击切换轮播实现代码
2020/07/27 Javascript
[04:26]2014DOTA2西雅图国际邀请赛 总决赛TOPPLAY
2014/07/22 DOTA
Python最基本的输入输出详解
2015/04/25 Python
python动态性强类型用法实例
2015/05/09 Python
Python爬虫框架Scrapy实战之批量抓取招聘信息
2015/08/07 Python
Python实现的查询mysql数据库并通过邮件发送信息功能
2018/05/17 Python
python 用下标截取字符串的实例
2018/12/25 Python
Pandas中DataFrame的分组/分割/合并的实现
2019/07/16 Python
python闭包、深浅拷贝、垃圾回收、with语句知识点汇总
2020/03/11 Python
Jupyter notebook如何实现指定浏览器打开
2020/05/13 Python
Python命令行参数argv和argparse该如何使用
2021/02/08 Python
HTML5 通过Vedio标签实现视频循环播放的示例代码
2020/08/05 HTML / CSS
Chain Reaction Cycles俄罗斯:世界上最大的在线自行车商店
2019/08/27 全球购物
C,C++的几个面试题小集
2013/07/13 面试题
银行职员个人的工作自我评价
2014/02/15 职场文书
诚信贷款承诺书
2014/05/30 职场文书
工作求职自荐信
2014/06/13 职场文书
大一新生军训新闻稿
2015/07/17 职场文书
2016年庆“七一”主题党日活动总结
2016/04/05 职场文书
为什么 Nginx 比 Apache 更牛逼
2021/03/31 Servers
2022漫威和DC电影上映作品
2022/04/05 欧美动漫