jQuery返回定位插件详解

2020-05-24 21:34:20易采站长站整理

if(scrollTopDistance < prevHeight){
elements.parent().children().each(function(index,target){
if(prevCountPage > 0 ){
if(index < (prevCountPage - 1) * settings.pageResize){
prevCountPageDistance += parseInt($(target).outerHeight());
};
};
});
tool.changeUrlPar(settings.urlPageNum,dataPage - 1); //当前的页数
tool.changeUrlPar(settings.getPageNum,2); //获取双页数据
keepScrollTop = scrollTopDistance - prevCountPageDistance; //请求双页数据 向上 减 1;
}else{
prevDistance = tool.getDistance(elements.parent().children(),(prevCountPage + 1) * settings.pageResize);
prevPageScrollDistance = tool.getDistance(elements.parent().children(),prevCountPage * settings.pageResize);
if(prevDistance < (scrollTopDistance + containerHeight)){
tool.changeUrlPar(settings.urlPageNum,dataPage); //点击对象位于当前的页数
tool.changeUrlPar(settings.getPageNum,2); //请求双页数据
keepScrollTop = scrollTopDistance - prevPageScrollDistance;
}else{
tool.changeUrlPar(settings.urlPageNum,dataPage); //点击对象位于当前的页数
tool.changeUrlPar(settings.getPageNum,1); //请求单页数据
keepScrollTop = scrollTopDistance - prevPageScrollDistance;
};
};
};
});
tool.setSessionStorage("keepScrollTop",keepScrollTop); //保存滚动条的位置
return this;
};
$.getSessionStorage = function(opt){
opt = sessionStorage.getItem(opt);
return opt;
};
})(window,jQuery,function(){
var tool = {
changeUrlPar(arg, val){ //改变URL参数
function changeU(destiny, par, par_value) {
var pattern = par+'=([^&]*)';
var replaceText = par+'='+par_value;
if (destiny.match(pattern))
{
var tmp = '/'+par+'=[^&]*/';
tmp = destiny.replace(eval(tmp), replaceText);
return (tmp);
}
else {
if (destiny.match('[?]'))
{
return destiny+'&'+ replaceText;
}
else
{
return destiny+'?'+replaceText;
}
}
return destiny+'n'+par+'n'+par_value;
}
var hash = window.location.hash;
history.replaceState(null,'',location.pathname+location.search);
url = window.location.href;
var newUrl = changeU(url,arg,val) + hash;
history.replaceState(null,'',newUrl);