css实现波浪线及立方体
最近的项目有做到要画出波浪线效果,这里是利用linear-gradient来实现,也就是画圆,然后利用底色来遮住部分圆;
利用css3属性perspective加旋转实现立方体
1.css实现波浪线
- html
<div class="card-list"> <div class="wave-container"> <div class="wave"></div> <!-- 实现波浪线的div --> <div class="wave-left-decorate"></div> <div class="wave-right-decorate"></div> </div> </div>
- css
.card-list{ display: flex; padding: 20px; width: 100%; } .wave-container{ position: relative; margin-right: 28px; width: 20%; } .wave{ width: 100%; height: 90px; background: linear-gradient(to right, rgb(85, 181, 255), rgb(207, 224, 232)); } /* 波浪线 */ .wave-left-decorate{ position: absolute; top: -4px; width: 90px; height: 8px; transform-origin: center left; transform: rotate(90deg); background: radial-gradient(circle, #fff 2px, #fff, transparent 3px, transparent 4px, transparent 4px, transparent); background-size: 8px 8px; }
- 效果图
2.实现立方体
- html文件
<div class="content"> <div class="leftContent"> <div class="leftContentItem"> <div class="itemImg"> <img class="leftContentImg" src="images/rabbit.jpg" alt=""/> <img class="leftContentImg" src="images/rabbit.jpg" alt=""/> <img class="leftContentImg" src="images/rabbit.jpg" alt=""/> <img class="leftContentImg" src="images/rabbit.jpg" alt=""/> <img class="leftContentImg" src="images/rabbit.jpg" alt=""/> <img class="leftContentImg" src="images/rabbit.jpg" alt=""/> </div> </div> </div> </div>
- css文件
.content{ position: relative; display: flex; margin: 0 auto; padding-top: 50px; width: 1200px; height: 380px; background: url(../images/bg2.jpg) no-repeat; background-size: 1200px 100%; } .content .leftContent{ margin-right: 25px; padding-left: 45px; padding-bottom: 30px; box-sizing: border-box; } /* 旋转的图片 */ .content .leftContent .leftContentItem{ width: 350px; height: 350px; /* 设置景深 */ perspective: 1000px; /* 设置背景颜色在中间为椭圆形 */ /*background: radial-gradient(ellipse at center, #430d6d 0%, #000 100%);*/ } .leftContent .leftContentItem .itemImg{ position: absolute; left: 20%; top: 20%; width: 200px; height: 200px; /* 实现3D呈现 */ transform-style: preserve-3d; transform: rotateX(-20deg) rotateY(-20deg); -webkit-animation: 6s imgRotate linear infinite; -o-animation: 6s imgRotate linear infinite; animation: 6s imgRotate linear infinite; } .leftContent .leftContentItem .itemImg *{ position: absolute; width: 100%; height: 100%; box-shadow: 0 0 25px rgba(0, 128, 0, .4); } .leftContentItem .itemImg .leftContentImg{ position: absolute; width: 100%; height: 100%; } /* 分别对各个面进行旋转、平移操作 */ .leftContentItem .itemImg .leftContentImg:nth-child(1){ transform: translateZ(100px); } .leftContentItem .itemImg .leftContentImg:nth-child(2){ transform: rotateX(180deg) translateZ(100px); } .leftContentItem .itemImg .leftContentImg:nth-child(3){ transform: rotateY(-90deg) translateZ(100px); } .leftContentItem .itemImg .leftContentImg:nth-child(4){ transform: rotateY(90deg) translateZ(100px); } .leftContentItem .itemImg .leftContentImg:nth-child(5){ transform: rotateX(90deg) translateZ(100px); } .leftContentItem .itemImg .leftContentImg:nth-child(6){ transform: rotateX(-90deg) translateZ(100px); } @-webkit-keyframes imgRotate { from{ transform: translateZ(-100px) rotateX(0) rotateY(0); } to{ transform: translateZ(-100px) rotateX(360deg) rotateY(360deg); } }
- 效果图
- 主要就是设置景深perspective,然后对每个面旋转、平移
正在努力学习中,若对你的学习有帮助,留下你的印记呗(点个赞咯^_^)
往期好文推荐:
- webpack打包(有面试题)
- 纯css实现瀑布流(multi-column多列及flex布局)
- 画三角形
- 判断ios和Android及PC端
相关推荐
oLaoJiang 2020-04-25
wangjie 2020-02-22
YichengGu 2016-03-25
yongjianluo 2016-03-14
rookieliang 2019-07-16
DaDomain 2019-06-21
mikean 2008-09-08
opspider 2018-07-18
learnpy 2018-07-02
Pythonjeff远 2018-06-19
通过原生JS,点击事件,鼠标按下、鼠标抬起和鼠标移动事件,实现3d立方体的拖动旋转,并将旋转角度实时的反应至界面上显示。<input type="text" class="xNum" value="&
zrj0 2016-06-12
TWaver可视化 2016-01-26
学习编程 2018-04-08
邢天的小木屋 2018-04-01
黑白漫文化 2018-01-02