利用css3实现3D轮播图
动画实现主要利用了z-index将层级关系改变,从而实现了焦点图的效果;css3属性 transform rotate 来实现图片的动画效果 。transition实现过度动画!
* {
margin: 0;
padding: 0;
}
.stage {
width: 500px;
height: 280px;
margin: 100px auto;
perspective: 1800px;
position: relative;
}
img {
vertical-align: middle;
}
.stage ul {
width: 500px;
height: 280px;
list-style: none;
}
.stage ul li {
width: 500px;
height: 280px;
position: absolute;
top: 0;
left: 0;
transition: all 2s ease 0s;
}
.stage ul .left2 {
transform: rotateY(30deg) translateX(-380px) translateZ(-20px);
z-index: 7;
}
.stage ul .left1 {
transform: rotateY(40deg) translateX(-280px) translateZ(70px);
z-index: 8;
}
.stage ul .king {
z-index: 9;
}
.stage ul .right1 {
transform: rotateY(-40deg) translateX(280px) translateZ(-70px);
z-index: 8;
}
.stage ul .right2 {
transform: rotateY(-30deg) translateX(380px) translateZ(-70px);
z-index: 7;
}
.stage ul .bench-warmer {
z-index: 5;
}
.stage span {
display: block;
width: 60px;
height: 60px;
background-color: rgba(0, 0, 255, .5);
z-index: 20;
position: absolute;
color: #fff;
font-size: 50px;
line-height: 60px;
text-align: center;
margin-top: -30px;
}
#pre {
top: 140px;
left: -380px;
}
#next {
top: 140px;
right: -380px;
}
window.onload = function() {
var pre = document.getElementById('pre');
var next = document.getElementById('next');
var zhuang = document.getElementById('zhuang');
var lis = zhuang.getElementsByTagName('li');
var lock = false;
var classes = ['left2', 'left1', 'king', 'right1', 'right2', 'bench-warmer', 'bench-warmer', 'bench-warmer', 'bench-warmer'];
pre.onclick = function() {
// 在动画播放的时候将锁锁住,判断动画是否在播放,如果在播放,锁住,终止函数的执行用return,没播放就解锁,所以默认是解锁的;
// 一单击的时候就锁住动画, 所以单击的时候让lock = true;
if (lock == true) {
return;
}
// 锁定
lock = true;
setTimeout(function() {
lock = false;
}, 2000)
// 将classes的第一个取出来, 放在最后一个位置
var firstclass = classes.shift();
classes.push(firstclass);
console.log(classes);
// 然后将classes给相应的class
for (var i = 0; i < classes.length; i++) {
lis[i].className = classes[i];
}
}
next.onclick = function() {
// 在动画播放的时候将锁锁住,判断动画是否在播放,如果在播放,锁住,终止函数的执行用return,没播放就解锁,所以默认是解锁的;
// 一单击的时候就锁住动画, 所以单击的时候让lock = true;
if (lock == true) {
return;
}
// 锁定
lock = true;
setTimeout(function() {
lock = false;
}, 2000)
// var lastclass = classes.pop();
classes.unshift(classes.pop());
console.log(classes);
for (var i = 0; i < classes.length; i++) {
lis[i].className = classes[i];
}
}
}
<div class="stage">
<ul id="zhuang">
<li class="left2"><img src="data:images/50/1.jpg" alt=""></li>
<li class="left1"><img src="data:images/50/2.jpg" alt=""></li>
<li class="king"><img src="data:images/50/3.jpg" alt=""></li>
<li class="right1"><img src="data:images/50/4.jpg" alt=""></li>
<li class="right2"><img src="data:images/50/5.jpg" alt=""></li>
<li class="bench-warmer"><img src="data:images/50/6.jpg" alt=""></li>
<li class="bench-warmer"><img src="data:images/50/7.jpg" alt=""></li>
<li class="bench-warmer"><img src="data:images/50/8.jpg" alt=""></li>
<li class="bench-warmer"><img src="data:images/50/9.jpg" alt=""></li>
</ul>
<span id="pre"><</span>
<span id="next">></span>
</div>
利用css3实现3D轮播图的更多相关文章
- CSS3之3D轮播图
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 3d轮播图(另一种方式,可以实现的功能更为强大也更为灵活,简单一句话,比酷狗优酷的炫)
前不久我做了一个3d仿酷狗的轮播图,用的技术原理就是简单的jquery遍历+css样式读写. 这次呢,我们换一种思路(呵呵其实换汤不换药),看到上次那个轮播吗?你有没有发现用jquery的animat ...
- 3d轮播图——类似酷狗的轮播
说到轮播图,其实只要是跟web开发相关的无论是前端后端应该都不陌生,各种各样的轮播图,从以前的单纯的平面山水画遮盖滑动或滚动,到Jquery的animate甚至是h5+css3,各种炫酷的轮播图更是层 ...
- CSS3+JS切割轮播图
以下说明数据,是指有4张图片的轮播图,分别切割成4张. 首先,做成单张切换的立体效果,即通过旋转,确定四张图片的位置,分别是一个立方体的上下前后的图片翻转移动角度. .box ul li:nth-ch ...
- 小程序实现非swiper组件的自定义伪3D轮播图
效果如下: 我用了很笨的方法实现的,大致就是: 1.当前点击的div(view)如果前后都有内容,那么,当前div(view)就设置到中间,前一个就设置到左边,前一个的前面所有全部设置到最左边,后面一 ...
- 微信小程序 - 3d轮播图组件(基础)
<!-- 目前仅支持data数据源来自banner,请看测试案例 ################ 以上三种形式轮播: 1. basic 2. 3d 3. book basic即普通轮播 3d即 ...
- 微信小程序3D轮播图
<!-- 轮播图 --> <swiper previous-margin='50px' next-margin='50px' bindchange="swiperChang ...
- 插件-3D轮播图
先上效果图 查看实例点击 这里 这个栗子中,可以选择展示 5 张 或者展示 3 张,即使是只有一个slide,也可以完成布局,正常轮播,麻麻再也不用怕只有4个slid而不能用这种轮播啦! 本栗实现原 ...
- CSS3 实现简单轮播图
用css3动画实现图片切换效果,原理还是改变left值.只有最简单的自动播放功能,切换后短时间静止,通过最后的位置克隆第一张图片,实现无缝切换. html结构 <div id="con ...
随机推荐
- jq计算总时长
1: <style> .item { width: 500px; height: 50px; margin: 0 auto; text-align: center; font-size: ...
- 监督学习,无监督学习常用算法集合总结,引用scikit-learn库(监督篇)
why写这篇blog 最近在接触这方面的知识,但是找了许多的笔记,都感觉没有很好的总结出来,也正好当做是边学习,边复习着走.大佬轻喷.参考书目<python机器学习基础教程> 将分别从以下 ...
- 如何取消以太坊智能合约授权,防止被黑客盗取Token?
在小狐狸钱包(MetaMask)日常使用中,有一个细节可能很少人注意到,就是无论你登入什么网站,或者需要跟任何项目签订智能合约都要授权的步骤,这其中就会给黑客留下很多空子,特别是将一个Token用智能 ...
- git 回滚方式
git push 命用于从将本地的分支版本上传到远程并合并. 命令格式如下: git push <远程主机名> <本地分支名>:<远程分支名> 如果本地分支名与远程 ...
- ActiveMQ-5.9-笔记-02
- Mybatis中的基本对象的生命周期和作用域
不同作用域和生命周期类别是至关重要的,因为错误的使用会导致非常严重的并发问题 SqlSessionFactoryBuilder 这个类可以被实例化.使用和丢弃,一旦创建了 SqlSessionFact ...
- Nginx 陷阱和常见错误
Nginx 陷阱和常见错误 翻译自:https://www.nginx.com/resources/wiki/start/topics/tutorials/config_pitfalls/ 警告: 请 ...
- buu 相册 wp
调用c2 主要为nativemethod部分,调用外部函数 解压找到so库 字符串定位函数 getflag
- 修道士与野人问题(BFS广度搜索)
#include "iostream.h" #include "string.h" //定义一个状态节点 typedef struct //存储各个状态 { i ...
- async-validator 源码学习笔记(六):validate 方法
系列文章: 1.async-validator 源码学习(一):文档翻译 2.async-validator 源码学习笔记(二):目录结构 3.async-validator 源码学习笔记(三):ru ...