jquery实现移动端数据列表返回原来位置
来源:互联网 发布:人工智能柴玉梅版答案 编辑:程序博客网 时间:2024/05/17 08:03
项目需求:点击进入详情页面,再点击返回按钮,返回到原来的位置。
数据列表图:
备注:数据列表查询用的是ajax,可以通过上拉加载下一页数据。
我先简单说一下思路:
1.首先应该获取到列表页面已经加载好的数据,将数据存入缓存中。
2.得到当前滚动条距顶部的位置。
3.当前加载到的分页页面的当前页。
接下来是详细步骤:
1.获取滚动条距离顶部的高度。
/** * 获取滚动条距离顶端的距离 * @return {}支持IE6 */ function getScrollTop() { var scrollPos; if (window.pageYOffset) { scrollPos = window.pageYOffset; } else if (document.compatMode && document.compatMode != 'BackCompat') { scrollPos = document.documentElement.scrollTop; } else if (document.body) { scrollPos = document.body.scrollTop; } return scrollPos; }
2.将当前加载的数据存入sessionStorage。
点击sessionStorage详细讲解,我在这就不多说了。
//数据列表存储页面<ul id="scroller" class="datalist"></ul>//获取已加载数据var datalistHtml = $("#scroller").html();//存入sessionStorage中sessionStorage.setItem("datalistHtml", datalistHtml);
3.点击进入详情页面按钮,传入数据id、当前页和滚动条高度。(当然你当前页和滚动条高度你也可以放入cookie中)
//查看详情function queryDetail(recordId){var scrollPos = getScrollTop();var datalistHtml = $("#scroller").html();sessionStorage.setItem("datalistHtml", datalistHtml);window.location.href="/page/mySportpResult?id="+recordId+"&pageCurrent="+queryPage+"&scrollPos="+scrollPos;}
4.在详情页面点击返回列表页面
//返回列表页面function goHistory(){var pageCurrent = getQueryString("pageCurrent");var scrollPos = getQueryString("scrollPos");var token = $.cookie('token');window.location.href="/page/index? pageCurrent="+pageCurrent+"&scrollPos="+scrollPos+"&token="+token;}注:当前页的获取我就不多说了,不懂得同学再私密我。//获取url参数方法function getQueryString(name) { var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i"); var r = window.location.search.substr(1).match(reg); if (r != null) return unescape(r[2]); return null; }
5.根据滚动条高度判断是否是新进入页面还是从详情页面返回。
var pageCurrent;//从url获取滚动条高度pageCurrent = getQueryString("pageCurrent");//判断是否为空if(pageCurrent == null || pageCurrent == ""){ pageCurrent = 1; loadAll(token,pageCurrent);}else{ queryRecord(token,pageCurrent);}
6.点击返回,列表页面初始化方法
//如果滚动条高度存在,走该方法。function queryRecord(token,pageCurrent){ //从sessionStorage取得缓存数据 var value = sessionStorage.getItem("datalistHtml"); //放入列表中 $(".datalist").append(value); //拿到滚动条高度 var scrollPos = getQueryString("scrollPos"); //清空缓存数据 sessionStorage.clear(); //设置高度 window.scrollTo(0,scrollPos); //执行查询方法 loadAll(token,pageCurrent);}
7.查询方法
//这块查询主要是ajax查询,通过分页来控制上拉加载更多数据//初始化查询function loadAll(token,pageCurrent){ $('#wrapper').dropload({ scrollArea : window, loadDownFn : function(me){ queryPage = pageCurrent+1 ; //传入当前页和每页显示条数 var jsonData = '{"pageNo":"'+ pageCurrent++ +'","pageSize":"10"}'; $.ajax({ type: 'POST', async: false, headers: {'token':token}, url: '/history', data:jsonData, dataType:'json', success: function(result) { var data = result.value; if(data != null && data != ""){ //具体拼接字符串我就不展示了。 }else{ // 锁定 me.lock(); // 无数据 me.noData(); } // 为了测试,延迟1秒加载 setTimeout(function(){ // 插入数据到页面,放到最后面 $('.datalist').append(strlist); // 每次数据插入,必须重置 me.resetload(); },1000); } } }, error: function(XMLHttpRequest, textStatus, errorThrown) { //即使加载出错,也得重置 me.resetload(); } }); } });}
这是上拉加载更多的链接,有需要的同学可以看一下:http://www.jq22.com/jquery-info6960。
有什么问题可以跟我留言和评论,大家互相学习。
阅读全文
1 0
- jquery实现移动端数据列表返回原来位置
- 如何实现:移动端点击返回 仍然在原来的位置
- 详情页返回列表页时保持原来的位置
- JQuery实现鼠标拖动元素移动位置
- jQuery Ajax请求返回对象列表数据
- js实现一个div缓缓移动到某一个位置再缓缓回到原来位置
- jquery 实现左右下拉列表 选项 移动
- 移动端获取数据列表
- dhtmlxgrid实现左右列表数据移动
- JQuery 图片移动位置
- jquery移动元素位置
- jQuery 实现交换元素位置(移动节点)
- 移动数据位置[基础]
- jquery+json实现数据列表分页
- jQuery 实现左右Select列表数据互换
- jquery实现两列表数据跳换
- jquery实现ajax,返回json数据
- JQuery 实现对应删除标签,返回数据!
- 关于电源做了倒灌处理,以更快的泄放电压的例子
- A. Sereja and Algorithm----思维+贪心
- 数据结构课设(散列表的设计与实现)
- 附加的XML和正则表达式
- 最大堆、索引堆、二叉搜索树的JavaScript实现
- jquery实现移动端数据列表返回原来位置
- IDEA jetty
- 公式
- 人生本过客,何必千千结
- Spring MVC 学习总结(三)——请求处理方法Action详解
- hdu-6106-Classes
- 括号配对问题-OJ
- HDU6103Kirinriki(前缀和+二分)
- 【leetcode】 83. Remove Duplicates from Sorted List(easy)