http://blog.csdn.net/lmj623565791/article/details/32974051
强化下perspective和transform:translateZ的用法。传统的商品展示或许并不能很好的吸引用户的注意力,但是如果在展示中添加适当的3D元素,~说不定效果不错哈~
效果图:
说明一下:这个创意不是我想的,哈~模仿别人的,创意应该是w3cplus上的。当然了,重点是教大家如何做,就当高仿了~
首先,先教大家利用CSS3制作一个正方体:
在木有CSS前,这样的立方体,应该很难制作吧~嗯,我觉得很难~
html:
- <body>
- <div class="wapper">
- <div class="cube">
- <div class="side front">1</div>
- <div class="side back">6</div>
- <div class="side right">4</div>
- <div class="side left">3</div>
- <div class="side top">5</div>
- <div class="side bottom">2</div>
- </div>
- </div>
- </body>
wapper为此效果的舞台,即设置perspective的元素,如果多个元素共享一个舞台,那么从一个视线观察所以的元素的效果是不一样的,就相当我们正常情况下,站在一排倾斜成45度的门前面,每个门对于我们视线来说,角度是不同的;div#cube代表一个立方体,然后6个DIV分别代表每个面。
div#cube设置transform-style:preserve-3d,然后每个元素设置rotate和translateZ
现在所有的面重叠在同一个平面上,我们分别让:
font往前即Z轴方向移动半个边长(translateZ(50px))的距离即50px;
back先绕Y轴旋转180度,这样让字体是对外的,然后translateZ(50px),因为此时已经旋转了180度,所以tanslateZ是向下的,
同理,其他面分别绕X轴或者Y轴旋转90度,然后translateZ(50px)
CSS:
- .wapper
- {
- margin: 100px auto 0;
- width: 100px;
- height: 100px;
- -webkit-perspective: 1200px;
- font-size: 50px;
- font-weight: bold;
- color: #fff;
- }
- .cube
- {
- position: relative;
- width: 100px;
- -webkit-transform: rotateX(-40deg) rotateY(32deg);
- -webkit-transform-style: preserve-3d;
- }
- .side
- {
- text-align: center;
- line-height: 100px;
- width: 100px;
- height: 100px;
- background: rgba(255, 99, 71, 0.6);
- border: 1px solid rgba(0, 0, 0, 0.5);
- position: absolute;
- }
- .front
- {
- -webkit-transform: translateZ(50px);
- }
- .top
- {
- -webkit-transform: rotateX(90deg) translateZ(50px);
- }
- .right
- {
- -webkit-transform: rotateY(90deg) translateZ(50px);
- }
- .left
- {
- -webkit-transform: rotateY(-90deg) translateZ(50px);
- }
- .bottom
- {
- -webkit-transform: rotateX(-90deg) translateZ(50px);
- }
- .back
- {
- -webkit-transform: rotateY(-180deg) translateZ(50px);
- }
对于显示效果,可以调节perspective的距离~
好了,立方体理解了,那么这个商品展示就没什么难度了;两个DIV分别代表两个面,一个是图片,一个是介绍,初始时,介绍绕X轴先旋转90deg,然后当鼠标移动时,将整个盒子绕x轴旋转90deg即可。
HTML:
- <!DOCTYPE html>
- <html>
- <head>
- <title></title>
- <meta charset="utf-8">
- <link href="css/reset.css" rel="stylesheet" type="text/css">
- </head>
- <body>
- <ul id="content">
- <li>
- <div class="wrapper">
- <img src="images/a.png">
- <span class="information">
- <strong>Contact Form</strong> The easiest way to add a contact form to your shop.
- </span>
- </div>
- </li>
- <li>
- <div class="wrapper">
- <img src="images/b.jpeg">
- <span class="information">
- <strong>Contact Form</strong> The easiest way to add a contact form to your shop.
- </span>
- </div>
- </li>
- <li>
- <div class="wrapper">
- <img src="images/c.png">
- <span class="information">
- <strong>Contact Form</strong> The easiest way to add a contact form to your shop.
- </span>
- </div>
- </li>
- </ul>
- </body>
- </html>
CSS:
- <style type="text/css">
- body
- {
- font-family: Tahoma, Arial;
- }
- #content
- {
- margin: 100px auto 0;
- }
- #content li, #content .wrapper, #content li img, #content li span
- {
- width: 310px;
- height: 100px;
- }
- #content li
- {
- cursor: pointer;
- -webkit-perspective: 4000px;
- width: 310px;
- height: 100px;
- float: left;
- margin-left: 60px;
- /*box-shadow: 2px 2px 5px #888888;*/
- }
- #content .wrapper
- {
- position: relative;
- -webkit-transform-style: preserve-3d;
- -webkit-transition: -webkit-transform .6s;
- }
- #content li img
- {
- top: 0;
- border-radius: 3px;
- box-shadow: 0px 3px 8px rgba(0, 0, 0, 0.3);
- position: absolute;
- -webkit-transform: translateZ(50px);
- -webkit-transition: all .6s;
- }
- #content li span
- {
- background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, rgba(236, 241, 244, 1)), color-stop(100%, rgba(190, 202, 217, 1)));
- text-shadow: 1px 1px 1px rgba(255, 255, 255, 0.5);
- position: absolute;
- -webkit-transform: rotateX(-90deg) translateZ(50px);
- -webkit-transition: all .6s;
- display: block;
- top: 0;
- text-align: left;
- border-radius: 15px;
- font-size: 12px;
- padding: 10px;
- width: 290px;
- height: 80px;
- text-shadow: 1px 1px 1px rgba(255, 255, 255, 0.5);
- box-shadow: none;
- }
- #content li span strong
- {
- display: block;
- margin: .2em 0 .5em 0;
- font-size: 20px;
- font-family: "Oleo Script";
- }
- #content li:hover .wrapper
- {
- -webkit-transform: rotateX(95deg);
- }
- #content li:hover img
- {
- box-shadow: none;
- border-radius: 15px;
- }
- #content li:hover span
- {
- box-shadow: 0px 3px 8px rgba(0, 0, 0, 0.3);
- border-radius: 3px;
- }
- </style>
CSS基本在上面已经分析过了,这里说明一点,我们给没件商品弄了一个div.wapper看似是多余,其实不是,因为我们希望每个商品都是正常的90deg翻转,所以我们不能让所有的商品共享一个舞台,于是我们添加了一个div.wapper让他设置transform-style:preverse-3d,然后每个li分别设置舞台效果perspective。最终翻转效果实在div.wapper上。
好了,相信这几个例子,大家已经可以很好的使用perspective和translateZ创造一些很炫的立体效果,欢迎各位指点~
相关推荐
在"HTML5 CSS3 专题:3D展示商品信息项目完整实例源码"这个项目中,我们将深入探讨如何利用这两者来创建一个引人入胜的商品3D展示效果。 首先,HTML5引入了许多新的元素,如`<article>`、`<section>`、`<nav>`等,...
在本实例中,我们将深入探讨一个基于HTML5和CSS3的3D旋转木马效果相册,这是一个充满吸引力的图片展示方式,能够为用户带来独特的浏览体验。 3D旋转木马效果相册利用了CSS3的transform属性,尤其是rotateY()和...
本实例的3D立方体旋转动画,不仅展示了HTML5和CSS3的强大力量,也提供了丰富的学习资源,帮助开发者掌握现代网页设计的前沿技术。通过深入研究和实践这个例子,可以提升对3D效果的理解,为创建更具吸引力和交互性的...
总的来说,这个3D立方体旋转动画实例展示了HTML5和CSS3的强大能力,不仅可以创建引人入胜的视觉效果,还能提高用户交互体验。通过学习和实践此类项目,开发者可以提升自己在Web前端开发领域的技能,尤其是在网页动态...
这个“HTML5 + CSS3 实现 3d 室内布局源码”项目是一个很好的实例,展示了如何利用这两种技术来构建具有三维效果的室内设计展示。 首先,HTML5是超文本标记语言的最新版本,它引入了许多新的元素和功能,旨在提高...
此外,HTML5的`data-*`自定义属性可以用来存储与图片相关的信息,如旋转角度、缩放比例等,这些信息将在CSS3的动画中用到。 接着,CSS3的3D转换功能在这里发挥了关键作用。CSS3的`transform`属性允许对元素进行平移...
在这个“Html5+Css3-手机App实例”中,我们将深入探讨如何利用这两项技术构建适用于移动设备的App。 HTML5是超文本标记语言的第五个版本,相比之前的HTML4,它引入了许多新的元素、属性和API,旨在提升网页的互动性...
实例代码通常会展示如何有效地组合HTML5元素和CSS3属性,例如如何使用CSS3的变形(transform)、过渡(transition)和动画(animation)来创建动态效果,或者如何利用Flexbox或Grid布局创建复杂且灵活的网页结构。...
【CSS3D演示HTML】是关于使用CSS3的3D转换技术来创建具有立体效果的网页元素的示例。在现代网页设计中,CSS3D(CSS 3D)是一种强大的工具,它允许开发者通过纯CSS实现动态的、立体的视觉效果,无需依赖JavaScript...
html5+css3制造3D电影海报旋转轮播展示 html5+css3制造3D电影海报旋转轮播展示
这个实例对于学习和理解HTML5的拖放功能和File API非常有帮助,同时也展示了如何结合CSS3来提升用户体验。通过实践这个源码,开发者可以掌握无插件图片上传的核心技术,并将其应用到自己的项目中,为用户提供更友好...
传统的商品展示或许并不能很好的吸引用户的注意力,但是如果在展示中添加适当的3D元素,~说不定效果不错哈~ 效果图: 说明一下:这个创意不是我想的,哈~模仿别人的,创意应该是w3cplus上的。当然了,重点是教大家...
- 平铺展示:这种模式可能通过CSS3的3D变换让每本书的信息(如封面、作者名等)在平面上以立体的方式展开,用户可以通过鼠标交互来查看书籍的各个侧面。 - 书架展示:这个效果可能通过创建一个虚拟的3D空间,模拟...
在本实例中,我们将深入探讨如何使用HTML5和CSS3来实现一个具有视觉吸引力的进度条。进度条在网页中广泛应用,如文件上传、加载过程、任务进度指示等,能有效地向用户反馈操作状态。 首先,HTML5引入了一个新的元素...
**CSS3打造百度贴吧的3D翻牌效果完整实例源码** 在现代网页设计中,为了提升用户体验,各种视觉特效被广泛应用。其中,3D翻牌效果是一种极具吸引力的交互方式,常见于卡片式设计、轮播图或者展示类页面。本实例将...
在这个“HTML5+CSS3简单有趣的实例”压缩包中,包含了一些适合初学者入门和教学使用的项目,如日历、轮播图和模态弹窗等。这些实例将帮助学习者更好地理解HTML5的新特性以及CSS3的强大样式控制能力。 HTML5是超文本...
3D 足球队队员介绍,这个是采用CSS3技术实现的效果,HTML5 CSS3三维效果,使用本实例中的效果,使用了googleapis,还自定义了超多的JS类库,以足球场为核心,显示各队员头像,单击头像可显示该运动员信息,并以前峰...
在"HTML5+CSS3实现3d室内布局源码"这个项目中,我们可以深入探讨这两项技术如何应用于创建三维室内设计展示。 首先,HTML5作为新一代的超文本标记语言,引入了许多新特性,比如离线存储、拖放功能、媒体元素(audio...
在这个“HTML5 CSS3:canvas模拟实现电子彩票刮刮乐实例代码”中,我们将深入探讨如何利用Canvas API创建一个互动式的刮刮乐彩票效果。 首先,Canvas的基本用法是通过`<canvas>`标签在HTML文档中创建一个画布,然后...
HTML5、CSS3、3D效果以及JQuery的结合在现代网页设计中是常见的技术组合,它们能够创造出极具视觉吸引力的交互式用户体验。本项目利用这些技术实现了一个超酷的3D照片墙特效,适用于创建引人注目的照片库或展示区。 ...