如何使用css3实现照片墙?

首先做出来的效果是怎么样的呢?
主要使用css3来实现旋转、缩放、阴影、动画等。静态的效果是这样的。



当鼠标移动到某张图片的时候,那张图片就会显示在其他图片上方,并且旋转角度变为0度(即显示在水平方向),并且放大倍数然后添加阴影效果。

技术点分析

1、使用transform属性来实现旋转和缩放功能
2、使用border-shadow属性来实现阴影功能
3、使用transform属性来实现动画效果(就是设置图片样式改变的过渡时间等)
4、使用绝对定位来定位每张照片的位置

ps:使用transform和transition时要注意浏览器兼容问题,所以应该这么写

-webkit-transform:rotate(0deg) scale(1.20); 
-moz-transform:rotate(0deg) scale(1.20); 
transform:rotate(0deg) scale(1.20); 

制作步骤

1、每张照片的位置是不一样的,设置不同的top、left
2、每张照片有一定的旋转角度,设置不同的旋转角度
3、照片阴影及缓慢旋转、缓慢放大等特效制作

html源码(图片src自己修改)

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <link href="css/main.css" type="text/css" rel="stylesheet">
    <title>CSS3 transform旋转特效</title>
</head>

<body>
    <h1>CSS3照片墙</h1>
    <div class="container">
        <img class="pic1" src="images/mm1.jpg">
        <img class="pic2" src="images/mm2.jpg">
        <img class="pic3" src="images/mm3.jpg">
        <img class="pic4" src="images/mm4.jpg">
        <img class="pic5" src="images/mm5.jpg">
        <img class="pic6" src="images/mm6.jpg">
        <img class="pic7" src="images/mm7.jpg">
        <img class="pic8" src="images/mm8.jpg">
        <img class="pic9" src="images/mm9.jpg">
        <img class="pic10" src="images/mm10.jpg">
    </div>
</body>
</html>

css源码

body{
    background-color:#eee;
}

h1{
    text-align:center;
}

.container{
    width:960px; 
    height:450px; 
    margin:60px auto; 
    position:relative;
}

.container img{
    padding:10px 10px 15px; 
    background:white; 
    border:1px solid #ddd; 
    box-shadow:2px 2px 3px rgba(50, 50, 50, 0.4);
    -webkit-transition:all 0.5s ease-in;
    -moz-transition:all 0.5s ease-in;
    transition:all 0.5s ease-in; 
    position:absolute; 
    z-index:1;
}

.container img:hover{
    box-shadow:15px 15px 20px rgba(50, 50, 50, 0.4); 
    -webkit-transform:rotate(0deg) scale(1.20); 
    -moz-transform:rotate(0deg) scale(1.20); 
    transform:rotate(0deg) scale(1.20); 
    z-index:2;
}

.pic1{
    left: 400px; 
    top: 0; 
    -webkit-transform: rotate(-5deg); 
    -moz-transform: rotate(-5deg); 
    transform: rotate(-5deg);
}

.pic2{
    top: 0; 
    left: 600px; 
    -webkit-transform: rotate(-20deg); 
    -moz-transform: rotate(-20deg); 
    transform: rotate(-20deg);
}

.pic3
{
    bottom: 0; 
    right: 0; 
    -webkit-transform: rotate(5deg); 
    -moz-transform: rotate(5deg); 
    transform: rotate(5deg);
}
    
.pic4
{
    bottom:0; 
    left:300px; 
    -webkit-transform: rotate(-10deg); 
    -moz-transform: rotate(-10deg); 
    transform: rotate(-10deg);
}

.pic5
{
    bottom: 0; 
    left: 0; 
    -webkit-transform: rotate(-10deg); 
    -moz-transform: rotate(-10deg); 
    transform: rotate(-10deg);
}

.pic6
{
    top: 0; 
    left:0; 
    -webkit-transform: rotate(10deg); 
    -moz-transform: rotate(10deg); 
    transform: rotate(10deg);
}

.pic7
{
    top: 0; 
    left: 850px; 
    -webkit-transform: rotate(20deg); 
    -moz-transform: rotate(20deg); 
    transform: rotate(20deg);
}

.pic8
{
    bottom: -20px; 
    right: 630px; 
    -webkit-transform: rotate(5deg); 
    -moz-transform: rotate(5deg); 
    transform: rotate(5deg);
}

.pic9
{
    top: 90px; 
    left: 550px; 
    -webkit-transform: rotate(15deg); 
    -moz-transform: rotate(15deg); 
    transform: rotate(15deg);
}

.pic10
{
    left:180px; 
    top:20px; 
    -webkit-transform: rotate(-10deg); 
    -moz-transform: rotate(-10deg); 
    transform: rotate(-10deg);
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 各种纯css图标 CSS3可以实现很多漂亮的图形,我收集了32种图形,在下面列出。直接用CSS3画出这些图形,要比...
    剑残阅读 9,768评论 0 8
  • 选择qi:是表达式 标签选择器 类选择器 属性选择器 继承属性: color,font,text-align,li...
    love2013阅读 2,355评论 0 11
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,300评论 4 61
  • Core Animation其实是一个令人误解的命名。你可能认为它只是用来做动画的,但实际上它是从一个叫做Laye...
    小猫仔阅读 3,862评论 1 4
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 174,638评论 25 709