js实现3D图片展示效果


Posted in Javascript onMarch 09, 2017

点击左上角的按钮前后切换

效果图:

js实现3D图片展示效果

代码如下:

<!doctype html>
<html>
<head>
 <meta charset="UTF-8">
 <title>Title</title>
<style>
*{margin:0; padding:0; list-style:none;}
ul{ 
 width:300px; 
 height:300px;
 margin:100px auto;
 position:relative;
 -webkit-transform-style:preserve-3d;
 perspective:800px;
}
ul li{
 position:absolute;
 top:0; left:0;
 width:100%;
 height:100%;
 text-align:center;
 line-height:300px;
 font-size:50px;
 background:#399;
 border:1px solid #000;
 opacity:0;
}
.l2{
 opacity:0;
 -webkit-transform: translate(-280px,0) rotateY(45deg);
 z-index:3;
}
.l1{
 opacity:1;
 -webkit-transform: translate(-220px,0) rotateY(45deg);
 z-index:4;
}
.cur{ 
 opacity:1;
 -webkit-transform:translateZ(50px);
 z-index:5;
}
.r1{
 opacity:1;
 -webkit-transform: translate(220px,0) rotateY(-45deg);
 z-index:4;
}
.r2{
 opacity:0;
 -webkit-transform: translate(280px,0) rotateY(-45deg);
 z-index:3;
}
</style>
<script>
window.onload = function(){
 var oPrev = document.querySelector('.prev_btn');
 var oNext = document.querySelector('.next_btn');
 var aLi = document.querySelectorAll('ul li');
 var aClass = [];
 for(var i=0;i<aLi.length;i++){
 aClass[i] = aLi[i].className;
 }
 var bOk = false;
 oPrev.onclick = function(){
 if(bOk)return;
 bOk = true;
 aClass.push(aClass.shift());
 change();
 };
 oNext.onclick = function(){
 if(bOk)return;
 bOk = true;
 aClass.unshift(aClass.pop());
 change();
 };
 function change(){
 for(var i=0;i<aLi.length;i++){
 aLi[i].style.WebkitTransition = '.5s all ease';

 aLi[i].className = aClass[i];
 }
 var oCur = document.querySelector('.cur');
 function tranEnd(){
 oCur.removeEventListener('transitionend',tranEnd,false);
 bOk = false;
 }
 oCur.addEventListener('transitionend',tranEnd,false);
 }
};
</script>
</head>
<body>
 <input type="button" value="prev" class="prev_btn" />
 <input type="button" value="next" class="next_btn" />
 <ul>
 <li class="l2">0</li>
 <li class="l1">1</li>
 <li class="cur">2</li>
 <li class="r1">3</li>
 <li class="r2">4</li>
 <li>5</li>
 <li>6</li>
 <li>7</li>
 <li>8</li>
 <li>9</li>
 <li>10</li>
 <li>11</li>
 <li>12</li>
 <li>13</li>
 </ul>
</body>
</html>

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持三水点靠木!

Javascript 相关文章推荐
Jquery 常用方法经典总结
Jan 28 Javascript
基于jquery的超简单上下翻
Apr 20 Javascript
AngularJS 中的事件详解
Jul 28 Javascript
JavaScript鼠标事件,点击鼠标右键,弹出div的简单实例
Aug 03 Javascript
微信小程序 聊天室简单实现
Apr 19 Javascript
Angualrjs 表单验证的两种方式(失去焦点验证和点击提交验证)
May 09 Javascript
JS轮播图实现简单代码
Feb 19 Javascript
vue+mousemove实现鼠标拖动功能(拖动过快失效问题解决方法)
Aug 24 Javascript
Angular6 正则表达式允许输入部分中文字符
Sep 10 Javascript
AngularJS实现的鼠标拖动画矩形框示例【可兼容IE8】
May 17 Javascript
基于jquery实现的tab选项卡功能示例【附源码下载】
Jun 10 jQuery
React 并发功能体验(前端的并发模式)
Jul 01 Javascript
JavaScript实现左右下拉框动态增删示例
Mar 09 #Javascript
less简单入门(CSS 预处理语言)
Mar 08 #Javascript
完美实现js选项卡切换效果(二)
Mar 08 #Javascript
微信小程序中用WebStorm使用LESS
Mar 08 #Javascript
Vue常用指令V-model用法
Mar 08 #Javascript
详解使用vue-router进行页面切换时滚动条位置与滚动监听事件
Mar 08 #Javascript
vue使用watch 观察路由变化,重新获取内容
Mar 08 #Javascript
You might like
php学习之数据类型之间的转换代码
2011/05/29 PHP
php对包含html标签的字符串进行截取的函数分享
2014/06/19 PHP
PHP实现服务器状态监控的方法
2014/12/09 PHP
codeigniter发送邮件并打印调试信息的方法
2015/03/21 PHP
php程序内部post数据的方法
2015/03/31 PHP
jquery实现鼠标滑过小图时显示大图的方法
2015/01/14 Javascript
jquery ui resize 中border-box的bug修正
2015/04/26 Javascript
JavaScript检查子字符串是否在字符串中的方法
2016/02/03 Javascript
Javascript的表单验证-揭开正则表达式的面纱
2016/03/18 Javascript
JS实现页面打印功能
2017/03/16 Javascript
详解有关easyUI的拖动操作中droppable,draggable用法例子
2017/06/03 Javascript
详解vue-cli官方脚手架配置
2018/07/20 Javascript
vue项目在安卓低版本机显示空白的原因分析(两种)
2018/09/04 Javascript
用js简单提供增删改查接口
2019/05/12 Javascript
nodejs实现百度舆情接口应用示例
2020/02/07 NodeJs
[02:50]2014DOTA2 TI预选赛预选赛 大神专访第一弹!
2014/05/21 DOTA
[00:57]深扒TI7聊天轮盘语音出处5
2017/05/11 DOTA
python+pillow绘制矩阵盖尔圆简单实例
2018/01/16 Python
python微信公众号之关注公众号自动回复
2018/10/25 Python
使用python Telnet远程登录执行程序的方法
2019/01/26 Python
Python求解正态分布置信区间教程
2019/11/20 Python
利用pytorch实现对CIFAR-10数据集的分类
2020/01/14 Python
python实现飞机大战游戏(pygame版)
2020/10/26 Python
基于python求两个列表的并集.交集.差集
2020/02/10 Python
Keras在训练期间可视化训练误差和测试误差实例
2020/06/16 Python
瑜伽服装品牌:露露柠檬(lululemon athletica)
2017/06/04 全球购物
大韩航空官方网站:Korean Air
2017/10/25 全球购物
什么是虚拟内存?虚拟内存有什么优势?
2016/02/09 面试题
《巨人的花园》教学反思
2014/02/12 职场文书
《水乡歌》教学反思
2014/04/24 职场文书
博士导师推荐信
2015/03/25 职场文书
追悼会答谢词范文
2015/09/29 职场文书
2016年校园社会综合治理宣传月活动总结
2016/03/16 职场文书
创业计划书之溜冰场
2019/10/25 职场文书
开发微信小程序之WXSS样式教程
2022/04/18 HTML / CSS
Django中celery的使用项目实例
2022/07/07 Python