HTML和CSS实现图片翻转效果

实现图片翻转,首先来分析一下我们希望实现的是怎样的翻转效果?又该如何去实现呢?

一、希望实现的效果

页面上的图片在光标悬停在上面的时候会发生翻转效果,翻转过后显示出背面的说明文字。

鼠标没有悬停在上面的效果

鼠标悬停在其中一张图片上的效果:

二、实现方法

每幅图片的翻转效果都是沿着Y轴进行反转的,可以是用3D变换来实现这种效果。下面来具体分析实现的各个步骤。

HTML结构部分:

1、首先将变换图片和文字放在一个父容器中,因为设置了五张图片所以需要五个父容器。这五个父容器又被放置在一个div(舞台)内进行变换。

2、在每个父容器里面有包含两个部分:(1) 正面显示的图片(2)背面的说明文字

3、最后采用层定位,让图片和文字部分出现叠加的效果,经过3D变换后面的文字就会被显示出来。

CSS样式部分

1、首先默认样式清零,规定图片(img)的宽高,为主体部分(body)设置背景颜色(这里的是#7a4390)

2、为最外面的"舞台"(.piclist),设置宽高和位置(垂直方向200px,水平方向上居中)。

3、设置父容器样式(.picbox),浮动定位排列一行,宽高和外边距,由于父元素里面包含需要变换的内容,要为其定义3D变换(transform-style:preseve-3d),变换完成时间1.5s;设置层定位的方式 相对定位

鼠标悬停在父容器上时发生绕Y轴的180°旋转

4、设置父容器里的内容(.box)图片和文字共同的效果,宽高。内容绝对定位

内容是绝对定位父元素相对定位,脱离文档流定位,失去原有的位置,从而发生堆叠效果

5、正面图片的样式(.front)边框、为了美观加入边框阴影。

6、背面文字样式(.back)背景颜色、边框、文字样式。设置初始状态下就翻转180°



下面是实现代码

HTML部分

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>图片翻转</title>
 6     <link rel="stylesheet" href="图片翻转.css">
 7 </head>
 8 <body>
 9     <div class="piclist">
10         <div class="picbox">
11             <div class="box front"><img src="wf1.jpg" alt=""></div>
12             <div class="box back"><h2>炫酷方块</h2></div>
13         </div>
14         <div class="picbox">
15             <div class="box front"><img src="wf2.jpg" alt=""></div>
16             <div class="box back"><h2>炫酷方块</h2></div>
17         </div>
18         <div class="picbox">
19             <div class="box front"><img src="wf4.jpg" alt=""></div>
20             <div class="box back"><h2>炫酷方块</h2></div>
21         </div>
22         <div class="picbox">
23             <div class="box front"><img src="wf5.jpg" alt=""></div>
24             <div class="box back"><h2>炫酷方块</h2></div>
25         </div>
26         <div class="picbox">
27             <div class="box front"><img src="wf6.jpg" alt=""></div>
28             <div class="box back"><h2>炫酷方块</h2></div>
29         </div>
30     </div>
31 </body>
32 </html>

CSS部分

 1 *{
 2     margin:0;
 3     padding:0;
 4 }
 5 body{
 6     background: #7a4390;
 7 }
 8 img{
 9     width:200px;
10     height:200px;
11 }
12 .piclist{
13     width:1200px;
14     height:400px;
15     margin:200px auto;
16 }
17 .picbox{
18     float:left;
19     width:200px;
20     height:200px;
21     margin:auto;
22     margin:10px;
23     position:relative;
24     /*父元素里面包含需要变换的内容,所以设置为3D变换*/
25     -webkit-transform-style: preserve-3d;
26     -moz-transform-style: preserve-3d;
27     -ms-transform-style: preserve-3d;
28     transform-style: preserve-3d;
29     transition:1.5s;
30     /*设置在1.5s内完成变换*/
31 }
32 .picbox:hover{
33     transform:rotateY(180deg);
34 }
35 .box{
36     width:200px;
37     height:200px;
38     position:absolute
39     }
40 .front{
41     border:2px solid #ddd;
42     box-shadow:10px 10px 10px #aaa;
43 }
44 .back{
45     -webkit-transform: rotateY(180deg);
46     -ms-transform: rotateY(180deg);
47     -o-transform: rotateY(180deg);
48     transform: rotateY(180deg);
49     background: #8b4373;
50     border:2px solid #ddd;
51 }
52 .back h2{
53     color: white;
54     text-align: center;
55 }

希望有所帮助~

原文地址:https://www.cnblogs.com/nyw1983/p/11381399.html

时间: 2024-10-13 23:12:35

HTML和CSS实现图片翻转效果的相关文章

用css实现图片翻转

<!doctype html><html><head><meta charset="utf-8"><title>用css实现图片翻转</title><script src="http://libs.baidu.com/jquery/1.11.3/jquery.min.js"></script><style>.flip-container { perspecti

css3 图片翻转效果

原文:css3 图片翻转效果 源代码下载地址:http://www.zuidaima.com/share/1571389560998912.htm 自己写的图片翻转的demo, 主要是css3的应用 里面就一个文件, 直接打开就可以了, 引用了在线的jquery, 图片也用data uri直接写在页面里了 版权声明:本文为博主原创文章,未经博主允许不得转载.

css实现图片裁切效果

原始图片: 效果如图: css: .box {        width: 150px;        padding: 3px;        border: 1px solid #e5e5e5;    } .img {        width: 150px;        height: 200px;        position: relative;        background: red;        overflow: hidden;    } .img img {    

css实现图片闪光效果

1.这个效果是看到京东商城上的一个下效果,原本的思路是 用js控制一个图片在某张需要闪光的图片上重复出现,但是 网上找了一些资料,竟然是用css写的,真是太帅了!!! 2.原理:在需要闪光的图片前添加before 属性:内容为空: 宽为200px,高为100%,left:-150px,overflow:hiddden; background属性设置为渐变:颜色看自己需要:transform-skewX(-25deg) 然后为before的content设置过渡动画:{left:150%,tran

使用JS实现图片翻转效果

.flip-container { perspective:1000px;/*设置假定人眼到投影平面的距离为1000px,只影响3D元素,不影响2D元素*/ width: 1300px; margin:0 auto;}.front,.back { width:400px; height:400px;}.flipper { width: 400px; height: 400px; border-radius: 50%; margin-left:10px; margin-bottom:120px;

html+css实现图片滑移效果

<strong><span style="font-size:12px;"><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>ChouTiZhanShi.html</title> <meta http-equiv="keywords" co

css hover图片hover效果兼容ie8

例子: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <style> *{ margin:0; padding:0; box-sizing:border-box; } .icon-img{ display: block; margin-top: 5px; w

CSS图片翻转动画技术详解

因为不断有人问我,现在我补充一下:IE是支持这种技术的!尽管会很麻烦.需要做的是旋转front和back元素,而不是旋转整个容器元素.如果你使用的是最新版的IE,可以忽略这一节.IE10+是支持的,IE9完全不支持CSS动画. CSS动画非常的有趣:这种技术的美就在于,通过使用很多简单的属性,你能创建出就连皮克斯动画制作公司也会赞叹的漂亮的消隐效果.其中代表性的一种就是CSS图片翻转效果,能让你看到一张卡片的正反两面上的内容.本文就是要用最简单的方法向大家介绍如何创建这种效果. 简单说明:这并不

10款基于jQuery实现的鼠标悬停九宫格图片延伸效果

<p><b>1.jQuery多张图片上下叠加切换插件</b></p><p>之前我们已经向大家分享过一款jQuery/CSS3洗牌效果的图片叠加切换应用,本文介绍的这款jQuery多张图片上下叠加切换插件也类似,我们可以将预先加载好的图片按不同的角度叠加起来,点击上下切换按钮时即可将图片上下切换至其他图片后面,效果非常不错.</p><p><img src="http://www.html5tricks.com