成人性生交大片免费看视频r_亚洲综合极品香蕉久久网_在线视频免费观看一区_亚洲精品亚洲人成人网在线播放_国产精品毛片av_久久久久国产精品www_亚洲国产一区二区三区在线播_日韩一区二区三区四区区区_亚洲精品国产无套在线观_国产免费www

主頁 > 知識(shí)庫 > HTML+CSS+JS實(shí)現(xiàn)圖片的瀑布流布局的示例代碼

HTML+CSS+JS實(shí)現(xiàn)圖片的瀑布流布局的示例代碼

熱門標(biāo)簽:中國(guó)地圖標(biāo)注城市的 通遼地圖標(biāo)注app 高德地圖標(biāo)注廁所 江西ai電銷機(jī)器人如何 地圖標(biāo)注員工作內(nèi)容 智能語音電銷機(jī)器人客戶端 威海語音外呼系統(tǒng)平臺(tái) 西安金倫外呼系統(tǒng) 地圖標(biāo)注沿海城市房?jī)r(jià)

前言

瀑布流布局簡(jiǎn)而言之就是類似瀑布流的布局嘛,這么一講大家可能還是不是了解的很明白,來來來,那現(xiàn)在我給大家上一個(gè)常見的實(shí)例:

相信大家在百度上搜索圖片時(shí)的時(shí)候,網(wǎng)頁圖片的布局就是這樣子的吧,什么?你還是不清楚瀑布流,那咱就再我看一個(gè)那沒關(guān)系,淘寶大家應(yīng)該再熟悉不過了吧!

我們可以發(fā)現(xiàn)圖中每個(gè)商品框的高度不同的,因此導(dǎo)致我們的商品圖片的高度布局都不在一個(gè)高度上。在百度搜索圖片的時(shí)候我們發(fā)現(xiàn)每張圖片的寬度都是不一樣的那為什么所用圖片的寬度它能剛剛好的占滿一行呢?

這就是我今天今天教大家的布局方式——waterfall 布局,那該怎么實(shí)現(xiàn)呢?那我們就不多說啦,直接上干貨!

一、總體效果

瀑布流的搭建完的效果如下:

 

二、HTML+CSS簡(jiǎn)單布局

首先大家在網(wǎng)上搜索一些圖片或者用一下自己喜歡的圖片均可,用html搭建好框架網(wǎng)頁的框架將圖片存放好,我們這里使用的了20張圖為例。其次使用html+css實(shí)現(xiàn)一個(gè)簡(jiǎn)單的布局,這有個(gè)關(guān)鍵的步驟:我們對(duì)比上面百度和淘寶頁面的瀑布流布局就不難發(fā)現(xiàn),要實(shí)現(xiàn)瀑布流所有圖片都得有個(gè)相同的高度或者高度。因此我們這就給所用照片設(shè)置一個(gè)固定的寬度,但不限定的圖片的高度保證每圖片都按其原始比例完整展示出來。

HTML,CSS代碼如下:

css代碼

*{
          margin: 0;
          padding: 0;
      }
      #container{
          position: relative;
      }
      .box{
          float: left;/* 給每個(gè)存放照片box設(shè)置為浮動(dòng)元素,讓所有的圖片浮動(dòng)到網(wǎng)頁的第一行*/
          padding: 5px;
      }
      .box-img{
          width: 150px;
          padding: 5px;
          border: 1px solid #ccc;
          box-shadow: 0 0 5px #ccc;
          border-radius: 5px;
      }
      .box-img img {
          width: 100%;
          height: auto;
      }

html代碼

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>js 瀑布流</title>
 <link rel="stylesheet" href="./index.css">
</head>
<body>
  <div id="container">
    <div class="box">
      <div class="box-img">
        <img src="./img/1.jpg" alt="">
      </div>
    </div>
    <div class="box">
      <div class="box-img">
        <img src="./img/2.jpg" alt="">
      </div>
    </div>
    <div class="box">
      <div class="box-img">
        <img src="./img/3.jpg" alt="">
      </div>
    </div>
    <div class="box">
      <div class="box-img">
        <img src="./img/4.jpg" alt="">
      </div>
    </div>
    <div class="box">
      <div class="box-img">
        <img src="./img/5.jpg" alt="">
      </div>
    </div>
    <div class="box">
      <div class="box-img">
        <img src="./img/6.jpg" alt="">
      </div>
    </div>
    <div class="box">
      <div class="box-img">
        <img src="./img/7.jpg" alt="">
      </div>
    </div>
    <div class="box">
      <div class="box-img">
        <img src="./img/8.jpg" alt="">
      </div>
    </div>
    <div class="box">
      <div class="box-img">
        <img src="./img/9.jpg" alt="">
      </div>
    </div>
    <div class="box">
      <div class="box-img">
        <img src="./img/10.jpg" alt="">
      </div>
    </div>
    <div class="box">
        <div class="box-img">
          <img src="./img/1.jpg" alt="">
        </div>
      </div>
      <div class="box">
        <div class="box-img">
          <img src="./img/2.jpg" alt="">
        </div>
      </div>
      <div class="box">
        <div class="box-img">
          <img src="./img/3.jpg" alt="">
        </div>
      </div>
      <div class="box">
        <div class="box-img">
          <img src="./img/4.jpg" alt="">
        </div>
      </div>
      <div class="box">
        <div class="box-img">
          <img src="./img/5.jpg" alt="">
        </div>
      </div>
      <div class="box">
        <div class="box-img">
          <img src="./img/6.jpg" alt="">
        </div>
      </div>
      <div class="box">
        <div class="box-img">
          <img src="./img/7.jpg" alt="">
        </div>
      </div>
      <div class="box">
        <div class="box-img">
          <img src="./img/8.jpg" alt="">
        </div>
      </div>
      <div class="box">
        <div class="box-img">
          <img src="./img/9.jpg" alt="">
        </div>
      </div>
      <div class="box">
        <div class="box-img">
          <img src="./img/10.jpg" alt="">
        </div>
      </div>
  </div>
  <script src="./index.js"></script>
</body>
</html>

html和css修飾后的網(wǎng)頁的效果是怎樣的的呢?

我們給每個(gè)盒子都使用了一個(gè)float:left屬性,讓圖片脫離文檔來到網(wǎng)頁的最上端,但是圖片過多時(shí)有部分圖片被擠到了第二行,可是他們并沒有像我們?cè)O(shè)想的那樣像瀑布式的排列,那我們?cè)撛趺磳?shí)現(xiàn)呢,這時(shí)我們的的JS就要派上用場(chǎng)啦。

三、JS實(shí)現(xiàn)后續(xù)布局

通過js實(shí)現(xiàn)將第一行后的圖片排列在緊湊的排列在每一列中

代碼如下代碼(附帶有詳細(xì)注釋):

window.onload = function() {
    imgLocation('container', 'box')
  }
  
  // 獲取到當(dāng)前有多少張圖片要擺放
  function imgLocation(parent, content) {
    // 將containerd下所有的內(nèi)容全部取出
    var cparent = document.getElementById(parent)  //獲取container盒子的標(biāo)簽
    var ccontent = getChildElemnt(cparent, content)//圖片時(shí)放在container盒子里的box盒子里的,因此我們還需要定義一個(gè)函數(shù)getChildElemnt()獲取出box里的圖片
    
    var imgWidth = ccontent[0].offsetWidth//獲取css中我們給每張圖片設(shè)置的固定寬度
    var num = Math.floor(document.documentElement.clientWidth / imgWidth) //獲取瀏覽器body的寬度計(jì)算最多能放幾張我們的圖片
    cparent.style.cssText = `width: ${imgWidth * num} px`
  
    //擺放圖片
    var BoxHeightArr = [] 
    for (var i = 0; i < ccontent.length; i++) { 
      if (i < num) {  //我們先將第一行擺滿
        BoxHeightArr[i] = ccontent[i].offsetHeight //這里我們通過BoxHeightArr[]數(shù)組存放每列的高度
      } else { //剩下的圖片我們依次次優(yōu)先選擇擺在高度最低的一列后面
        var minHeight = Math.min.apply(null, BoxHeightArr) //通過將Math.min()中求最小值的方法應(yīng)用到數(shù)組中,求出高度最低的列
        var minIndex = getMinHeightLocation(BoxHeightArr, minHeight) //確定了高度最低的列后我們就差求出列的位置了,我們通過編寫一個(gè)函數(shù)實(shí)現(xiàn)

        //最后將我們的圖片相對(duì)于container盒子進(jìn)行定位放在每一列下就可以啦
        ccontent[i].style.position = 'absolute'
        ccontent[i].style.top = minHeight +'px'
        ccontent[i].style.left =ccontent[minIndex].offsetLeft + 'px'
        //最后不忘記跟新每一列的高度哦
        BoxHeightArr[minIndex] =BoxHeightArr[minIndex] + ccontent[i].offsetHeight

      }
    }
    // console.log(BoxHeightArr);
  }
  
  
  function getChildElemnt(parent, content) {
    const contentArr = []
    const allContent = parent.getElementsByTagName('*')//通過內(nèi)置函數(shù)getElementsByTagName()將container中的所有元素取出來
    // console.log(allContent);
    for (var i = 0; i < allContent.length; i++) {//但是container中所有的元素中我們只需要的是所有的img,為此我們寫個(gè)for循環(huán)將所用img篩選出來存放在一個(gè)數(shù)組中
      if (allContent[i].className == content) {
        contentArr.push(allContent[i])
      }
    }
    // console.log(contentArr);
    return contentArr
  }
  //獲取列最高度最小列的位置下標(biāo)函數(shù)
  function getMinHeightLocation(BoxHeightArr, minHeight) {
    for (var i in BoxHeightArr) {
      if (BoxHeightArr[i] === minHeight) {
        return i
      }
    }
  }

JS算法思路及操作:

  • 將所有的需要排列的圖像獲取出來
  • 因?yàn)閳D片時(shí)放在container盒子里的box盒子里的,因此我們定義了一個(gè)函數(shù)getChildElemnt()獲取出box的里的圖片,在這個(gè)函數(shù)中通過內(nèi)置函數(shù)getElementsByTagName()將container中的所有元素取出來,但是container中所有的元素中我們只需要的是所有的img,為此我們寫個(gè)for循環(huán)將所用img篩選出來存放在一個(gè)我們定義的content[]數(shù)組中。
  • 提取到所有圖片后我們就要需要確定圖片排列的位置,我們先將在第一行排滿,剩下的圖排列時(shí)依次排在在高度最小的列后面,為此我們?cè)谂帕忻繌垐D片的時(shí)候都需要求出高度最小列以及確定其位置

通過 ccontent[0].offsetWidth (每一張圖片的寬度都是一樣的,因此取數(shù)組中任意元素均可)獲取css中我們給每張圖片設(shè)置的固定寬度,其次利用 document.documentElement.clientWidth 獲取當(dāng)前網(wǎng)頁比例下瀏覽器的寬度,求出一行最多能整存多少張圖片(即多少列),再使用for循環(huán)擺放圖片,先將第一行擺滿,創(chuàng)建BoxHeightArr[]數(shù)組存放每列的高度,將Math.min() 方法應(yīng)用于 BoxHeightArr[]數(shù)組中,求出高度最低的列,創(chuàng)建 getMinHeightLocatio()函數(shù)獲取列高度最小列的位置下標(biāo),與container div 絕對(duì)定位擺放,完成后更新每列列高,直至圖片擺放完成。

總結(jié)

到此這篇關(guān)于HTML+CSS+JS實(shí)現(xiàn)圖片的瀑布流布局的示例代碼的文章就介紹到這了,更多相關(guān)HTML瀑布流內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持腳本之家!

標(biāo)簽:河池 青海 晉中 崇左 營(yíng)口 北海 眉山 阜陽

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《HTML+CSS+JS實(shí)現(xiàn)圖片的瀑布流布局的示例代碼》,本文關(guān)鍵詞  HTML+CSS+JS,實(shí)現(xiàn),圖片,的,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《HTML+CSS+JS實(shí)現(xiàn)圖片的瀑布流布局的示例代碼》相關(guān)的同類信息!
  • 本頁收集關(guān)于HTML+CSS+JS實(shí)現(xiàn)圖片的瀑布流布局的示例代碼的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    国产在线不卡一区| 日韩欧美资源站| 在线一区电影| 中文字幕av中文字幕| 成人一级黄色大片| 色网视频在线| 乱小说欧美综合| 国产宾馆实践打屁股91| xxxxx性欧美特大| 男人捅女人免费视频| 不卡视频在线播放| 国内外成人免费激情在线视频| 91丨porny丨在线中文| 中文字幕免费高| 免费在线观看成年人视频| 欧美一区国产二区| 午夜精品久久久久久久蜜桃app| 99视频在线免费观看| 国产精品成人免费电影| 亚洲成人综合视频| 日韩精品一区二区亚洲av观看| 偷偷色噜狠狠狠狠的777米奇| 国产一区二区三区四区视频| 亚洲免费资源在线播放| 久久久精品一区二区三区| 精品伊人久久久| 久久久欧美精品| 在线国产情侣| 国产精品99久久免费黑人人妻| 精品国产电影| 成人区精品一区二区| 三上悠亚作品在线观看| 1插菊花综合| 久久一留热品黄| 亚洲第一成肉网| 国产黄a三级三级| 91精品欧美久久久久久动漫| 91在线视频官网| 亚洲欧美日韩一区在线观看| 中文字幕av播放| 国产精品偷乱一区二区三区| 午夜精品亚洲一区二区三区嫩草| 欧美激情性xxxxx| 国产永久免费高清在线观看| 中文字幕中文在线| 老牛影视av牛牛影视av| 午夜免费激情视频| 国产精品1区2区3区4区| 亚洲综合激情五月| 亚洲欧美日韩国产综合| 国产黄在线播放| 日韩成人午夜影院| 亚洲国产综合av| 中文字幕无码日韩专区免费| 日产精品久久久久久久蜜臀| 亚洲va欧美va国产va天堂影院| 欧美日韩视频在线观看一区二区三区| 日韩日韩日韩日韩日韩| 色黄视频在线观看| 天天射天天综合网| 久久久久毛片| 激情深爱综合网| 久操视频免费在线观看| 丁香五月缴情综合网| 亚洲国产高清一区| 久久久久亚洲av无码专区桃色| 色婷婷av一区二区三| 日韩在线视频一区| 91嫩草在线| 国产女同在线观看| 夜夜躁狠狠躁日日躁av| 亚洲综合中文字幕在线| 色综合老司机第九色激情| 国产乱肥老妇国产一区二| 国产亚洲视频在线| 久久只有这里有精品| 中文字幕乱码av| 性生交大片免费看l| 精品sm捆绑视频| 在线观看av网站永久| 在线视频观看你懂的| 激情一区二区| 久久在线精品| 天天操天天综合网| 中文字幕中文在线不卡住| 欧美日韩一区二区三区高清| 精品久久久网| 欧美日韩一级二级| 欧美日韩午夜视频| 看片网站欧美日韩| 日韩亚洲欧美成人| 伦理片一区二区三区| 91亚洲午夜在线| 奇门遁甲1982国语版免费观看高清| 精品久久网站| 国产精品色在线| 亚洲免费婷婷| 秋霞影院一区| 一本一道久久a久久精品综合蜜臀| 黑人巨大精品欧美一区二区一视频| 黄色在线资源| 网站黄在线观看| 国内视频自拍在线视频| 99精品女人在线观看免费视频| 91美女福利视频| 国产一区二区视频免费在线观看| 新久草在线视频| 国产精品久久免费视频| 国产粉嫩一区二区三区在线观看| 亚洲欧洲日产国产网站| 一女三黑人理论片在线| 中文字幕第一页在线视频| 男人的天堂va| 丁香桃色午夜亚洲一区二区三区| 亚洲三区欧美一区国产二区| 亚洲天堂av免费在线观看| 日韩电影免费一区| 成人福利免费在线观看| 亚洲电影一区| 日本亚洲欧洲色α| 国产精品女同一区二区三区| 亚洲午夜激情在线| 亚洲欧美日韩国产成人精品影院| 亚洲奶汁xxxx哺乳期| 情趣视频在线观看| 国产精品成人观看视频免费| 欧洲视频一区| www.黄色在线观看| 青青草精品视频在线| 亚洲欧美黄色片| 色视频网站在线观看| 亚洲一卡二卡在线| 成人av色网站| 99色在线观看| 国产精品777777| 欧美一级免费在线观看| 一区二区在线视频播放| 亚洲免费一区二区| 992tv成人免费观看| 成人xxx免费视频播放| 91视频国产高清| 国产精品乱码一区二区三区| 一区二区三区高清视频在线观看| 欧美日韩色婷婷| 亚洲免费av一区二区三区| 一区二区影视| 8848hh四虎| 麻豆精品视频在线观看免费| 亚州精品一二三区| 日本a√在线观看| 草莓污污视频在线观看| 欧美激情久久久| 中文字幕在线观看亚洲| 国产无人区一区二区三区| 91av视频在线观看| 舔足天天操天天射| 精品国产一区二区三区日日嗨| 亚洲精品不卡在线| 性爱视频在线播放| 国产美女情趣调教h一区二区| 欧美freesex交免费视频| 嫩草视频在线观看| 97色伦图片97综合影院| 亚洲午夜久久久久久久久红桃| 秋霞午夜剧场| 国产91丝袜在线播放0| 色综合久久中文字幕综合网| 欧美性xxxxx极品少妇| 2022中文字幕| 少妇av片在线观看| 911精品产国品一二三产区| 国产 欧美 在线| 日本在线中文字幕一区| 美女视频一区二区三区| 97caopor国产在线视频| 蜜桃av鲁一鲁一鲁一鲁俄罗斯的| 国产一区二区三区视频播放| 日韩亚洲国产中文字幕欧美| 污污的视频免费观看| 一区二区传媒有限公司| 久久成人一区二区| 国产极品美女高潮无套久久久| 一本大道五月香蕉| 91国产视频在线| 亚洲欧洲日产国码无码久久99| 欧美被日视频| 日本高清视频网站| 国产精品 欧美精品| 中文精品视频一区二区在线观看| 蜜臀av亚洲一区中文字幕| 中文字幕黄色大片| 写真福利片hd在线观看| 国内三级在线观看| 九九精品视频在线看| 新片速递亚洲合集欧美合集| 99re国产精品| 亚洲一区二区三区香蕉| 国产精品白嫩初高中害羞小美女| 日韩一区二区三区免费播放| 四虎永久免费地址| 中文字幕一区二区免费| 欧美91看片特黄aaaa| 久久精品国产大片免费观看| 日韩永久免费视频| 亚洲人成伊人成综合网久久久| 黄色网址免费在线观看| 日韩中文一区| 亚洲欧美视频在线观看视频| 久久精品黄色| 嫩草影院永久一二三入口| 一级毛片在线看| 欧美三区美女| 久久免费视频在线| 极品白嫩的小少妇| 性欧美lx╳lx╳| 亚洲深夜福利视频| 国产精品夜色7777狼人| 国产精品国产三级欧美二区| 小早川怜子一区二区的演员表| 一区二区三区四区在线免费观看| 中文字幕成人在线| 国产美女精品视频免费播放软件| 欧美日韩ab| 污导航在线观看| 亚洲电影中文字幕在线观看| 欧洲第一无人区观看| 裸模一区二区三区免费| 日韩一区二区三区三四区视频在线观看| 日韩免费福利电影在线观看| 欧美视频一区二区三区| 日韩精品影音先锋| 亚洲精选一二三| 91精品国产综合久久香蕉的用户体验| 国产成a人亚洲精品| 亚洲激情文学| 天天草天天草| 欧美6699在线视频免费| 久久九九电影| 极品尤物一区| 亚洲最新在线| 亚洲天堂a在线| 久久久精品影院| 精品国产一区在线| 亚洲精品v亚洲精品v日韩精品| 5月婷婷6月丁香| 国产8mav视频| 成人中文字幕在线播放| 日韩一区二区三区高清在线观看| 丁香五精品蜜臀久久久久99网站| 台湾成人免费视频| 国产精品成人一区二区网站软件| 日日夜夜狠狠操| 9797在线看片亚洲精品| 强开小嫩苞一区二区三区视频| 国内自拍欧美激情| 亚洲天堂一区在线观看| 国产日韩欧美在线视频观看| 性欧美长视频| 99视频精品全部免费在线视频| 99www免费人成精品| 偷偷看偷偷操| 制服丝袜第二页| 久久影视中文字幕| 四虎影视国产精品| 国产二区三区四区| 日韩精品专区在线| 91精品国产电影| 91av在线免费观看视频| 天天干天天插天天射| 五月天激情开心网| 中文字幕人成人乱码亚洲电影| 午夜免费高清视频| 欧美日韩综合在线| 一区二区三区精品视频在线观看| 欧美一级片免费在线观看| а√最新版地址在线天堂| 欧美一级淫片免费视频黄| 成年人视频免费在线观看| 性猛交娇小69hd| 欧美亚洲专区| 精品一区二区在线欧美日韩| 国产h视频在线观看| 妓院一钑片免看黄大片| 免费a在线观看| 极品国产人妖chinesets亚洲人妖| 日韩精品午夜视频| 手机在线免费毛片| 风间由美久久久| 久久蜜桃一区二区| aaa亚洲精品一二三区| 在线高清一区| 9人人澡人人爽人人精品| 在线观看日韩av电影| 51ⅴ精品国产91久久久久久| 九九热99久久久国产盗摄| 欧美一区二区在线观看| 天堂а√在线中文在线鲁大师| 亚洲男女网站| 成+人+亚洲+综合天堂| 夜夜操夜夜骑| 成人一级黄色片| 国产一区二区三区黄片| 中文字幕久久av| 久久人人爽人人爽人人片av高清| 丝袜一区二区三区| 国产福利电影在线播放| 欧美性猛片aaaaaaa做受| www日韩视频| 亚洲一区二区三区高清不卡| jizzjizzjizzjizz日本老师| 日韩综合一区| 四色最新网址| 中文av在线播放| 欧美黑人性猛交xxx| 激情91久久| 国产免费一区二区三区视频| 国产精品一区二区久久精品爱涩| 一区二区精品| 人成在线免费视频| 鲁大师私人影院在线观看| 日韩国产精品久久| 日韩国产欧美一区二区三区| 久久精品视频国产| 国产一级网站视频在线| 经典三级一区二区三区视频| 欧美亚洲国产另类| 综合日韩av| bl视频在线免费观看|