[JS] 瀑布流加载
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="keywords" content="">
<meta name="description" content="">
<title></title>
<script type="text/javascript" src="jQuery/jquery-3.1.1.min.js" ></script>
<style type="text/css">
*{
margin: 0;
padding: 0;
}
#box{
width: 1000px;
height: 500px;
margin: 0 auto;
}
#box ul li{
float: left;
list-style: none;
width: 225px;
padding: 5px;
margin: 5px;
box-shadow: 0px 0px 5px #333;
}
#box ul li .pic{
border: 1px solid #ddd;
margin-bottom: 10px;
}
#box ul li img{
width: 100%;
height: 100%;
display: block;
transition: 1s;
-webkit-transition: 1s;
}
</style>
</head>
<body>
<div id="box">
<ul>
<li> </li>
<li> </li>
<li> </li>
<li> </li>
</ul>
</div>
</body>
</html>
<script type="text/javascript">
/*
企业开发流程
1.需求分析
2.生成需求文档
3.标准开发文档
(架构师 ,项目经理)
4.程序员最底层的工作(码农)
分析原理:
1.动态生成图片标签,添加到li里面
1.获取高度最小的li,
2.循环动态添加多个图片
3.判断滚动条的高度,动态添加
* */
var $li = $('#box ul li');
var liLength = $li.length;
var i=0;
var sum=0;
var arr = [
{src:'img/pic1.jpg'},
{src:'img/pic2.jpg'},
{src:'img/pic3.jpg'},
{src:'img/pic4.jpg'},
{src:'img/pic5.jpg'},
{src:'img/pic6.jpg'},
{src:'img/pic7.jpg'},
{src:'img/pic1.jpg'},
{src:'img/pic2.jpg'},
{src:'img/pic3.jpg'},
{src:'img/pic4.jpg'},
{src:'img/pic5.jpg'},
{src:'img/pic4.jpg'},
{src:'img/pic5.jpg'},
{src:'img/pic4.jpg'},
{src:'img/pic5.jpg'}
]; function create(){
var oDiv = document.createElement('div');
oDiv.className = 'pic';
var oImg = new Image();
oImg.src = arr[i%arr.length].src;
oImg.style.cssText = 'opacity: 0;transform: scale(0)';
oDiv.appendChild(oImg);
$li.eq(getList()).append(oDiv);
//console.log(getList());
//闭包
(function(oImg){
setTimeout(function(){
oImg.style.cssText = 'opacity: 1;transform: scale(1)';
},100);
})(oImg); } //获取高度最小的li
function getList(){
var a = 0;
var fH = $li.eq(0).height();//获取第一个li的高度
for(var j=0;j<liLength;j++){
var nH = $li.eq(j).height();//得到对应的li的高度
if(nH<fH){
a = j;//更新最短的索引
fH = nH;//更新最短的高度 }
}
return a;
}
create();
//循环动态添加图片,如果i<16,添加12张,如果i>16,每次动态添加3张
function upload(){
i++;
if(i<16){//初始化12张图片
for (; i < 16; i++) {
create();
}
}else{
sum = i;//在16张图片的基础上添加
console.log(sum);
for (;i<sum+4;i++) { create();
}
}
}
upload();
//判断滚动条的高度,然后动态添加
//可视区域的高度+滚动高度>文档高度
var scrollH = '';//文档高度
var scrollT = '';//滚动条高度
$(function(){//当页面加载的时候
var _height = $(window).height();//可视区域的高度
$(window).scroll(function(){//滚动条事件
scrollH = document.body.scrollHeight;//文档高度
scrollT = $(window).scrollTop();//滚动条高度 if(_height+scrollT+50>scrollH){
console.log(_height+"--"+scrollT+"--"+scrollH); upload();
}
});
});
</script>
[JS] 瀑布流加载的更多相关文章
- js图片加载效果(延迟加载+瀑布流加载)
概述 两种图片加载的效果:一种是遇到图片较多时,带读条效果的加载提示:另一种是根据滑块的位置进行预加载,用户不察觉的情况下,实现瀑布流的加载效果 详细 代码下载:http://www.demodash ...
- js实现瀑布流加载图片效果
今天学习了一个瀑布流加载效果,很多网站都有瀑布流效果,瀑布流就是很多产品显示在网页上,宽相同,高度不同,表现为多栏布局,随着页面滚动条向下滚动,这种布局还会不断加载数据块并附加至当前尾部.原理是:1. ...
- WAP用户评论简单实现瀑布流加载
wap端经常会遇到产品或者评论的加载,但是分页的体验不是很好,所以选择通过js实现瀑布流加载方式. 第一步:需要动态加载的主要内容,这里需要动态加载的是li标签的内容 <ul class=&qu ...
- css3多列布局瀑布流加载样式
看了一些网站的瀑布流加载,正好看到css3的多列属性,尝试着写了一个css做布局的瀑布流. 直接上代码: <!DOCTYPE html> <html lang="en&qu ...
- ionic 上拉加载更多&瀑布流加载&滚动到底部加载更多 主意事项
首先下拉刷新的代码是这样的,标红的地方为关键代码 <html> <head> <meta charset="utf-8"> <meta n ...
- 原声JS瀑布流加延迟载入
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- jQuery ajax瀑布流加载静态的列表页面
1.加载一行数据 <script> //滚动加载事件 var Loadurl = "{$url}"; if(window.location.href !== Loadu ...
- Vue.js中滚动条加载更多数据
本文章参考:http://www.cnblogs.com/ssrsblogs/p/6108423.html 分析:1.需要判断滚动条是否到底部: 需要用到DOM的三个属性值,即scrollTop.cl ...
- 面向对象js瀑布流效果
index.html <!doctype html><html lang="en"> <head> <!--网站编码格式,UTF-8 国 ...
随机推荐
- Add words to your picture
[Add words to your picture] How to add text to your photo, and then style it with the Type tool. 1.O ...
- jquery去掉click事件
1:使用removeAttr( )和attr( ) $("a").attr("click",test()); $("a").removeAt ...
- 一个合约访问另一个合约中的mapping
参考链接:https://ethereum.stackexchange.com/questions/13616/accessing-a-public-mapping-within-a-contract ...
- __slots__(面向对象进阶)
1.__slots__是什么:是一个类变量,变量值可以是列表,元祖,或者可迭代对象,也可以是一个字符串(意味着所有实例只有一个数据属性) 2.引子:使用点来访问属性本质就是在访问类或者对象的__dic ...
- NormalMap原理详细解析
NormalMap的实现标志着对渲染流水线的各个环节以及矩阵变化有了正确和深入的认识.这里记录一下学习过程,以及关于NormalMap的诸多细节. 刚开始想要实现NormalMap程序的时候,查阅的是 ...
- $_SERVER["HTTP_HOST"]
$_SERVER["HTTP_HOST"]访问的网站的域名
- labview使用场景
测试测量:LABVIEW [6] 最初就是为测试测量而设计的,因而测试测量也就是现在LABVIEW最广泛的应用领域.经过多年的发展,LABVIEW在测试测量领域获得了广泛的承认.至今,大多数主流的测 ...
- HBase 系列(二)安装部署
HBase 系列(二)安装部署 本节以 Hadoop-2.7.6,HBase-1.4.5 为例安装 HBase 环境.HBase 也有三种模式:本地模式.伪分布模式.分布模式. 一.环境准备 (1) ...
- BUILDING ANGULAR APPS USING FLUX ARCHITECTURE
Flux is an architectural pattern based on unidirectional data flow. Although it is originated in the ...
- CentOS 7如何开放其它的端口,比如8080
CentOS 7如何开放其它的端口,比如8080 CentOS 7.0默认使用的是firewall作为防火墙,这里改为iptables防火墙. 1.关闭firewall: systemctl stop ...