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加载之使用DOM方法动态加载Javascript文件
Nov 08 Javascript
js 设置缓存及获取设置的缓存
May 08 Javascript
Javascript实现简单二级下拉菜单实例
Jun 15 Javascript
jQuery中detach()方法用法实例
Dec 25 Javascript
vue制作加载更多功能的正确打开方式
Oct 12 Javascript
jquery版轮播图效果和extend扩展
Jul 18 jQuery
微信小程序实现两个页面传值的方法分析
Dec 11 Javascript
10行代码实现微信小程序滑动tab切换
Dec 28 Javascript
highCharts提示框中显示当前时间的方法
Jan 18 Javascript
javascriptvoid(0)含义以及与&quot;#&quot;的区别讲解
Jan 19 Javascript
Vue.js样式动态绑定实现小结
Jan 24 Javascript
前端面试知识点目录一览
Apr 15 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
一个多文件上传的例子(原创)
2006/10/09 PHP
PHP_MySQL教程-第一天
2007/03/18 PHP
php中memcache 基本操作实例
2015/05/17 PHP
laravel 输出最后执行sql 附:whereIn的使用方法
2019/10/10 PHP
使用原生javascript创建通用表单验证——更锋利的使用dom对象
2011/09/13 Javascript
Ext JS动态加载JavaScript创建窗体的方法
2016/06/23 Javascript
Vue.js每天必学之内部响应式原理探究
2016/09/07 Javascript
Vue.js做select下拉列表的实例(ul-li标签仿select标签)
2018/03/02 Javascript
vue路由懒加载的实现方法
2018/03/12 Javascript
详解基于DllPlugin和DllReferencePlugin的webpack构建优化
2018/06/28 Javascript
对类Vue的MVVM前端库的实现代码
2018/09/07 Javascript
vue实现购物车抛物线小球动画效果的方法详解
2019/02/13 Javascript
微信小程序定义和调用全局变量globalData的实现
2019/11/01 Javascript
原生JavaScript实现刮刮乐
2020/09/29 Javascript
[01:55]《走出家门看比赛》——DOTA2 2015国际邀请赛同城线下观战
2015/07/18 DOTA
python基础教程之数字处理(math)模块详解
2014/03/25 Python
python 七种邮件内容发送方法实例
2014/04/22 Python
跟老齐学Python之数据类型总结
2014/09/24 Python
在Linux中通过Python脚本访问mdb数据库的方法
2015/05/06 Python
在 Python 应用中使用 MongoDB的方法
2017/01/05 Python
利用Python循环(包括while&amp;for)各种打印九九乘法表的实例
2017/11/06 Python
Python 限定函数参数的类型及默认值方式
2019/12/24 Python
python实现可下载音乐的音乐播放器
2020/02/25 Python
pycharm中如何自定义设置通过“ctrl+滚轮”进行放大和缩小实现方法
2020/09/16 Python
python 还原梯度下降算法实现一维线性回归
2020/10/22 Python
python+selenium实现12306模拟登录的步骤
2021/01/21 Python
html特殊符号示例 html特殊字符编码对照表
2014/01/14 HTML / CSS
捷克厨房用品购物网站:Tescoma
2018/07/13 全球购物
结婚喜宴家长答谢词
2014/01/15 职场文书
加多宝凉茶广告词
2014/03/18 职场文书
毕业证明书
2015/06/19 职场文书
开学第一周总结
2015/07/16 职场文书
毕业晚宴祝酒词
2015/08/11 职场文书
运输公司工作总结
2015/08/11 职场文书
劳动合同变更协议书范本
2019/04/18 职场文书
MySQL 中如何归档数据的实现方法
2022/03/16 SQL Server