酷! 不同风格页面布局幻灯片特效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 学习第六课 实现一个Ajax的TreeView
May 17 Javascript
解析Javascript中大括号“{}”的多义性
Dec 02 Javascript
JavaScript编程的单例设计模讲解
Nov 10 Javascript
AngularJs动态加载模块和依赖注入详解
Jan 11 Javascript
json的使用小结
Jun 08 Javascript
Javascript中关于Array.filter()的妙用详解
Dec 04 Javascript
微信小程序搜索组件wxSearch实例详解
Jun 08 Javascript
JS实现同一DOM元素上onClick事件与onDblClick事件并存的解决方法
Jun 07 Javascript
Vue 实时监听窗口变化 windowresize的两种方法
Nov 06 Javascript
最简单的vue消息提示全局组件的方法
Jun 16 Javascript
解决Vue的文本编辑器 vue-quill-editor 小图标样式排布错乱问题
Aug 03 Javascript
JavaScript实现alert弹框效果
Nov 19 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
DOMXML函数笔记
2006/10/09 PHP
PHP中的超全局变量
2006/10/09 PHP
php处理restful请求的路由类分享
2014/02/27 PHP
php中通过DirectoryIterator删除整个目录的方法
2015/03/13 PHP
PHP爬虫之百万级别知乎用户数据爬取与分析
2016/01/22 PHP
php制作的简单验证码识别代码
2016/01/26 PHP
javascript 实现键盘上下左右功能的小例子
2013/09/15 Javascript
JS实现鼠标滑过链接改变网页背景颜色的方法
2015/10/20 Javascript
jQuery 调用WebService 实例讲解
2016/06/28 Javascript
Angularjs 制作购物车功能实例代码
2016/09/14 Javascript
微信小程序 条件渲染详解
2016/10/09 Javascript
jQuery zTree树插件动态加载实例代码
2017/05/11 jQuery
JS实现仿UC浏览器前进后退效果的实例代码
2017/07/17 Javascript
基于LayUI实现前端分页功能的方法
2017/07/22 Javascript
vue-cli3 karma单元测试的实现
2019/01/18 Javascript
JS图片懒加载的优点及实现原理
2020/01/10 Javascript
[48:48]完美世界DOTA2联赛PWL S3 Magama vs GXR 第一场 12.19
2020/12/24 DOTA
Python入门篇之字典
2014/10/17 Python
Linux下用Python脚本监控目录变化代码分享
2015/05/21 Python
Python实现截屏的函数
2015/07/25 Python
python如何将图片转换为字符图片
2020/08/19 Python
python爬虫URL重试机制的实现方法(python2.7以及python3.5)
2018/12/18 Python
Python使用paramiko操作linux的方法讲解
2019/02/25 Python
Python使用微信接入图灵机器人过程解析
2019/11/04 Python
Pycharm 2020.1 版配置优化的详细教程
2020/08/07 Python
python rsa-oaep加密的示例代码
2020/09/23 Python
15个Pythonic的代码示例(值得收藏)
2020/10/29 Python
澳大利亚墨尔本的在线时装店:LORETA
2018/09/14 全球购物
小学三年级数学教学反思
2014/01/31 职场文书
技术比武方案
2014/05/19 职场文书
2014年财务工作自我评价
2014/09/23 职场文书
工作失职自我检讨书
2015/05/05 职场文书
大学生求职意向书
2015/05/11 职场文书
SQL Server使用导出向导功能
2022/04/08 SQL Server
PostgreSQL聚合函数介绍以及分组和排序
2022/04/12 PostgreSQL
JS中forEach()、map()、every()、some()和filter()的用法
2022/05/11 Javascript