酷! 不同风格页面布局幻灯片特效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 相关文章推荐
js格式化金额可选是否带千分位以及保留精度
Jan 28 Javascript
js实现向右横向滑出的二级菜单效果
Aug 27 Javascript
针对后台列表table拖拽比较实用的jquery拖动排序
Oct 10 Javascript
Bootstrap模态框禁用空白处点击关闭
Oct 20 Javascript
js实现简单的选项卡效果
Feb 23 Javascript
Angular.JS中指令ng-if、ng-show/ng-hide和ng-switch的使用教程
May 07 Javascript
JavaScript实现QQ聊天消息展示和评论提交功能
May 22 Javascript
详解express与koa中间件模式对比
Aug 07 Javascript
Vue引入jquery实现平滑滚动到指定位置
May 09 jQuery
详解React中合并单元格的正确写法
Jan 08 Javascript
简单实现vue中的依赖收集与响应的方法
Feb 18 Javascript
vue基础知识--axios合并请求和slot
Jun 04 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数据库操作面向对象的优点
2006/10/09 PHP
php笔记之:AOP的应用
2013/04/24 PHP
护卫神php套件 php版本升级方法(php5.5.24)
2015/05/10 PHP
php面向对象编程self和static的区别
2016/05/08 PHP
PHP whois查询类定义与用法示例
2019/04/03 PHP
ExtJs 表单提交登陆实现代码
2010/08/19 Javascript
一个简单的网站访问JS计数器 刷新1次加1次访问
2012/09/20 Javascript
jquery 点击元素后,滚动条滚动至该元素位置的方法
2016/08/05 Javascript
JavaScript之WebSocket技术详解
2016/11/18 Javascript
jQuery和CSS仿京东仿淘宝列表导航菜单
2017/01/04 Javascript
通过js控制时间,一秒一秒自己动的实例
2017/10/25 Javascript
vue-router配合ElementUI实现导航的实例
2018/02/11 Javascript
使用canvas实现一个vue弹幕组件功能
2018/11/30 Javascript
JS实现带阴历的日历功能详解
2019/01/24 Javascript
实例讲解vue源码架构
2019/01/24 Javascript
小程序如何使用分包加载的实现方法
2019/05/22 Javascript
angularjs自定义过滤器demo示例
2019/08/24 Javascript
VUE.js实现动态设置输入框disabled属性
2019/10/28 Javascript
vue props 一次传多个值实例
2020/07/22 Javascript
Python实现对字符串的加密解密方法示例
2017/04/29 Python
Python 字符串与数字输出方法
2018/07/16 Python
Python3 操作 MySQL 插入一条数据并返回主键 id的实例
2020/03/02 Python
Python基于pip实现离线打包过程详解
2020/05/15 Python
Python实现快速大文件比较代码解析
2020/09/04 Python
python代数式括号有效性检验示例代码
2020/10/04 Python
苹果中国官方网站:Apple中国
2016/07/22 全球购物
波兰运动鞋网上商店:e-Sporting
2018/02/16 全球购物
如何整合JQuery和Prototype
2014/01/31 面试题
医院护士专业个人的求职信
2013/12/09 职场文书
药品促销活动方案
2014/02/14 职场文书
有关爱国演讲稿
2014/05/07 职场文书
行政秘书工作自我鉴定
2014/09/15 职场文书
村长党的群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
写给老婆的保证书
2015/02/27 职场文书
实施意见格式范本
2015/06/05 职场文书
使用canvas实现雪花飘动效果的示例代码
2021/03/30 HTML / CSS