使用CSS写正方体,结合JS实现3D轮播图
立体轮播图
- 代码+界面呈现
HTML
<div class="pox"><ul class="box"><li class="one"><img src="./img/img1.jpg" alt=""></li><li class="two"><img src="./img/img2.jpg" alt=""></li><li class="three"><img src="./img/img3.jpg" alt=""></li><li class="four"><img src="./img/img4.jpg" alt=""></li><li class="five"><img src="./img/img5.jpg" alt=""></li><li class="six"><img src="./img/img6.jpg" alt=""></li></ul></div>
CSS
body,html,div,ul,li {margin: 0;padding: 0;}.pox{position: relative;perspective: 1600px;border: 1px solid #000;margin: 0 auto;width: 300px;height: 300px;}.box {height: 300px;margin: 0 auto;position: relative;transform-style: preserve-3d;width: 300px;transition: 2s;}.box>li {width: 300px;height: 300px;list-style: none;text-align: center;line-height: 300px;font-size: 30px;position: absolute;}.box>li>img {width: 300px;height: 300px;}.one {background: rgba(255, 0, 5, 0.3);transform: translateZ(150px);}.two {background: rgba(220, 104, 44, 0.3);transform: rotateY(90deg) translateZ(150px);}.three {background: rgba(255, 239, 0, 0.3);transform: translateZ(-150px) rotate(180deg);}.four {background: rgba(86, 255, 0, 0.3);transform: rotateY(-90deg) translateZ(150px);}.five {background: rgba(0, 76, 255, 0.3);transform: rotateX(90deg) translateZ(150px);}.six {background: rgba(168, 0, 255, 0.3);transform: rotateX(-90deg) translateZ(150px);}
效果:如下图的一个正方体
调整为轮播图需要添加JS部分:效果每间隔3s中会轮播一次,为什么是3s因为正方体每次旋转的时间用去了2s
function scroll() {var time = 90;var num = 0;setInterval(function () {num++$('.box').css({ "transform": "rotateY(" + time*num + "deg)" })}, 5000)
}
scroll()
知识点:
- 布局:
1.外层标签.pox:第一个div(.pox)使用了perspective:1600px
属性来实现景深
,同时设置一个基准平面作为参照——观察者距离距离z=0平面的距离,如果正方体的面都是透明的,那么会有可透视的效果,如果z>0,元素看起来会比正常要偏大,反之则偏小
2.外层标签.box:第二个div(.box)保留3d效果,transform-style: preserve-3d
3.内层的6个li标签则分别是正方体的6个面,主要通过旋转和位移调整
- 关于translate()
需要注意的是该属性的X,Y,Z轴始终是针对元素当前的位置来说的
,什么意思?例如:对于正对观察者的元素,垂直屏幕的轴就是Z轴,但是如果该元素围绕Y轴旋转了90deg之后,那么相对于该元素来讲,Z轴就变成平行屏幕的方向了。这点掌握了,就可以轻松写立体图形了
使用CSS写正方体,结合JS实现3D轮播图相关推荐
- html图片3djs轮播,原生js实现3D轮播图
3D轮播图是我做过复杂的图片轮播了,由于是利用坐标,层级之间的关系,所以实现起来原理比较简单但是bug巨多,在推推拖拖了好久后,下定决心重新整理成博客,与大家分享! 首先分析一下3D图片轮播的功能需求 ...
- 用原生JS实现3D轮播效果
用原生JS实现3D轮播效果 实现思路: 先实现无缝轮播效果 添加3D效果 完善代码 增加自动轮播效果 效果如下: 视图中显示3张图片,并通过CSS的透视和旋转实现3D效果,当无任何操作时,图片自动循环 ...
- 1.Web前端之CSS3中3D立方体以及3D轮播图
1.3D坐标系 3D坐标可以用左手来模拟,其中大拇指方向默认是X轴正方向,食指方向是Y轴正方向,中指方向是Z轴正方向.注意:当设置transform:rotateX(90deg)时,相当于将X轴转动9 ...
- css3轮播不用jpuery_js和CSS3 3D轮播图
这是一款js和CSS3 3D轮播图.这组3D轮播图中,共演示了6种轮播图效果.这些3D轮播图都是通过简单的JS代码配合CSS3来完成的. 使用方法 HTML结构 以8张图片的3D轮播图为例,它的基本H ...
- 微信小程序实现3D轮播图
在写微信小程序时,有写到实现3D轮播图的效果,可以直接使用微信小程序中自带的组件swiper来实现 效果图如下: 1.swiper的相关属性 indicator-dots 是否显示小圆点,也可以自己重 ...
- 微信小程序3D轮播图实现
好久没有写博客了,前段时间换了家公司,做了两个多星期,完成了一款app的开发, 公司没有app的需求了,我们几个移动端Android和IOS都转岗开发微信小程序,由于刚接触小程序不到两周,技术还是基于 ...
- 原生js进阶版轮播图实现(走马灯效果,无缝衔接)
原生js进阶版轮播图实现(走马灯效果,无缝衔接) 利用原生js手写一个轮播图,是上一篇文章的简易版的一个进阶,本次轮播图主要是利用定位和定时器实现了走马灯效果,并且是左右轮播.实现过程与代码也是很简单 ...
- 小程序实现3D轮播图效果
小程序通过swiper标签实现3D轮播图效果 一.效果图 二.代码块 1.html <view wx:if="{{slideList.length>0}}" class ...
- javaScript小案例------js实现无缝轮播图效果篇
原生js书写无缝轮播图 javaScript无缝轮播图思路及源码 无缝轮播图效果 总体思路 下面附上代码: html css animate.js index.js javaScript无缝轮播图思路 ...
最新文章
- java基础之继承补充和抽象类
- unbuntu server (linux系统)下面安装 lamp
- android 高清壁纸设置慢
- StackOverflow 每月5.6亿PV,但只用25台服务器
- php long2ip,php 中IPV6 ip2long的问题解决办法
- 《你的灯亮着吗》阅读笔记(三)
- 就业信息网进行服务器维护,服务器安全武汉大学黄石理工学院就业信息网.pptx...
- 全网史上最全IT,人工智能,网页开发资料免费送;新时代人人都需要的资料,不看后悔
- 如何写好学术期刊文章?
- C++_类和对象_C++多态_多态的原理剖析---C++语言工作笔记070
- Mac 下svn客户端安装
- 自己做量化交易软件(28)小白量化实战2--变红买入变绿卖出
- 安卓执法仪录像之进程间共享内存
- 魔方自动还原程序3D版本和2D 修正版
- Exchange 常见问题之十
- 在SimpleITK形式下,将RAS和IJK坐标系互转
- 深度原创丨揭开工业互联网看不见的手:从MindSphere+Mendix谈起
- 鸿蒙系统是开放系统还是封闭系统,鸿蒙系统三挑战:应用如何兼容,生态怎么搭建,开放还是闭合...
- VINS-Mono中的边缘化与滑窗 (2)—— 边缘化最老帧
- showdoc mysql版_ShowDoc上手
热门文章
- 计算机内存条如何区分频率,Win7怎么看内存条频率,教您查看方法
- android 蓝牙打印 js,Native.js 安卓连接蓝牙打印机【可连续打印】
- 2020第十一届蓝桥杯C/C++国赛B组
- android 读build.prop,Android系统下的build.prop文件
- 今天起,上海用户可以用滴滴App免费打无人车了
- JAVA:Java Swing 练习题
- 带有神经网络的梯度消失(Vanishing gradients with RNNs)
- 十字隧道工程盾构机穿过马骝洲水道
- LintCode_新手必编程50题(1-3阶段)解答与分析
- 前端UI框架横向对比