如何在直播軟體搭建中,實現圖片瀑布流效果?
什麼是圖片瀑布流
實現原理
{ position: absolute; left: i*100 + 'px'; top: 30 + 'px'}
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> <style> .box { position: relative; } img { width: 200px; vertical-align: top; padding: 5px; }</style></head><body> <div class="box"> <img src="./images/img/2-.jpg" alt=""> <img src="./images/img/3-.jpg" alt=""> <img src="./images/img/4-.jpg" alt=""> <img src="./images/img/5-.jpg" alt=""> <img src="./images/img/6-.jpg" alt=""> <img src="./images/img/7-.jpg" alt=""> <img src="./images/img/8-.jpg" alt=""> <img src="./images/img/9-.jpg" alt=""> <img src="./images/img/10-.jpg" alt=""> <img src="./images/img/11-.jpg" alt=""> <img src="./images/img/12-.jpg" alt=""> <img src="./images/img/13-.jpg" alt=""> <img src="./images/img/14-.jpg" alt=""> <img src="./images/img/15-.jpg" alt=""> <img src="./images/img/16-.jpg" alt=""> </div></body></html>
<script> $(function () { // 獲取圖片的寬度(200px) let imgWidth = $('img').outerWidth(); // 200 waterfallHandler(); // 瀑布流處理 function waterfallHandler() { // 獲取圖片的列數 let column = parseInt($(window).width() / imgWidth); // 高度陣列 let heightArr = []; for(let i=0; i<column; i++) { heightArr[i] = 0; } // 遍歷所有圖片進行定位處理 $.each($('img'), function (index, item) { // 當前元素的高度 let itemHeight = $(item).outerHeight(); // 高度陣列最小的高度 let minHeight = Math.min(...heightArr); // 高度陣列最小的高度的索引 let minIndex = heightArr.indexOf(minHeight); $(item).css({ position: 'absolute', top: minHeight + 'px', left: minIndex * imgWidth + 'px' }); heightArr[minIndex] += itemHeight; }); } // 視窗大小改變 $(window).resize(function () { waterfallHandler(); }); });</script>
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> <style> * { margin: 0; padding: 0; } ul li { list-style: none; float: left; }</style></head><body></body><script src="./jquery.min.js"></script><script> $(function () { const COLUMN = 4; // 4列 let arr = []; // 儲存4列li let minHeight = [] // 儲存4列的高度 create(); function create() { // 建立ul li作為每一列的容器 $("<ul></ul>").appendTo($("body")).css("width", "100%"); for (let i = 0; i < COLUMN; i++) { var li = document.createElement("li"); $(li).appendTo($("ul")) .css({ "width": "24%", "margin": "0 0.5%" }); arr.push(li); // console.log(arr); minHeight.push(0); } createImg(); } function createImg() { let img = new Image(); img.num = 2; img.src = `./images/img/${img.num}-.jpg`; // 素材圖片的規律為 2-.jpg 3-.jpg 4-.jpg ... $(img).css("width", "100%"); // 當圖片載入完後 $(img).on("load", loadHandler); } function loadHandler() { // 高度陣列的最小值 let min = Math.min.apply(null, minHeight); // 高度陣列的最小值索引 let minIndex = minHeight.indexOf(min); // 克隆一份圖片 let im = this.cloneNode(true); // 將圖片假如對應最小值索引的容器中 arr[minIndex].append(im); // 更新最小值索引的容器的高度 minHeight[minIndex] += im.getBoundingClientRect().height; this.num++; // 圖片的個數只有79張 if (this.num > 79) { $(this).off("load", loadHandler); return; } this.src = `./images/img/${this.num}-.jpg`; } });</script></html>
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69996194/viewspace-2794944/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 在直播軟體搭建中有哪些可以實現瀑布流的的方法?
- 手機直播原始碼,實現圖片瀑布流式滑動效果原始碼
- JS實現動態瀑布流及放大切換圖片效果(js案例)JS
- Android使用LruCache、DiskLruCache實現圖片快取+圖片瀑布流Android快取
- 在鴻蒙中實現類似瀑布流效果鴻蒙
- javascript瀑布流效果JavaScript
- 原生js實現圖片瀑布流佈局,註釋超詳細JS
- vue實現瀑布流Vue
- 卡片瀑布流實現
- css實現瀑布流CSS
- 圖片視訊瀑布流長列表效能優化實踐優化
- 瀑布流簡單實現
- 小程式之圖片瀑布流(最全實現方式,額外加送懶載入)
- 直播軟體原始碼,CSS3實現圖片立體旋轉動畫原始碼CSSS3動畫
- 直播平臺搭建原始碼,bootstrap實現圖片輪播效果原始碼boot
- 直播app開發搭建,純javascript實現圖片放大鏡效果APPJavaScript
- jQuery實現瀑布流佈局jQuery
- 圖片模糊效果實現(RenderScript)
- 直播帶貨軟體開發過程中,如何實現圖片上傳
- 直播軟體搭建,Android實現文字滾動播放效果Android
- 記錄:瀑布流最佳實現方案
- 原生 js 實現瀑布流佈局、React 版本的瀑布流佈局元件JSReact元件
- JS實現馬賽克圖片效果JS
- PHP實現水印效果(文字、圖片)PHP
- 滑鼠放在圖片實現高亮效果
- JS實現有點炫的圖片展示效果-圖片解體和組合JS
- 直播軟體搭建中如何把延時率降到最低
- js滑鼠移動實現圖片立體滾動效果JS
- 純CSS實現瀑布流,你會嗎?CSS
- 自定義collocationViewLayout實現多區瀑布流View
- css實現文字和圖片居中效果CSS
- 實現背景圖片的全屏拉伸效果
- canvas實現的圖片放大鏡效果Canvas
- 短視訊直播原始碼,拖動滑塊實現圖片驗證效果原始碼
- 直播平臺搭建,實現圖片縮圖功能
- 直播搭建中的流媒體傳輸系統的核心乾貨
- iOS瀑布流初體驗iOS
- 直播軟體搭建,uniapp 之使用 u-upload 元件來實現圖片上傳APP元件