javaScript基础学习(6)(瀑布流例子)
来源:互联网 发布:股票涨停公式源码 编辑:程序博客网 时间:2024/06/05 15:49
html:
<!DOCTYPE html><html><head lang="en"> <meta charset="UTF-8"> <title>瀑布流</title> <link rel="stylesheet" href="../css/pubu.css" type="text/css"> <script src="pubu.js" type="text/javascript"></script></head><body> <div id="container"> <div class="box"> <div class="box_img"> <img src="../image/image3.png"> </div> </div> <div class="box"> <div class="box_img" > <img src="../image/image.png"> </div> </div> <div class="box"> <div class="box_img"> <img src="../image/image2.jpg"> </div> </div> <div class="box"> <div class="box_img"> <img src="../image/image3.png"> </div> </div> <div class="box"> <div class="box_img"> <img src="../image/image3.png"> </div> </div> <div class="box"> <div class="box_img"> <img src="../image/image3.png"> </div> </div> <div class="box"> <div class="box_img"> <img src="../image/image3.png"> </div> </div> <div class="box"> <div class="box_img"> <img src="../image/image3.png"> </div> </div> <div class="box"> <div class="box_img"> <img src="../image/image3.png"> </div> </div> </div></body></html>
css:
*{ margin: 0px; padding: 0px;}#container{ position: relative;}.box{ padding: 5px; float: left;}.box_img { padding: 5px; border: 1px solid #ccc; box-shadow: 0 0 5px #ccc; border-radius: 5px;}.box_img img{ width: 150px; height: auto;}
js:
window.onload = function(){ imgLocation('container',"box"); var imgData = {"data":[{"src":"image.png"},{"src":"image2.jpg"},{"src":"image3.png"}]}; window.onscroll = function(){ loadImage(imgData); }; window.onresize = function(){ imgLocation('container',"box"); };}function loadImage(imgData){ if(checkFlag()){ var cparent = document.getElementById("container"); for(var i=0;i<imgData.data.length;i++) { var ccontent = document.createElement("div"); ccontent.className = "box"; cparent.appendChild(ccontent); var boximg = document.createElement("div"); boximg.className = "box_img"; ccontent.appendChild(boximg); var img = document.createElement("img"); img.src = "../image/"+imgData.data[i].src; boximg.appendChild(img); } imgLocation('container',"box"); }}function checkFlag(){ var cparent = document.getElementById("container"); var ccontent = getChildElement(cparent,"box"); var lastczontentHeight = ccontent[ccontent.length-1].offsetTop; var scrollTop = document.documentElement.scrollTop||document.body.scrollTop; var pageHeight = document.documentElement.clientHeight || document.body.clientHeight; if(lastczontentHeight<scrollTop+pageHeight){ return true; }}//处理图片位置function imgLocation(parent,content){ //将parent下所有的content都取出 var cparent = document.getElementById(parent); var ccontent = getChildElement(cparent,content); //得到图片的宽度 var imgWidth = ccontent[0].offsetWidth; var cols = Math.floor(document.documentElement.clientWidth / imgWidth); //设置父盒子的样式 cparent.style.cssText = "width:"+imgWidth*cols+"px;margin:0 auto;"; //获取最短的图片 var BoxHeightArr = []; for(var i=0;i<ccontent.length;i++){ if(i<cols){ BoxHeightArr[i] = ccontent[i].offsetHeight; }else{ //获取最小高度 var minHeight = Math.min.apply(null,BoxHeightArr); var minIndex = getminHeightLocation(BoxHeightArr,minHeight); 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; } }}//获取最小高度的下标function getminHeightLocation(boxHeightArr,minHeight){ for(var i in boxHeightArr){ if(boxHeightArr[i] == minHeight){ return i; } }}//获取所有父盒子的子元素function getChildElement(parent,content){ var contentArr = []; var allcontent = parent.getElementsByTagName("*"); for(var i = 0;i<allcontent.length;i++){ if(allcontent[i].className == content){ contentArr.push(allcontent[i]); } } return contentArr;}
效果图:
0 0
- javaScript基础学习(6)(瀑布流例子)
- Javascript学习笔记--瀑布流
- javascript学习之 小案例 (30)——瀑布流
- 瀑布流例子
- 瀑布流简单例子
- JavaScript瀑布流的实现(百度图片效果)
- javascript 瀑布流
- JavaScript瀑布流
- javascript--瀑布流
- Javascript实现瀑布流
- [前端]JavaScript瀑布流
- javascript瀑布流
- 瀑布流JavaScript
- 瀑布流(jquery)
- JavaScript学习基础(一)
- JavaScript 基础学习(一)
- javaScript 基础学习(二)
- JavaScript基础学习(一)
- Python基础知识学习笔记(2)
- EasyDarwin云平台之EasyCMS中心管理服务消息处理优化
- iOS10 作为开发者该知道什么?
- 图像知识分享
- 算法复习 - 八皇后问题(Java实现)
- javaScript基础学习(6)(瀑布流例子)
- 操盘机器人闪亮登场,不出意外大盘还将回调2到3天,图中虚线用于预测大盘走势从未失误过哦
- Servlet的基本认识
- 程序的double free测试(使用env MALLOC_CHECK_=1 ./a.out)
- Java IO _压缩流
- http://blog.csdn.net/xiechengfa/article/details/46420037
- 算法复习 - 迷宫问题
- 算法复习 - Dijkstra算法(迪杰斯特拉算法)
- ajax详解教程