CSS3带阴影的3D旋转作品展示
CSS3有太多实用、创新的网页交互效果,而今天跟大家介绍一个让人激动的3D图像旋转效果,使网页更加的生动、漂亮。
国外在HTML5/CSS3的技术上远比国内先进,大量的网站很早都已经使用最新的技术,国内使用HTML5/CSS3编写的网站数量也在增加,但由于兼容性的问题,让很多网站开发人员望而却步,新的技术普及的范围不大。而让人激动的3D效果更是少之又少,所以我们应该放弃对太老的、过时的浏览器兼容性的工作,这种做法也是鼓励用户安装最新版本的、高性能的浏览器,更好的体验HTML5/CSS3的优秀的特性。
随着浏览器的更新与性能的提升,不只CSS3的3D效果,相信更多的HTML5/CSS3的最新技术会融入到越来越多的网页中。
今天我们介绍的3D图像旋转效果,使用纯CSS3就可以实现,不需要js。用到新的CSS3样式都在代码中有注释,一起来看看:
1、HTML代码:
- <!-- 3D旋转图像 -->
- <article class="portfolio left">
- <div class="porthumb">
- <!-- 默认显示的图片 -->
- <img src="images/3d_001.jpg" alt="萨龙网络" />
- <!-- 默认显示的图片end -->
- <!-- 下面的四个空div是图片的描边效果 -->
- <div class="border-left"></div>
- <div class="border-top"></div>
- <div class="border-bottom"></div>
- <div class="border-right"></div>
- <!-- 下面的四个空div是图片的描边效果end -->
- <!-- 3D旋转后显示的内容 -->
- <div class="porcon"> <a href="https://salongweb.com/css3-3d-rotate.html" title="详细阅读 萨龙网络" target="_blank" class="portfolio-title"> 萨龙网络 </a> <a href="https://salongweb.com/css3-3d-rotate.html" rel="bookmark" target="_blank" title="详细阅读 萨龙网络">
- <p>完成时间:2014年1月18日<br />
- 企业类型:网站建设</p>
- </a> </div>
- <!-- 3D旋转后显示的内容end -->
- </div>
- </article>
- <!-- 3D旋转图像end -->
2、CSS3代码
- /*定义3D元素距视图的距离*/
- .portfolio{
- -webkit-perspective: 1200px;
- -moz-perspective: 1200px;
- -ms-perspective: 1200px;
- perspective: 1200px;
- /*perspective属性定义3D元素距视图的距离,只影响3D转换元素,而且本身不会受影响,其子元素会获得透视效果*/
- width: 500px;
- margin: 20px;
- }
- /*缩略图*/
- .porthumb {
- position:relative;
- -webkit-transform-style: preserve-3d;
- -moz-transform-style: preserve-3d;
- -ms-transform-style: preserve-3d;
- transform-style: preserve-3d;
- /*transform-style 属性规定如何在 3D 空间中呈现被嵌套的元素,被转换的子元素保留其3D转换*/
- -webkit-transition: 1s ease;
- -moz-transition: 1s ease;
- -ms-transition: 1s ease;
- -o-transition: 1s ease;
- transition: 1s ease;
- /*3D转换的时间为1秒*/;
- }
- .porthumb:after {
- content:' ';
- display:block;
- height:3vw;
- /* vw是移动设计备窗体单位*/
- -webkit-transform: rotateX(90deg);
- -moz-transform: rotateX(90deg);
- -ms-transform: rotateX(90deg);
- -o-transform: rotateX(90deg);
- transform: rotateX(90deg);
- background-image: radial-gradient(ellipse closest-side, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0) 100%);
- /* radial-gradient 是径向渐变 */;
- }
- .porthumb img{
- width: 500px;
- height: 281px;
- }
- /*自定义图片描边*/
- .border-top, .border-left, .border-bottom, .border-right {
- background-color: rgba(0, 0, 0, 0.5);
- display: block;
- position: absolute;
- }
- .border-top,.border-bottom {
- height: 6px;
- width: 500px;
- }
- .border-top {
- top: 0;
- }
- .border-bottom {
- top: 275px;
- }
- .border-left,.border-right {
- height: 269px;
- width: 6px;
- top: 6px;
- }
- .border-left {
- left: 0;
- }
- .border-right {
- rightright: 0;
- }
- /*内容*/
- .porcon {
- position:absolute;
- top:0;
- padding: 60px 0;
- line-height: 40px;
- width: 500px;
- height: 161px;
- text-align:center;
- opacity:.01;
- background:rgba(0,0,0,.4);
- -webkit-transform: rotateY(180deg) translateZ(1px);
- -moz-transform: rotateY(180deg) translateZ(1px);
- -ms-transform: rotateY(180deg) translateZ(1px);
- -o-transform: rotateY(180deg) translateZ(1px);
- transform: rotateY(180deg) translateZ(1px);
- /*沿着Y轴的3D旋转, 3D转换只用Z轴的值,将此元素反转180度,置于Z轴的背面。*/;
- }
- .portfolio-title{
- font-size: 20px;
- margin-bottom: 8px;
- font-family: 微软雅黑;
- }
- .porcon a{
- color: #fff;
- }
- .porcon a:hover{
- color: #fab210;
- }
- /*鼠标触发元素旋转与显示*/
- .portfolio:hover .porthumb{
- -webkit-transform: rotateY(180deg);
- -moz-transform: rotateY(180deg);
- -ms-transform: rotateY(180deg);
- -o-transform: rotateY(180deg);
- transform: rotateY(180deg);
- /*鼠标经过时,.porthumb元素沿着Y轴3D旋转180度,同时.porcon元素反转180度,透明度为1,所以把 默认显示的图像覆盖*/;
- }
- .portfolio:hover .porcon{
- opacity:1;
- }
[scbutton link="https://demo.salongweb.com/CSS3-3D/index.html" target="blank" variation="yellow"]在线演示[/scbutton][scbutton link="http://pan.baidu.com/s/1hqDTkJq" target="blank" variation="blue"]百度网盘下载(bewd)[/scbutton][successbox]3D图像旋转效果就介绍完成,不明白的可以给我留言,或下载演示文件,多看看就明白了。[/successbox]