我用css3为好友胡歌的宝宝做了一个动画照片墙

news2024/9/23 3:29:26

软件人生风雨十年,仙剑一过去也有十年有余了,和胡歌认识那么久,今日喜闻好友胡歌生宝宝的消息,惊喜之余用css3为胡歌的宝宝做了动画照片墙的模板效果。

目录

1. 实现思路

2. 墙体的实现

3. 选取模板素材,进行图片元素布局

4. css3旋转定位

5. 鼠标上移的放大动画 

6. 完整源代码 

7. 最后


 

1. 实现思路

 首先通过设置一个div元素,设定宽高,为背景墙;

并且将背景墙的定位设定为relative,以便内部照片的旋转,以及定位;

内部照片可以找一些素材,再通过定位设定为absolute,而且这里要添加css3的旋转属性进行布局;

最后当鼠标上移到每个照片的时候,需要有一个放大的效果,为了更好的展示每一张照片。

2. 墙体的实现

需要设定一个div元素,添加wall的class类属性,并且为了定位内部的照片,定位属性采用position:relative,色值可以设定的喜庆一些,这里设定为一个#ccc的背景效果,代码如下:

// css部分
.wall {
   position: relative;
   width: 800px;
   height: 400px;
   background: #CCC;
}

<!-- html部分 -->
<div class="wall">
</div>

3. 选取模板素材,进行图片元素布局

可以去网上选取一些宝宝照素材,做模板嘛,大概选取几张就可以了,然后由于需要每张特殊定位,所以给每张图片(每个img元素都添加自己的clsss类),代码如下:

<div class="wall">
   <img src="./111.png" class="img1" />
   <img src="./222.png" class="img2" />
   <img src="./333.png" class="img3" />
   <img src="./444.png" class="img4" />
   <img src="./555.png" class="img5" />
   <img src="./666.png" class="img6" />
   <img src="./777.png" class="img7" />
</div>

4. css3旋转定位

接下来就是重要环节,给每个照片进行独特的定位,定位包括top left width height的设定,因为照片墙想要做的真实一些,所以会有一定的遮挡效果,而通过position:absolute的设定正好可以达到这个效果,如果你想让某一张显示在最上面,可以通过z-index再次设定,代码如下:

.img1 {
            position: absolute;
            top: 20px;
            left: 60px;
            width: 110px;
            height: 86px;
            transform: rotate(20deg);
        }
        .img2 {
            position: absolute;
            top: 20px;
            left: 222px;
            width: 143px;
            height: 118px;
            transform: rotate(-27deg);
        }
        .img3 {
            position: absolute;
            top: 78px;
            left: 430px;
            width: 190px;
            height: 148px;
            transform: rotate(58deg);
        }
        .img4 {
            position: absolute;
            top: 99px;
            left: 273px;
            width: 280px;
            height: 221px;
            transform: rotate(58deg);
        }
        .img5 {
            position: absolute;
            top: 174px;
            left: 73px;
            width: 237px;
            height: 210px;
            transform: rotate(135deg);
        }
        .img6 {
            position: absolute;
            top: 174px;
            left: 574px;
            width: 192px;
            height: 195px;
            transform: rotate(225deg);
        }
        .img7 {
            position: absolute;
            top: 39px;
            left: 618px;
            width: 134px;
            height: 133px;
            transform: rotate(10deg);
        }

5. 鼠标上移的放大动画 

既然是一种HTML + CSS3的动态照片墙,那么最好是可以有一个放大的效果,其实还有很多效果可以做,比如旋转一下,或者从某个地方淡入淡出一下,做的像个视频那样,这里做的是鼠标上移放大的效果,代码如下:

img:hover {
   transform: scale(2);
}

6. 完整源代码 

上面都是代码片段,为了可以让大家拿到代码就有个很好的效果,可以拿到下面的源代码,直接放到自己的记事本里,再将记事本的txt后缀改为html,再用浏览器打开就可以看效果了。源代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>照片墙</title>
    <style>
        * {
            margin: 0;
            padding: 0;
        }
        .wall {
            position: relative;
            width: 800px;
            height: 400px;
            background: #CCC;
        }
        .img1 {
            position: absolute;
            top: 20px;
            left: 60px;
            width: 110px;
            height: 86px;
            transform: rotate(20deg);
        }
        .img2 {
            position: absolute;
            top: 20px;
            left: 222px;
            width: 143px;
            height: 118px;
            transform: rotate(-27deg);
        }
        .img3 {
            position: absolute;
            top: 78px;
            left: 430px;
            width: 190px;
            height: 148px;
            transform: rotate(58deg);
        }
        .img4 {
            position: absolute;
            top: 99px;
            left: 273px;
            width: 280px;
            height: 221px;
            transform: rotate(58deg);
        }
        .img5 {
            position: absolute;
            top: 174px;
            left: 73px;
            width: 237px;
            height: 210px;
            transform: rotate(135deg);
        }
        .img6 {
            position: absolute;
            top: 174px;
            left: 574px;
            width: 192px;
            height: 195px;
            transform: rotate(225deg);
        }
        .img7 {
            position: absolute;
            top: 39px;
            left: 618px;
            width: 134px;
            height: 133px;
            transform: rotate(10deg);
        }
        img:hover {
            transform: scale(2);
        }
    </style>
</head>
<body>
    <div class="wall">
        <img src="./111.png" class="img1" />
        <img src="./222.png" class="img2" />
        <img src="./333.png" class="img3" />
        <img src="./444.png" class="img4" />
        <img src="./555.png" class="img5" />
        <img src="./666.png" class="img6" />
        <img src="./777.png" class="img7" />
    </div>
</body>

 

7. 最后

最后再次恭喜胡歌,他给我们带来了这么多优秀的作品,为他感到高兴,希望小宝宝可以快快乐乐成长。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/188267.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

虹科案例 | 石油天然气行业CFD高性能计算解决方案

公司简介 DNV GL 是全球领先的能源、石油和海事行业风险管理及资产绩效提升的软件供应商&#xff0c;主要为客户提供全面的风险管理和各类评估认证服务&#xff0c;认证涉及信息通信技术、汽车及航空天、食品与饮料、医疗等方面。 DNV GL以让世界更安全、更智能、更环保为使命…

随笔记——MQ

文章目录1、 概要2、 为什么使用MQ/使用MQ的好处&#xff1f;3、 使用MQ的缺点&#xff1f;4、 使用MQ会产生的问题及解决办法&#xff1f;4.1、如何保证消息的顺序性&#xff1f;4.2、如何解决消息被重复消费&#xff1f;4.3、如何解决消息丢失&#xff1f;4.4、如何解决消息积…

基于turtle实现的新冠疫情传播模拟 附完整代码可直接运行

代码运行视频参考:https://www.bilibili.com/video/BV1hR4y1h7Te/?spm_id_from=333.999.0.0&vd_source=8f3cf4ad6c08a40d40ca6809c9c9e8ca 高阶版运行结果展示

基于Android的家校互动系统app

需求信息&#xff1a; 功能需求: 1&#xff1a;发通知、发作业 发通知和发作业&#xff0c;是学校教师特有的功能&#xff0c;教师可以通过平台进行通知和作业的发放&#xff0c;每当发一条信息&#xff0c;该班的所有人员便可以收到来自服务器的信息推送&#xff0c;提醒家长打…

经济下行压力下的销售行业,将数据效益最大化方能立于不败之地

2022年9月&#xff0c;世界经济论坛发布《首席经济学家展望》报告&#xff0c;并指出“当前每10位经济学家中&#xff0c;就有7位认为全球经济发生了一定程度的衰退。” 在整体下行的经济环境中&#xff0c;由于销售人员会获悉客户削减预算&#xff0c;推迟采购&#xff0c;或…

mysql服务nginx和firewalld代理实现

文章目录环境准备nginx代理mysql服务linux防火墙实现mysql流量转发工作中常常遇到只有某个特定服务器才能访问数据库的情况&#xff0c;这个时候为了解决团队同时访问数据库的问题可以采用nginx代理和linux防火墙流量转发的方式解决。实战测试如下&#xff1a;环境准备 准备一…

做题关键点--位操作符

x |&#xff08;x1&#xff09;去掉从右开始的第一个0 a^a0&#xff0c;异或遵循交换律&#xff0c;即只要存在偶数个a&#xff0c;这部分结果为0. a^0a 与0异或为本身 寻找奇数_牛客题霸_牛客网 不用加减乘除做加法_牛客题霸_牛客网 二进制进行加法运算时与十进制的思路是…

Qt之QtConcurrent无需使用低级线程原语编写多线程

几个要点&#xff1a; 通过QtConcurrent::run()返回的QFuture不支持取消、暂停&#xff0c;返回的QFuture只能用于查询函数的运行/完成状态和返回值。 请注意&#xff1a;该函数可能不会立即运行; 函数只有在线程可用时才会运行。 导入模块 在 C API changes 有关于 Qt Concu…

Linux常用命令——rename命令

在线Linux命令查询工具(http://www.lzltool.com/LinuxCommand) rename 用字符串替换的方式批量改变文件名 补充说明 rename命令用字符串替换的方式批量改变文件名。 语法 rename(参数)参数 原字符串&#xff1a;将文件名需要替换的字符串&#xff1b; 目标字符串&#x…

GuLi商城-人人开源搭建前端项目

人人开源&#xff1a; 下载到本地并解压&#xff1a; VsCode打开解压好的项目&#xff1a; MAC安装Nodejs&#xff0c;略 参考&#xff1a;MAC(m1)-安装Nodejs_ZHOU_VIP的博客-CSDN博客 MAC打开终端&#xff1a; npm install类似maven下载所有的组件 报错&#xff1a; 解…

Vue基础10之插件、scoped与lang的样式

Vue基础10插件scoped与lang样式scopedlang样式安装lessless样式的使用总结插件 plugins.js: export default {install(Vue){console.log("Vue:",Vue)//全局过滤器Vue.filter(mySlice,function (value){return value.slice(0,5)})//定义全局指令Vue.directive(fbind,…

【数据结构】8.6 基数排序

文章目录基数排序定义基数排序算法基数排序算法分析基数排序定义 前述的各类排序方法都是建立在关键字啊比较的基础上&#xff0c;而分配类排序不需要比较关键字的大小&#xff0c;它是根据关键字中各位的值&#xff0c;通过对待排序记录进行若干趟分配与收集来实现排序的&…

微信小程序 Springboot卫生应急培训报名系统java

本文以微信开发者、Springboot框架、java为开发技术&#xff0c;实现了一个卫生应急培训小程序。卫生应急培训小程序的主要使用者分为管理员服务端和用户客户端&#xff0c;其中管理员服务端权限&#xff1a;首页、个人中心、用户管理、通知公告管理、在线学习管理、培训管理、…

中国电子学会2021年09月份青少年软件编程Python等级考试试卷一级真题(含答案)

青少年软件编程&#xff08;Python&#xff09;等级考试试卷&#xff08;一级&#xff09; 分数&#xff1a;100.00 题数&#xff1a;37 一、单选题&#xff08;共25题&#xff0c;每题2分&#xff0c;共50分&#xff09; 1. 取整除的运算符是&#xff1f;&#x…

每天一道大厂SQL题【Day02】

每天一道大厂SQL题【Day02】 大家好&#xff0c;我是Maynor。相信大家和我一样&#xff0c;都有一个大厂梦&#xff0c;作为一名资深大数据选手&#xff0c;深知SQL重要性&#xff0c;接下来我准备用100天时间&#xff0c;基于大数据岗面试中的经典SQL题&#xff0c;以每日1题…

nuxt.js项目搭建

nuxt[文档数据] https://www.xuanmo.xin/details/3240 nuxt文档:https://zhuanlan.zhihu.com/p/76703748 nuxt文档:https://www.cnblogs.com/chanwahfung/p/12899714.html axios:https://axios.nuxtjs.org/ 参考:https://www.w3cschool.cn/nuxtjs/nuxtjs-b4kl36fw.html 案例实现…

编程的GCRoot应该怎么去找?

本文导读 本文通过抛出一个编程的上帝视角问题&#xff0c;我们了解什么是编程的上帝视角&#xff0c;编程如何学习以及编程的root是什么&#xff0c;找到root之后&#xff0c;我们有如何利用上帝视角去解决编程中的推理。 一、编程的上帝视角 上帝视角乃是叙述视角中&#…

23.网络编程(一)

目录 一.网络编程 1.1 什么是网络编程 1.2 网络通信基本模式 1.3 网络通信三要素 1.4 IP地址 1.4.1 什么是IP地址 1.4.2 IP的常见分类 1.4.3 IP地址基本寻路 1.4.4 IP地址形式 1.4.5 IP常用命令&#xff08;在命令提示符窗口中使用&#xff09; 1.4.6 特殊IP地址 1…

Docker安装Postgresql

测试环境&#xff1a;Centos7.x docker1.13.1 postgres12本文使用的是在镜像仓库直接pull的方式&#xff0c;非Dockfile的方式。Postgresql的Dockerfile参考&#xff1a;https://github.com/docker-library/postgres/blob/master/12/alpine/Dockerfile常用命令docker命令大全…

MySQL的卸载

步骤1&#xff1a;停止MySQL服务 在卸载之前&#xff0c;先停止MySQL8.0的服务。右击“此电脑“&#xff0c;选择”管理“&#xff0c;可以在“服务”列表找到“MySQL8.0”的服务&#xff0c;如果现在“正在运行”状态&#xff0c;可以右键单击服务&#xff0c;选择“停止”选…