ajax-瀑布流效果
2015-11-23 19:52
441 查看
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <style type="text/css"> * {margin: 0;padding: 0} html,body {overflow-x: hidden;} #wrap {margin: 20px auto; width: 1100px; height: auto;list-style: none;overflow: hidden;} #wrap li {float: left;margin:0 8px; width: 245px;} #wrap li div {padding: 10px;width: 225px;margin: 10px 0;border: 1px solid #000;} #wrap li img {display: block;border: none;width: 225px;} #wrap li p {width: 225px;height: 14px;overflow: hidden;text-overflow:ellipsis;white-space: nowrap;font-size: 12px} #loading {margin: 20px auto; width: 1100px;height: 30px;border:1px solid #0cf; text-align: center;} #loading img {width: 30px;height:30px;} .header {width: 100%;height: 50px;background: #0cf;text-align: center;} .header a {display: inline-block;margin-top: 5px;padding:10px;border-right:1px solid #fff;text-decoration: none;color: #fff;} </style> <script type="text/javascript" src="ajaxTP.js"></script> <script type="text/javascript"> window.onload = function () { var oLoading = document.getElementById('loading'); var oUl = document.getElementById('wrap'); var aLi = oUl.getElementsByTagName('li'); var viewHeight = document.documentElement.clientHeight; var iPage = 0; var isLoading = true; getImg(iPage); window.onscroll = scrollFn; function getImg(iPage) { ajax({ method : 'GET', url : 'getPics.php', data : {"cpage" : iPage}, async : true, timeout : function(){}, success : function(data){ var d = JSON.parse(data); if (!d.length) { oLoading.innerHTML = '<p>已结加载完了</p>'; return }; for (var i = 0; i < d.length; i++) { var _index = getShort(); //最短的那个li var div = document.createElement('div'); div.innerHTML = '<img src="'+d[i].image+'" height="'+225*d[i].height/d[i].width+'" /><p>'+d[i].title+'</p>'; aLi[_index].appendChild(div); }; isLoading = true; if (isLoading) { oLoading.style.display = "none"; }; }, error : function(){} }) } function getShort() { var _index = 0; var initHeight = aLi[_index].offsetHeight; for (var i = 0; i < aLi.length; i++) { if (aLi[i].offsetHeight < initHeight) { initHeight = aLi[i].offsetHeight; _index = i; } } return _index; } function scrollFn() { var scrollY = document.body.scrollTop || document.documentElement.scrollTop; var _index = getShort(); if (aLi[_index].offsetHeight - 50 < scrollY + viewHeight) { // console.log('可以加载l') if (isLoading) { //先一次加载完在加载下一次,避免滚动时重复加载 isLoading = false; oLoading.style.display = "block"; iPage++; getImg(iPage) }; }; } } </script> </head> <body> <ul id="wrap"> <li> <div> <img src="img/1.jpg" /> <p>爆款</p> </div> </li> <li> <div> <img src="img/1.jpg" /> <p>爆款</p> </div> </li> <li> <div> <img src="img/1.jpg" /> <p>爆款</p> </div> </li> <li> <div> <img src="img/1.jpg" /> <p>爆款</p> </div> </li> </ul> <div id="loading"> <img src="img/loading.gif"> </div> </body> </html>
相关文章推荐
- 一个简单的ajax实例:ajax与struts2实例
- 解决Ajax悬停效果,无法遮蔽FLASH的问题
- 再谈Jquery Ajax方法传递到action(补充)
- Dom在ajax技术中的作用说明
- 使用Ajax实时检测"用户名、邮箱等"是否已经存在
- 探讨Ajax中同步与异步之间的区别
- 原生AJAX写法实例分析
- 探秘ajax跨域请求
- JQuery ajax返回JSON时的处理方式 (三种方式)
- Ajax中浏览器和服务器交互详解
- ajax实现点击不同的链接让返回的内容显示在特定div里
- ajax 动态传递jsp等页面使用id辨识传递对象
- ajax与传统web开发的异同点
- AJAX简单应用实例-弹出层
- AJAX初级教程之初识AJAX
- Ajax无刷新分页的性能优化方法
- jquery对ajax的支持介绍
- jQuery基于ajax实现星星评论代码
- Ajax 说的比较清楚的一篇文章
- 强烈推荐 - Ajax 技术资源中心