eyoucms实现页面瀑布流自动加载
eyoucms页面瀑布流自动加载是需要点按钮然后加载的,下面这代码可以实现瀑布流自动加载。
1、html代码
<!DOCTYPE html> < html > < head > < meta charset = "UTF-8" > < title ></ title > </ head > < link rel = "stylesheet" type = "text/css" href = "../css/autoAdd.css" /> < script type = "text/javascript" src = "../js/autoAdd.js" charset = "UTF-8" ></ script > < body > < div id = "all" > < div > 1 </ div > </ div > </ body > </ html > |
2、autoAdd.css代码
*{ padding: 0px; margin: 0px; } #all{ width: 600px; margin: 0 auto; text-align: center; border: 1px solid red; position: relative; } #all div{ /*top: 20px;*/ width: 200px; height: 100px; border: 1px solid blue; margin: 10px 34%; text-align: center; position: absolute; } |
3、autoAdd.js代码:
window.onload= function (){ all=document.getElementById( "all" ); getData; //注意不能置为null num=1; var lis=all.getElementsByTagName( "div" ); // var lastDiv=lis[lis.length-1]; // console.log(lastDiv); // console.log(getData); // console.log(getData.eleT(lastDiv).y); // console.log(getData.scrollT().y); // console.log(getData.clientH().y); /** * 最好是每进行一步就进行验证,否则很难找到问题所在 */ } window.onscroll= function (){ Add(); } function Add(){ if (isCheckAdd()){ var newDiv=document.createElement( "div" ); newDiv.innerHTML=num+1; newDiv.style.top=num*(120)+ "px" ; num++; all.appendChild(newDiv); } } function isCheckAdd(){ var lis=all.getElementsByTagName( "div" ); console.log( "length=" +lis.length) var lastDiv=lis[lis.length-1]; console.log( "lastDiv的Top=" +document.defaultView.getComputedStyle(lastDiv, null ).top); return (getData.eleT(lastDiv).y<=getData.scrollT().y+getData.clientH().y)? true : false ; } getData={ /** * * @param {Object} obj * 获取all最后一个元素的top和他自身的一半高度 */ eleT: function (obj){ //最好用?而不是用|| var marginTop=obj.style.top? obj.style.top:document.defaultView.getComputedStyle(obj, null ).marginTop; marginTop=parseInt(marginTop); console.log( "marginTop=" +marginTop) var height=obj.style.height||document.defaultView.getComputedStyle(obj, null ).height; height=parseInt(height); console.log( "height=" +height) var halfH=Math.ceil(height/2); var eleT=marginTop+halfH; return new this .result(parseInt(eleT)); } , /** * 获取滚动条的top */ scrollT: function (){ var scrollT=document.documentElement.scrollTop? document.documentElement.scrollTop:document.body.scrollTop; var scrollL=document.documentElement.scrollLeft? document.documentElement.scrollLeft:document.body.scrollLeft; console.log( "scrollT=" +scrollT+ " : scrollL=" +scrollL); return new this .result(scrollT); }, /** * 获取浏览器的可见区域的height */ clientH: function (){ var clientH=document.documentElement.clientHeight; console.log( "clientH=" +clientH); return new this .result(clientH); }, result: function (y){ this .y=y; } } |
4、效果,将浏览高度缩小于第一个格子高度试下。
另外一种方法是群里有朋友搞的,说是直接扔上去就行,还没做测试,先做一个记录。
window.onscroll =
function
() {
if
(((document.documentElement && document.documentElement.scrollTop) ? document.documentElement.scrollTop : (document.body ? document.body.scrollTop : 0)) + ((document.body.clientHeight && document.documentElement.clientHeight) ? Math.min(document.body.clientHeight, document.documentElement.clientHeight) : Math.max(document.body.clientHeight, document.documentElement.clientHeight)) + 100 > Math.max(document.body.scrollHeight, document.documentElement.scrollHeight)) {
var
pages = document.getElementsByClassName(
'next-page'
);
for
(
var
i = pages.length; i > 0; i--) {
var
page = pages[i - 1].getElementsByTagName(
'a'
);
if
(page.length > 0 && page[0].getAttribute(
'data-page'
)) {
page[0].click();
break
; }}}};
以上就是速优网络和大家分享的"eyoucms实现页面瀑布流自动加载",非常感谢您有耐心的读完这篇文章,我们将为您提供更多参考使用或学习交流的信息。我们还可为您提供:企业网站建设、网站仿制、网站复制、仿站、外贸网站建设、外贸建站、公司官网制作等服务,本公司以“诚信、专业、务实、创新”的服务理念服务于客户。如您需要合作,请扫码咨询,我们将诚挚为您服务。
TAG标签:易优cms