麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁(yè) > 開(kāi)發(fā) > AJAX > 正文

JS通過(guò)ajax + 多列布局 + 自動(dòng)加載實(shí)現(xiàn)瀑布流效果

2024-09-01 08:34:00
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

Ajax

•說(shuō)明:本文效果是無(wú)限加載的,意思就是你一直滾動(dòng)就會(huì)一直加載圖片出現(xiàn),通過(guò)鼠標(biāo)滾動(dòng)距離來(lái)判斷的,所以不是說(shuō)的那種加載一次就停了的那種,那種demo下次我會(huì)再做一次

css部分用的是html5+css3的新屬性,圖片會(huì)自動(dòng)添加到每行的最頂端上去,而不是用js去判斷。去除了一些js計(jì)算的麻煩。

css部分:

 * {      margin: 0;      padding: 0;      box-sizing: border-box;    }    body {      background: #352323 url(images/a.png);    }    img {      display: block;    }    section {      max-width: 95%;      margin: 0 auto;      overflow: hidden;      column-count: 5;      column-gap: 0;      column-fill: auto;    }    figure {      border: 2px solid pink;      margin: 0 5px 10px;      break-inside: avoid;      padding: 5px;    }    figure img {      width: 100%;    }    figcaption {      padding: 10px 0;      text-align: center;      font-weight: 900;      color: #a77869;    }

html部分:

通過(guò)js插入節(jié)點(diǎn),因?yàn)楹笈_(tái)不知道多少?gòu)垐D片

 <section>    <!-- <figure>      <img src="images/1.jpg"      <figcaption>往后余生,風(fēng)雪是你</figcaption>    </figure> --></section>

js有兩個(gè)部分,一個(gè)是我封裝的ajax函數(shù),和一些判斷函數(shù)

第一部分

window.onload = function() {    var section = document.getElementsByTagName('section')[0];    //運(yùn)行ajax函數(shù);    ajax('get', 'active.php', 'num=10', function(data) {      //解析json對(duì)象      let img_data = JSON.parse(data);      console.log(img_data);      //循環(huán)建多少圖片配多少標(biāo)簽      for (let i = 0; i < img_data.length; i++) {        //建立figure標(biāo)簽        let figure = document.createElement('figure');        //創(chuàng)建兩個(gè)子元素img和figcaption,并賦值        let img = document.createElement('img');        img.src = img_data[i];        let figcaption = document.createElement('figcaption');        figcaption.innerHTML = '往后余生,風(fēng)雪是你';        //插節(jié)點(diǎn)        figure.appendChild(img);        figure.appendChild(figcaption);        section.appendChild(figure);      }    });    document.onscroll = function() {      var scrollTop = document.documentElement.scrollTop; //距離網(wǎng)頁(yè)高度      console.log(scrollTop);      // var ks = document.documentElement.clientHeight; //可是化窗口高度      var ks = window.innerHeight || document.documentElement.clientHeight; //可是化窗口高度/兼容方法      var ht = document.documentElement.offsetHeight; //html總高度      // console.log(ht);      if (scrollTop + 1 >= ht - ks) { //鼠標(biāo)滾動(dòng)的距離大于html總高度-窗口的距離(也就是html在可視窗口之下的總高度)時(shí) 觸發(fā)函數(shù);        //執(zhí)行函數(shù)        ajax('get', 'active.php', 'num=10', function(data) {          //解析json對(duì)象          let img_data = JSON.parse(data);          console.log(img_data);          //循環(huán)建多少圖片配多少標(biāo)簽          for (let i = 0; i < img_data.length; i++) {            //建立figure標(biāo)簽            let figure = document.createElement('figure');            //創(chuàng)建兩個(gè)子元素img和figcaption,并賦值            let img = document.createElement('img');            img.src = img_data[i];            let figcaption = document.createElement('figcaption');            figcaption.innerHTML = '往后余生,風(fēng)雪是你';            //插節(jié)點(diǎn)            figure.appendChild(img);            figure.appendChild(figcaption);            section.appendChild(figure);          }        });      }    }  };

第二部分:

/** * ajax封裝 * @param {string} mehod請(qǐng)求數(shù)據(jù)方法 * @param {string} url 請(qǐng)求地址 * @param {string} data 請(qǐng)求參數(shù) * @param {[functiong]} success [請(qǐng)求成功之后執(zhí)行的函數(shù)0] * @return {[none]} none */function ajax(mehod, url, data, success) {  var xhr = null;  if (window.XMLHttpRequest) {    xhr = new XMLHttpRequest();  } else {    xhr = new ActiveXObject("Microsoft.xmlhttp")  }  //如果有參數(shù)get方法需要拼接字符串url+?+data  if (mehod === 'get' && data) {    url += '?' + data;  }  //open方法  xhr.open(mehod, url, true);  //send方法  if (mehod === 'get') {    xhr.send();  } else {    xhr.setRequestHeader('content-type', 'application/x-www-form-urlencoded');    xhr(data);  }  xhr.onreadystatechange = function() {    if (xhr.readyState === 4 && xhr.status === 200) {      success && success(xhr.responseText);    }  }

php后臺(tái)數(shù)據(jù)

因?yàn)橹饕δ芷蚯岸耍院蠖司屯ㄟ^(guò)本地文件載入的

<?php header("Content-type:text/html;charset=utf-8");$num = $_GET['num']; // api調(diào)用者傳遞的需要的圖片頁(yè)數(shù) $img = file("img.txt");// var_dump($img);$array_url = array();for($i=0;$i<$num;$i++){  $url = array_rand($img);  array_push($array_url,$img[$url]);}$a = json_encode($array_url);echo $a;

JS,ajax,多列布局,自動(dòng)加載,瀑布流

總結(jié)

以上所述是小編給大家介紹的JS通過(guò)ajax + 多列布局 + 自動(dòng)加載來(lái)實(shí)現(xiàn)瀑布流效果,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)VeVb武林網(wǎng)網(wǎng)站的支持!
如果你覺(jué)得本文對(duì)你有幫助,歡迎轉(zhuǎn)載,煩請(qǐng)注明出處,謝謝!


注:相關(guān)教程知識(shí)閱讀請(qǐng)移步到JavaScript/Ajax教程頻道。
發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 欧美日韩爱爱视频 | 欧美视屏一区二区 | 国产高潮国产高潮久久久91 | 高潮激情aaaaa免费看 | 一区二区三区日韩在线观看 | 成人辣文| 国产精品亚洲三区 | 精品久久久久久久久久久久久久久久久久久 | 国产精彩视频在线 | 久久成人亚洲 | 日日鲁夜夜视频热线播放 | 毛片在线免费观看网址 | 热re91久久精品国产99热 | 亚洲午夜影院在线观看 | 亚洲精品a级 | 黄网站免费在线看 | 成人一级免费 | 久久人人97超碰国产公开结果 | 久久激情国产 | 狠狠干五月天 | 九九热精品视频在线 | 夜添久久精品亚洲国产精品 | 国产免费一区二区三区最新不卡 | 欧美日韩在线视频一区 | 久久综合爱 | 国产91片| 性猛aa久久久 | 国产一区免费 | 玖草在线资源 | 男女羞羞视频在线免费观看 | 87成人免费看片 | 一区二区三区四区视频在线观看 | 日本高清黄色片 | 久久美女免费视频 | 亚洲精品aaaaa | 久久99精品久久久久久久久久久久 | 成人毛片网站 | 免费亚洲视频在线观看 | 视频一区 在线 | 国产一级毛片高清视频 | 成人毛片100部 |