0


CSS 动画效果实现:图片展示与交互

​🌈个人主页:前端青山
🔥系列专栏:Css篇
🔖人终将被年少不可得之物困其一生

依旧青山,本期给大家带来Css篇专栏内容:CSS 动画效果实现:图片展示与交互

前言

在现代网页设计中,动态效果能够显著提升用户体验。本文将通过一个具体的例子,展示如何使用 CSS 实现图片展示与交互效果。我们将创建一个包含多个图片的布局,并通过 CSS 的

  1. transform

  1. transition

属性为图片添加动态效果。文章将分为以下几个部分:

  1. HTML 结构:介绍页面的基本结构。
  2. CSS 样式:详细解析每个 CSS 规则的作用。
  3. 动态效果:解释如何通过 CSS 实现图片的动态效果。
  4. 总结:回顾整个过程并提供进一步学习的建议。

HTML 结构

首先,我们来看一下页面的基本 HTML 结构。这个结构包含一个外层的

  1. .box

容器,内部有四个

  1. .bigbox

容器,每个容器内包含多张图片。

  1. html<!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <title>CSS 动画效果实现:图片展示与交互</title>
  8. <link rel="stylesheet" href="css/reset.css">
  9. <link rel="stylesheet" href="css/work.css">
  10. </head>
  11. <body>
  12. <div class="box">
  13. <div class="bigbox">
  14. <img src="img/con1-1.jpg" alt="">
  15. <img src="img/con1-2.jpg" alt="">
  16. <img src="img/con1-3.jpg" alt="">
  17. <img src="img/con1-4.jpg" alt="">
  18. <img src="img/con1-5.jpg" alt="">
  19. <img src="img/con1-6.jpg" alt="">
  20. </div>
  21. <div class="bigbox">
  22. <img src="img/con2-1.jpg" alt="">
  23. <img src="img/con2-2.jpg" alt="">
  24. <img src="img/con2-3.jpg" alt="">
  25. <img src="img/con2-4.jpg" alt="">
  26. <img src="img/con2-5.jpg" alt="">
  27. <img src="img/con2-6.jpg" alt="">
  28. </div>
  29. <div class="bigbox">
  30. <img src="img/con3-1.jpg" alt="">
  31. <img src="img/con3-2.jpg" alt="">
  32. <img src="img/con3-3.jpg" alt="">
  33. <img src="img/con3-4.jpg" alt="">
  34. <img src="img/con3-5.jpg" alt="">
  35. <img src="img/con3-6.jpg" alt="">
  36. </div>
  37. <div class="bigbox pic">
  38. <img src="img/con4-1.jpg" alt="" class="pic1">
  39. <img src="img/con4-2.jpg" alt="">
  40. <img src="img/con4-3.jpg" alt="">
  41. </div>
  42. </div>
  43. </body>
  44. </html>

CSS 样式

接下来,我们详细解析每个 CSS 规则的作用。

基本样式重置
  1. html, body, h1, h2, h3, h4, h5, h6, div, ul, ol, li, dl, dt, dd, p {
  2. margin: 0;
  3. padding: 0;
  4. }
  5. ul, ol, li {
  6. list-style: none;
  7. }
  8. a {
  9. text-decoration: none;
  10. color: #333;
  11. }
  12. img, input, select, iframe, select {
  13. vertical-align: middle;
  14. }
  15. .fl {
  16. float: left;
  17. }
  18. .fr {
  19. float: right;
  20. }
  21. .clear::after {
  22. content: "";
  23. display: block;
  24. clear: both;
  25. }
  26. input, select, textarea {
  27. outline: none;
  28. border: none;
  29. }

这些规则主要用于重置浏览器默认的样式,确保页面在不同浏览器中表现一致。

容器样式
  1. css.box {
  2. width: 1200px;
  3. margin: 0 auto;
  4. box-sizing: border-box;
  5. }
  6. .bigbox {
  7. width: 500px;
  8. height: 390px;
  9. background: url(../img/bg.jpg);
  10. position: relative;
  11. overflow: hidden;
  12. float: left;
  13. margin: 10px 10px;
  14. }
  1. .box

是外层容器,宽度为 1200px 并居中显示。

  1. .bigbox

是每个图片容器,宽度为 500px,高度为 390px,背景图设置为

  1. bg.jpg

,并使用

  1. position: relative

以便其子元素可以进行绝对定位。

图片样式
  1. .bigbox > img:first-child {
  2. width: 400px;
  3. height: 300px;
  4. position: absolute;
  5. left: 30px;
  6. top: 40px;
  7. transform-origin: 0 0;
  8. transition: all 1s;
  9. }
  10. .bigbox:hover > img:first-child {
  11. transform: scale(0.7);
  12. }

第一个图片的初始位置在左上角,宽度为 400px,高度为 300px。当鼠标悬停在

  1. .bigbox

上时,图片会缩小到 0.7 倍大小。

  1. .bigbox > img:nth-child(2) {
  2. width: 130px;
  3. height: 94px;
  4. position: absolute;
  5. right: 30px;
  6. top: -100px;
  7. transition: all 1s;
  8. }
  9. .bigbox:hover > img:nth-child(2) {
  10. width: 130px;
  11. height: 94px;
  12. position: absolute;
  13. right: 30px;
  14. top: 39px;
  15. }

第二个图片的初始位置在右上角,宽度为 130px,高度为 94px。当鼠标悬停在

  1. .bigbox

上时,图片会移动到新的位置。

其他图片的样式类似,通过

  1. nth-child

选择器分别设置不同的初始位置和悬停效果。

特殊图片样式
  1. .pic > img:first-child {
  2. width: 300px;
  3. height: 330px;
  4. }
  5. .pic:hover > img:first-child {
  6. transform: scale(0.8);
  7. }
  1. .pic

容器中的第一张图片在初始状态下宽度为 300px,高度为 330px。当鼠标悬停在

  1. .pic

上时,图片会缩小到 0.8 倍大小。

  1. .pic > img:nth-child(2) {
  2. width: 120px;
  3. height: 135px;
  4. top: -198px;
  5. left: 500px;
  6. position: absolute;
  7. }
  8. .pic:hover > img:nth-child(2) {
  9. width: 120px;
  10. height: 135px;
  11. position: absolute;
  12. top: 30px;
  13. left: 330px;
  14. }

第二张图片的初始位置在右上角,宽度为 120px,高度为 135px。当鼠标悬停在

  1. .pic

上时,图片会移动到新的位置。

其他图片的样式类似,通过

  1. nth-child

选择器分别设置不同的初始位置和悬停效果。

动态效果

通过

  1. transform

  1. transition

属性,我们可以轻松地为图片添加动态效果。

  1. transform

属性用于改变元素的形状、大小或位置,而

  1. transition

属性用于定义过渡效果的时间和方式。

例如,当鼠标悬停在

  1. .bigbox

上时,第一张图片会缩小到 0.7 倍大小,其他图片会移动到新的位置。这些效果通过

  1. transform

  1. transition

属性实现,使得页面更加生动有趣。

总结

本文通过一个具体的例子,展示了如何使用 CSS 实现图片展示与交互效果。通过合理的 HTML 结构和详细的 CSS 样式,我们可以为页面添加丰富的动态效果,提升用户体验。希望本文对您有所帮助,如果您想进一步学习 CSS 动画效果,可以查阅相关的文档和教程。


本文转载自: https://blog.csdn.net/2302_76329106/article/details/144233246
版权归原作者 前端青山 所有, 如有侵权,请联系我们删除。

“CSS 动画效果实现:图片展示与交互”的评论:

还没有评论