WEB第三次作业

瀑布流效果图

image.png

联想截图_20250429170034.png

总结

效果炫酷,但是图片文件名如果没有规律该怎么办,改文件名有点麻烦

代码实现

<!DOCTYPE html>
<html lang="en">
<head>
   <meta charset="UTF-8">
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   <title>Document</title>
   <style>
       *{
           margin: 0;
           padding: 0;
           box-sizing: border-box;/*处理公共样式*/
           position: relative;
       }
       .container{
       width: 98%;
       margin: 0 auto;
       }
       .outer{
           position: absolute;
           width: 210px;
           height: auto;
           padding: 5px;/*存放每张照片的容器*/
           transition: .5s all;
       }
       .inner{
           border: solid 1px #333;
           border-radius: 8px;
           padding: 5px;/*与每一张图片尺寸相同的容器*/
       }
       img{
           width: 188px;
           height: auto;
           vertical-align: bottom;/*垂直居中,底部对齐,图片特有的样式*/
           border-radius: 5px;
       }
   </style>
</head>
<body>
  <div class="container">
      <div class="outer">
       <div class="inner"><img src="./images/img(1).jpg" alt=""></div>
      </div>
      <div class="outer">
       <div class="inner"><img src="./images/img(2).jpg" alt=""></div>
      </div>
      <div class="outer">
       <div class="inner"><img src="./images/img(3).jpg" alt=""></div>
      </div>
      <div class="outer">
       <div class="inner"><img src="./images/img(4).jpg" alt=""></div>
      </div>
      <div class="outer">
       <div class="inner"><img src="./images/img(5).jpg" alt=""></div>
      </div>
      <div class="outer">
       <div class="inner"><img src="./images/img(6).jpg" alt=""></div>
      </div>
      <div class="outer">
       <div class="inner"><img src="./images/img(7).jpg" alt=""></div>
      </div>
      <div class="outer">
       <div class="inner"><img src="./images/img(8).jpg" alt=""></div>
      </div>
      <div class="outer">
       <div class="inner"><img src="./images/img(9).jpg" alt=""></div>
      </div>
      <div class="outer">
       <div class="inner"><img src="./images/img(10).jpg" alt=""></div>
      </div>
      <div class="outer">
       <div class="inner"><img src="./images/img(11).jpg" alt=""></div>
      </div>
      <div class="outer">
       <div class="inner"><img src="./images/img(12).jpg" alt=""></div>
      </div>
      <div class="outer">
       <div class="inner"><img src="./images/img(13).jpg" alt=""></div>
      </div>
      <div class="outer">
       <div class="inner"><img src="./images/img(14).jpg" alt=""></div>
      </div>
      <div class="outer">
       <div class="inner"><img src="./images/img(15).jpg" alt=""></div>
      </div>
      <div class="outer">
       <div class="inner"><img src="./images/img(16).jpg" alt=""></div>
      </div>
      <div class="outer">
       <div class="inner"><img src="./images/img(17).jpg" alt=""></div>
      </div>
      <div class="outer">
       <div class="inner"><img src="./images/img(18).jpg" alt=""></div>
      </div>
      <div class="outer">
       <div class="inner"><img src="./images/img(19).jpg" alt=""></div>
      </div>
      <div class="outer">
       <div class="inner"><img src="./images/img(20).jpg" alt=""></div>
      </div>
      <div class="outer">
       <div class="inner"><img src="./images/img(21).jpg" alt=""></div>
      </div>
      <div class="outer">
       <div class="inner"><img src="./images/img(22).jpg" alt=""></div>
      </div>
      <div class="outer">
       <div class="inner"><img src="./images/img(23).jpg" alt=""></div>
      </div>
      <div class="outer">
       <div class="inner"><img src="./images/img(24).jpg" alt=""></div>
      </div>
      <div class="outer">
       <div class="inner"><img src="./images/img(25).jpg" alt=""></div>
      </div>
      <div class="outer">
       <div class="inner"><img src="./images/img(26).jpg" alt=""></div>
      </div>
      <div class="outer">
       <div class="inner"><img src="./images/img(27).jpg" alt=""></div>
      </div>
      <div class="outer">
       <div class="inner"><img src="./images/img(28).jpg" alt=""></div>
      </div>
      <div class="outer">
       <div class="inner"><img src="./images/img(29).jpg" alt=""></div>
      </div>
      <div class="outer">
       <div class="inner"><img src="./images/img(30).jpg" alt=""></div>
      </div>
      <div class="outer">
       <div class="inner"><img src="./images/img(31).jpg" alt=""></div>
      </div>
      <div class="outer">
       <div class="inner"><img src="./images/img(32).jpg" alt=""></div>
      </div>
      <div class="outer">
       <div class="inner"><img src="./images/img(33).jpg" alt=""></div>
      </div>
      <div class="outer">
       <div class="inner"><img src="./images/img(34).jpg" alt=""></div>
      </div>
      <div class="outer">
       <div class="inner"><img src="./images/img(35).jpg" alt=""></div>
      </div>
      <div class="outer">
       <div class="inner"><img src="./images/img(36).jpg" alt=""></div>
      </div>
      <div class="outer">
       <div class="inner"><img src="./images/img(37).jpg" alt=""></div>
      </div>
      <div class="outer">
       <div class="inner"><img src="./images/img(38).jpg" alt=""></div>
      </div>
      <div class="outer">
       <div class="inner"><img src="./images/img(39).jpg" alt=""></div>
      </div>
      <div class="outer">
       <div class="inner"><img src="./images/img(40).jpg" alt=""></div>
      </div>
  </div>
   <script>
       //封装函数,实现布局
       function loadImgs(){
           //获取容器的宽度()
let container = document.querySelector(".container")
       let c_width = container.offsetWidth
       console.log(c_width)
       //计算一行能放几张图片
       let cols = Math.floor(c_width/210)
       console.log(cols)
       //循环放置图片,获取所有的图片
       let imgs =document.querySelectorAll(".outer")
       //声明一个数组,记录高度
       let arr =[]
       console.log(imgs)
       for(let i=0;i<imgs.length;i++){
           //放置第一行图片
           if(i<cols){
               console.log(imgs[i])
             imgs[i].style.top=0
             imgs[i].style.left=i*210+"px"
             //记录图片的高度
             arr.push(imgs[i].offsetHeight)
             console.log(arr)
           }
           //放置其他图片
           else{
       //1,获取最小高度和它的编号
       let minHeight = Math.min(...arr)
       let minIndex = arr.indexOf(minHeight)
       console.log(minHeight,minIndex)
       //2.放置图片
       imgs[i].style.top = minHeight+"px"
       imgs[i].style.left = minIndex*210+"px"
       //3.更新高度:原来的高度+新的高度
       arr[minIndex]= minHeight+imgs[i].offsetHeight
           }
       }
       }
       //windown中onload事件,指等网页中所有的数据加载完成后执行
       window.onload =function(){
           //调用函数,放置图片
         loadImgs()
       }
       //window中onresize,主要是监听浏览器窗口是否发生了调整
       window.onresize=function(){
           //当窗口大小变化后,重新调整图片
           loadImgs()
       }
   </script>
</body>
</html>
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 用html实现以下效果 以下是html 以下是css样式
    雾权阅读 30评论 0 0
  • 作业分析 使用html标签实现网页中视频的自动播放和音频的自动播放,实现如下效果 代码实现 个人总结 相对简单,掌...
    马永跃阅读 47评论 0 0
  • 作业分析 本次要使用table表格标签编写如下的效果 代码实现 使用HTML标签代码实现
    褡氪阅读 23评论 0 0
  • 鼠标拖拽效果 代码实现
    Mei_1aa9阅读 21评论 0 0
  • 作业要求 开发后台管理系统页面:管理员登录页面、后台管理系统主页 图片示例 代码演示-管理员登录页面 使用Trae...
    MoonArchive阅读 44评论 0 1