点评:这篇文章主要介绍了css3实现超立体3D图片侧翻倾斜效果,需要的朋友可以参考下
vg2HTML5中文学习网 - HTML5先行者学习网
vg2HTML5中文学习网 - HTML5先行者学习网
上午的时候我在jQuery论坛上看到网友分享的一款CSS3 3D图片侧翻倾斜特效,觉得效果非常棒,其实话说回来,这玩意儿的实现真的非常简单,主要是创意不错。先来看看效果图。vg2HTML5中文学习网 - HTML5先行者学习网
如何,看上去挺不错吧,倾斜、阴影,让一张很普通的图片变得如此霸气。vg2HTML5中文学习网 - HTML5先行者学习网
另外你也可以在这里查看DEMO演示,鼠标滑过图片时会出现这样的效果。vg2HTML5中文学习网 - HTML5先行者学习网
那么接下来我们分析一下源码吧,显示html代码,非常简单:vg2HTML5中文学习网 - HTML5先行者学习网
vg2HTML5中文学习网 - HTML5先行者学习网
<div onclick="">vg2HTML5中文学习网 - HTML5先行者学习网
<figure>vg2HTML5中文学习网 - HTML5先行者学习网
<figcaption>Autumn, by Lucien Agasse</figcaption>vg2HTML5中文学习网 - HTML5先行者学习网
</figure>vg2HTML5中文学习网 - HTML5先行者学习网
</div>vg2HTML5中文学习网 - HTML5先行者学习网
vg2HTML5中文学习网 - HTML5先行者学习网这里用了HTML5的 figure标签,表示插图,没什么特别。vg2HTML5中文学习网 - HTML5先行者学习网
然后是CSS代码:vg2HTML5中文学习网 - HTML5先行者学习网
vg2HTML5中文学习网 - HTML5先行者学习网
figure { vg2HTML5中文学习网 - HTML5先行者学习网
margin: 0;vg2HTML5中文学习网 - HTML5先行者学习网
width: 100%;vg2HTML5中文学习网 - HTML5先行者学习网
height: 29.5vw;vg2HTML5中文学习网 - HTML5先行者学习网
background: url("winter-hat.jpg");vg2HTML5中文学习网 - HTML5先行者学习网
background-size: 100%; vg2HTML5中文学习网 - HTML5先行者学习网
transform-origin: center bottom;vg2HTML5中文学习网 - HTML5先行者学习网
transform-style: preserve-3d;vg2HTML5中文学习网 - HTML5先行者学习网
transition: 1s transform;vg2HTML5中文学习网 - HTML5先行者学习网
}vg2HTML5中文学习网 - HTML5先行者学习网
figure figcaption { vg2HTML5中文学习网 - HTML5先行者学习网
width: 100%;vg2HTML5中文学习网 - HTML5先行者学习网
background: linear-gradient(rgba(0, 0, 0, 0.4), rgba(0, 0, 0, 0.4)), vg2HTML5中文学习网 - HTML5先行者学习网
url("winter-hat.jpg");vg2HTML5中文学习网 - HTML5先行者学习网
background-size: 100%; height: 50px;vg2HTML5中文学习网 - HTML5先行者学习网
background-repeat: no-repeat;vg2HTML5中文学习网 - HTML5先行者学习网
background-position: bottom;vg2HTML5中文学习网 - HTML5先行者学习网
color: #fff; vg2HTML5中文学习网 - HTML5先行者学习网
position: relative; top: 29.5vw;vg2HTML5中文学习网 - HTML5先行者学习网
transform-origin: center top;vg2HTML5中文学习网 - HTML5先行者学习网
transform: rotateX(-89.9deg);vg2HTML5中文学习网 - HTML5先行者学习网
font-size: 1.2vw;vg2HTML5中文学习网 - HTML5先行者学习网
font-family: Montserrat, Arial, sans-serif;vg2HTML5中文学习网 - HTML5先行者学习网
text-align: center;vg2HTML5中文学习网 - HTML5先行者学习网
line-height: 3;vg2HTML5中文学习网 - HTML5先行者学习网
}vg2HTML5中文学习网 - HTML5先行者学习网
figure:before {vg2HTML5中文学习网 - HTML5先行者学习网
content: '';vg2HTML5中文学习网 - HTML5先行者学习网
position: absolute; top: 0; left: 0;vg2HTML5中文学习网 - HTML5先行者学习网
width: 100%; height: 100%;vg2HTML5中文学习网 - HTML5先行者学习网
box-shadow: 0 0 100px 50px rgba(0, 0, 0, 0.1), inset 0 0 250px 250px rgba(0, 0, 0, 0.1);vg2HTML5中文学习网 - HTML5先行者学习网
transition: 1s;vg2HTML5中文学习网 - HTML5先行者学习网
transform: rotateX(95deg) translateZ(-80px) scale(0.75);vg2HTML5中文学习网 - HTML5先行者学习网
transform-origin: inherit;vg2HTML5中文学习网 - HTML5先行者学习网
}vg2HTML5中文学习网 - HTML5先行者学习网
vg2HTML5中文学习网 - HTML5先行者学习网这里我们定义了figure的背景图片,也就是我们要实现3d效果的那张图片。同时还定义了图片的描述信息样式,这样在图片侧翻后更加凸显立体效果。vg2HTML5中文学习网 - HTML5先行者学习网
接下来就是鼠标滑过的动画效果了:vg2HTML5中文学习网 - HTML5先行者学习网
vg2HTML5中文学习网 - HTML5先行者学习网
div:hover figure { vg2HTML5中文学习网 - HTML5先行者学习网
transform: rotateX(75deg) translateZ(5vw); vg2HTML5中文学习网 - HTML5先行者学习网
}vg2HTML5中文学习网 - HTML5先行者学习网
div:hover figure:before {vg2HTML5中文学习网 - HTML5先行者学习网
box-shadow: 0 0 25px 25px rgba(0, 0, 0, 0.5), inset 0 0 250px 250px rgba(0, 0, 0, 0.5);vg2HTML5中文学习网 - HTML5先行者学习网
transform: rotateX(-5deg) translateZ(-80px) scale(1);vg2HTML5中文学习网 - HTML5先行者学习网
}</p><p>@media screen and (max-width: 800px) {vg2HTML5中文学习网 - HTML5先行者学习网
div { width: 50%; } vg2HTML5中文学习网 - HTML5先行者学习网
figure { height: 45vw; } vg2HTML5中文学习网 - HTML5先行者学习网
figure figcaption { vg2HTML5中文学习网 - HTML5先行者学习网
top: 45vw;vg2HTML5中文学习网 - HTML5先行者学习网
font-size: 2vw;vg2HTML5中文学习网 - HTML5先行者学习网
} vg2HTML5中文学习网 - HTML5先行者学习网
}</p><p>@media screen and (max-width: 500px) {vg2HTML5中文学习网 - HTML5先行者学习网
div { vg2HTML5中文学习网 - HTML5先行者学习网
width: 80%; vg2HTML5中文学习网 - HTML5先行者学习网
margin-top: 1rem; vg2HTML5中文学习网 - HTML5先行者学习网
} vg2HTML5中文学习网 - HTML5先行者学习网
figure { vg2HTML5中文学习网 - HTML5先行者学习网
height: 70vw;vg2HTML5中文学习网 - HTML5先行者学习网
} vg2HTML5中文学习网 - HTML5先行者学习网
figure figcaption { vg2HTML5中文学习网 - HTML5先行者学习网
top: 70vw;vg2HTML5中文学习网 - HTML5先行者学习网
font-size: 3vw;vg2HTML5中文学习网 - HTML5先行者学习网
} vg2HTML5中文学习网 - HTML5先行者学习网
}vg2HTML5中文学习网 - HTML5先行者学习网
vg2HTML5中文学习网 - HTML5先行者学习网很容易可以看出这里利用了css3的transform属性,其中rotateX来翻转,translateZ来实现Z轴的3D转换,思路都非常清晰。
vg2HTML5中文学习网 - HTML5先行者学习网vg2HTML5中文学习网 - HTML5先行者学习网