最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JS實(shí)現(xiàn)圖片瀑布流效果

 更新時(shí)間:2021年09月17日 12:01:29   作者:fanfan_h  
這篇文章主要為大家詳細(xì)介紹了JS實(shí)現(xiàn)圖片瀑布流,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了JS實(shí)現(xiàn)圖片瀑布流的具體代碼,供大家參考,具體內(nèi)容如下

過(guò)程:

1、創(chuàng)建一個(gè)放所有圖片的模塊bigblock。
2、獲取這個(gè)大模塊,追加一個(gè)子元素塊來(lái)放小圖。
3、封裝一個(gè)函數(shù)list(n)來(lái)存放50張圖片,并且將每張圖追加放入空數(shù)組ele[]中。
4、封裝一個(gè)函數(shù)set_position(),來(lái)確定每個(gè)圖片的位置,用到了offsetHeight,offsetTop,offsetWidth等屬性,同時(shí)給最大塊也設(shè)置動(dòng)態(tài)的高度,隨著加載的圖片數(shù)量增多,最大塊的高度也隨著增高。
5、使用 window.onload事件,加載圖片更方便。
6、給瀏覽器的滾動(dòng)條添加事件,讓滾動(dòng)條滑到body的可視區(qū)域最底部以上10px 時(shí),加載出新的30張圖片,并且每次滾動(dòng)條停留在到剛加載的圖片位置。

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title>photo瀑布流</title>
    <style>
        *{
            margin:0;
            padding:0;
        }
        body{
           /* background: #ebebeb;*/
            background: url(./img/bging2.jpg );
            background-size:100% ;
            height:100%;
        }
        .bigblock {
            position: relative;
            width:650px;
            min-height: 200px;
            background: #fff;
            margin:auto;

        }
        .smallblock{
            position:absolute;
            width:100px;
            border-radius:5px ;
            box-shadow: 0 0 7px #89c8eb;
            box-sizing: border-box;
            overflow: hidden;
        }
        .photo{
            width:100%;
            vertical-align: middle;
        }
    </style>
</head>
<body>
<div class="bigblock">

</div>
<script>
    var Big=document.getElementsByClassName ("bigblock")[0];
    var ele=[];
    var num=6;
    var bghight=0;
    var start=0;
    var image_img=["1.jpg", "2.jpg", "3.jpg", "4.jpg", "5.jpg", "6.jpg", "7.jpg", "9.jpg", "10.jpg","11.jpg","12.jpg","13.jpg","14.jpg","15.jpg","16.jpg","17.jpg"];
    for(var i=0;i<50;i++){
        list();

    }
  function  list(n){
      var small=document.createElement("div");
      var image=document.createElement("img");
      small.className="smallblock";
      image.className="photo";
      image.src="./img/"+image_img[parseInt(Math.random()* image_img.length)]; //0-12
      ele.push(small);
      Big.appendChild(small);
      small.appendChild (image);

  }
   function set_position(){
     for(var i=start;i<ele.length;i++){
       //設(shè)置每張圖片的位置
       var settop=i <num ? 0: ele[i-num].offsetHeight +10 + ele[i-num].offsetTop ;
       ele[i].style.top=settop+"px";
       var setleft = i %num * ele[i].offsetWidth + (i % num) * 10;
       ele[i].style.left=setleft+"px";
         //獲取背景的高度
       bghight =(ele[i].offsetHeight +ele[i].offsetTop)>bghight ? ele[i].offsetHeight +ele[i].offsetTop :bghight ;
       Big.style.height =bghight +"px";
     }
   }

   window.onload=function(){
       set_position();
       //添加瀏覽器的滾動(dòng)條事件
       this.addEventListener ("scroll",function(){
          var b_height=document.body.clientHeight;
           if(parseInt (this.pageYOffset+ this.innerHeight ) > b_height-10 ){
              start =ele.length;
              for(i=0;i<30;i++){
                   list();
              }
               set_position ();
           }
          // console.log(b_height);  //body的可視高度,可變
          // console.log(this.pageYOffset);    //滾動(dòng)條的上偏移量
          // console.log(this.innerHeight);   //瀏覽器可視區(qū)域的高
       })
   }
</script>
</body>
</html>

圖片不是動(dòng)圖,看不出什么效果,但代碼都是正確的,小伙伴可以試一試。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 微信小程序的授權(quán)實(shí)現(xiàn)過(guò)程解析

    微信小程序的授權(quán)實(shí)現(xiàn)過(guò)程解析

    這篇文章主要介紹了微信小程序的授權(quán)實(shí)現(xiàn)過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-08-08
  • javascript笛卡爾積算法實(shí)現(xiàn)方法

    javascript笛卡爾積算法實(shí)現(xiàn)方法

    這篇文章主要介紹了javascript笛卡爾積算法實(shí)現(xiàn)方法,實(shí)例分析了笛卡爾積算法的javascript實(shí)現(xiàn)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-04-04
  • JS實(shí)現(xiàn)的簡(jiǎn)單四則運(yùn)算計(jì)算器功能示例

    JS實(shí)現(xiàn)的簡(jiǎn)單四則運(yùn)算計(jì)算器功能示例

    這篇文章主要介紹了JS實(shí)現(xiàn)的簡(jiǎn)單四則運(yùn)算計(jì)算器功能,涉及javascript事件響應(yīng)及數(shù)值運(yùn)算相關(guān)操作技巧,需要的朋友可以參考下
    2017-09-09
  • Ajax請(qǐng)求時(shí)無(wú)法重定向的問(wèn)題解決代碼詳解

    Ajax請(qǐng)求時(shí)無(wú)法重定向的問(wèn)題解決代碼詳解

    這篇文章主要介紹了Ajax請(qǐng)求時(shí)無(wú)法重定向的問(wèn)題解決代碼詳解,當(dāng)使用Ajax請(qǐng)求時(shí),如果后臺(tái)進(jìn)行重定向到其他頁(yè)面時(shí)是無(wú)法成功的,只能在瀏覽器地址欄輸入才能夠?qū)崿F(xiàn)重定向。下面我們來(lái)看看解決方法吧
    2019-06-06
  • JS是按值傳遞還是按引用傳遞

    JS是按值傳遞還是按引用傳遞

    在分析這個(gè)問(wèn)題之前,我們需了解什么是按值傳遞(call by value),什么是按引用傳遞(call by reference)。在計(jì)算機(jī)科學(xué)里,這個(gè)部分叫求值策略(Evaluation Strategy)。它決定變量之間、函數(shù)調(diào)用時(shí)實(shí)參和形參之間值是如何傳遞的。
    2015-01-01
  • webpack?打包后圖片加載報(bào)錯(cuò)的解決辦法

    webpack?打包后圖片加載報(bào)錯(cuò)的解決辦法

    使用webpack打包后,圖片沒(méi)有加載出來(lái),頁(yè)面空白,報(bào)錯(cuò)圖片引用的路徑不對(duì),本文給大家介紹webpack?打包后圖片加載報(bào)錯(cuò)的解決辦法,感興趣的朋友一起看看吧
    2024-03-03
  • 一文讓你徹底弄懂js中undefined和null的區(qū)別

    一文讓你徹底弄懂js中undefined和null的區(qū)別

    JavaScript是一門動(dòng)態(tài)類型語(yǔ)言,元素除了表示存在的空值外,還有可能根本就不存在,這就是undefined存在的原因,這篇文章主要給大家介紹了關(guān)于undefined和null區(qū)別的相關(guān)資料,需要的朋友可以參考下
    2022-03-03
  • Javascript數(shù)組常用方法你都知道嗎

    Javascript數(shù)組常用方法你都知道嗎

    這篇文章主要為大家詳細(xì)介紹了Javascript數(shù)組常用方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2022-02-02
  • javascript實(shí)現(xiàn)控制的多級(jí)下拉菜單

    javascript實(shí)現(xiàn)控制的多級(jí)下拉菜單

    這篇文章主要介紹了javascript實(shí)現(xiàn)控制的多級(jí)下拉菜單,包含示例代碼,效果非常不錯(cuò),這里推薦給大家。
    2015-07-07
  • 使用swiper自定義分頁(yè)點(diǎn)擊跳轉(zhuǎn)指定頁(yè)面

    使用swiper自定義分頁(yè)點(diǎn)擊跳轉(zhuǎn)指定頁(yè)面

    這篇文章主要介紹了使用swiper自定義分頁(yè)點(diǎn)擊跳轉(zhuǎn)指定頁(yè)面方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-04-04

最新評(píng)論

环江| 紫阳县| 仁怀市| 彭水| 于都县| 金塔县| 南靖县| 会宁县| 江陵县| 获嘉县| 如东县| 利津县| 济阳县| 南雄市| 连江县| 岱山县| 赤城县| 丰台区| 湖州市| 平谷区| 济源市| 容城县| 永川市| 忻州市| 瓮安县| 利川市| 白城市| 黔西县| 博野县| 博白县| 仙居县| 龙门县| 旅游| 常熟市| 永胜县| 肥东县| 紫阳县| 岱山县| 郑州市| 新乐市| 蒙城县|