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 相关文章推荐
用js模拟JQuery的show与hide动画函数代码
Sep 20 Javascript
javascript 文件的同步加载与异步加载实现原理
Dec 13 Javascript
浅析JavaScript中的CSS属性及命名规范
Nov 28 Javascript
JavaScript中的toUTCString()方法使用详解
Jun 12 Javascript
BootStrap tab选项卡使用小结
Aug 09 Javascript
利用CSS、JavaScript及Ajax实现图片预加载的方法
Nov 29 Javascript
Vue.js常用指令之循环使用v-for指令教程
Jun 27 Javascript
JavaScrip关于创建常量的知识点
Dec 07 Javascript
vue+springboot前后端分离实现单点登录跨域问题解决方法
Jan 30 Javascript
从零开始用electron手撸一个截屏工具的示例代码
Oct 10 Javascript
JS实现“全选”和&quot;全不选&quot;功能代码实例
Feb 06 Javascript
Vue父子之间值传递的实例教程
Jul 02 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实现的网络相册图片防盗链完美破解方法
2015/07/01 PHP
SESSION存放在数据库用法实例
2015/08/08 PHP
php正则匹配文章中的远程图片地址并下载图片至本地
2015/09/29 PHP
php多线程并发实现方法
2016/09/30 PHP
jquery下为Event handler传递动态参数的代码
2011/01/06 Javascript
jquery 操作日期、星期、元素的追加的实现代码
2012/02/07 Javascript
基于jquery的可多选的下拉列表框
2012/07/20 Javascript
js修改原型的属性使用介绍
2014/01/26 Javascript
jquery的ajax跨域请求原理和示例
2014/05/08 Javascript
Javascript基础教程之break和continue语句
2015/01/18 Javascript
jQuery实现响应鼠标滚动的动感菜单效果
2015/09/21 Javascript
利用jQuery插件imgAreaSelect实现图片上传裁剪(放大缩小)
2016/12/02 Javascript
js实现瀑布流效果(自动生成新的内容)
2017/03/16 Javascript
Vuex 使用及简单实例(计数器)
2018/08/29 Javascript
详解如何构建Promise队列实现异步函数顺序执行
2018/10/23 Javascript
详解Vue一个案例引发「内容分发slot」的最全总结
2018/12/02 Javascript
Vue替代marquee标签超出宽度文字横向滚动效果
2019/12/09 Javascript
[59:42]Secret vs Alliacne 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
Python探索之URL Dispatcher实例详解
2017/10/28 Python
Django 使用easy_thumbnails压缩上传的图片方法
2019/07/26 Python
python 利用pywifi模块实现连接网络破解wifi密码实时监控网络
2019/09/16 Python
Python二次规划和线性规划使用实例
2019/12/09 Python
Python绘图之二维图与三维图详解
2020/08/04 Python
Pycharm2020最新激活码|永久激活(附最新激活码和插件的详细教程)
2020/09/29 Python
CSS3 实现的火焰动画
2020/12/07 HTML / CSS
详解基于 Canvas 手撸一个六边形能力图
2019/09/02 HTML / CSS
彪马日本官网:PUMA日本
2019/01/31 全球购物
Ado与Ado.net的相同与不同
2014/12/08 面试题
linux面试题参考答案(2)
2015/12/06 面试题
《一个小村庄的故事》教学反思
2014/04/13 职场文书
音乐学专业求职信
2014/07/22 职场文书
人力资源职位说明书
2014/07/29 职场文书
推广活动策划方案
2014/08/23 职场文书
校长师德表现自我评价
2015/03/05 职场文书
致男子1500米运动员的广播稿
2019/11/08 职场文书
CSS实现隐藏搜索框功能(动画正反向序列)
2021/07/21 HTML / CSS