飞道的博客

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

430人阅读  评论(0)

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

目录

1. 实现思路

2. 墙体的实现

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

4. css3旋转定位

5. 鼠标上移的放大动画 

6. 完整源代码 

7. 最后


1. 实现思路

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

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

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

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

2. 墙体的实现

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


  
  1. // css部分
  2. .wall {
  3. position: relative;
  4. width: 800px;
  5. height: 400px;
  6. background: #CCC;
  7. }
  8. <!-- html部分 -->
  9. < div class="wall">
  10. </ div>

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

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


  
  1. <div class="wall">
  2. <img src="./111.png" class="img1" />
  3. <img src="./222.png" class="img2" />
  4. <img src="./333.png" class="img3" />
  5. <img src="./444.png" class="img4" />
  6. <img src="./555.png" class="img5" />
  7. <img src="./666.png" class="img6" />
  8. <img src="./777.png" class="img7" />
  9. </div>

4. css3旋转定位

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


  
  1. .img1 {
  2. position: absolute;
  3. top: 20px;
  4. left: 60px;
  5. width: 110px;
  6. height: 86px;
  7. transform: rotate( 20deg);
  8. }
  9. .img2 {
  10. position: absolute;
  11. top: 20px;
  12. left: 222px;
  13. width: 143px;
  14. height: 118px;
  15. transform: rotate(- 27deg);
  16. }
  17. .img3 {
  18. position: absolute;
  19. top: 78px;
  20. left: 430px;
  21. width: 190px;
  22. height: 148px;
  23. transform: rotate( 58deg);
  24. }
  25. .img4 {
  26. position: absolute;
  27. top: 99px;
  28. left: 273px;
  29. width: 280px;
  30. height: 221px;
  31. transform: rotate( 58deg);
  32. }
  33. .img5 {
  34. position: absolute;
  35. top: 174px;
  36. left: 73px;
  37. width: 237px;
  38. height: 210px;
  39. transform: rotate( 135deg);
  40. }
  41. .img6 {
  42. position: absolute;
  43. top: 174px;
  44. left: 574px;
  45. width: 192px;
  46. height: 195px;
  47. transform: rotate( 225deg);
  48. }
  49. .img7 {
  50. position: absolute;
  51. top: 39px;
  52. left: 618px;
  53. width: 134px;
  54. height: 133px;
  55. transform: rotate( 10deg);
  56. }

5. 鼠标上移的放大动画 

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


  
  1. img :hover {
  2. transform: scale( 2);
  3. }

6. 完整源代码 

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


  
  1. <!DOCTYPE html>
  2. < html lang="en">
  3. <head>
  4. <meta charset="UTF- 8">
  5. <title>照片墙</title>
  6. <style>
  7. * {
  8. margin: 0;
  9. padding: 0;
  10. }
  11. .wall {
  12. position: relative;
  13. width: 800px;
  14. height: 400px;
  15. background: #CCC;
  16. }
  17. .img1 {
  18. position: absolute;
  19. top: 20px;
  20. left: 60px;
  21. width: 110px;
  22. height: 86px;
  23. transform: rotate( 20deg);
  24. }
  25. .img2 {
  26. position: absolute;
  27. top: 20px;
  28. left: 222px;
  29. width: 143px;
  30. height: 118px;
  31. transform: rotate(- 27deg);
  32. }
  33. .img3 {
  34. position: absolute;
  35. top: 78px;
  36. left: 430px;
  37. width: 190px;
  38. height: 148px;
  39. transform: rotate( 58deg);
  40. }
  41. .img4 {
  42. position: absolute;
  43. top: 99px;
  44. left: 273px;
  45. width: 280px;
  46. height: 221px;
  47. transform: rotate( 58deg);
  48. }
  49. .img5 {
  50. position: absolute;
  51. top: 174px;
  52. left: 73px;
  53. width: 237px;
  54. height: 210px;
  55. transform: rotate( 135deg);
  56. }
  57. .img6 {
  58. position: absolute;
  59. top: 174px;
  60. left: 574px;
  61. width: 192px;
  62. height: 195px;
  63. transform: rotate( 225deg);
  64. }
  65. .img7 {
  66. position: absolute;
  67. top: 39px;
  68. left: 618px;
  69. width: 134px;
  70. height: 133px;
  71. transform: rotate( 10deg);
  72. }
  73. img :hover {
  74. transform: scale( 2);
  75. }
  76. </style>
  77. </head>
  78. < body>
  79. < div class="wall">
  80. < img src="./ 111 .png" class="img1" />
  81. < img src="./ 222 .png" class="img2" />
  82. < img src="./ 333 .png" class="img3" />
  83. < img src="./ 444 .png" class="img4" />
  84. < img src="./ 555 .png" class="img5" />
  85. < img src="./ 666 .png" class="img6" />
  86. < img src="./ 777 .png" class="img7" />
  87. </ div>
  88. </ body>

 

7. 最后

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


转载:https://blog.csdn.net/xingyu_qie/article/details/128819150
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场