微信浏览器自带的返回上一页的停留位置 scrollTop

2024-06-11 17:18

本文主要是介绍微信浏览器自带的返回上一页的停留位置 scrollTop,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

我们做过微信的应该都知道,微信自带的返回上一页,就是重新打开页面。并不是返回历史页面。我们PC端的浏览器是返回历史页面。点击返回页面之后 上一个页面的scrollTop还是之前没有进入新页面的位置。

我看了下京东的微信网站。果然和我想到的方法一样。利用sessionStorage HTML5本地存储 进行存储位置scrollTop以及加载了多少次ajax次数 微信返回上一页(当前页面)之后。就会onload一下。设置最后一次scrollTop的值。以及一次性通过ajax传递之前加载的次数size渲染页面。这样在微信里面就可以实现和PC一样的效果。

代码如下:

var c=0,matter=el(document,".matter",1);window.οnlοad=function(){var a=b=null;if(window.sessionStorage){a=parseInt(sessionStorage.getItem("top"));b=parseInt(sessionStorage.getItem("size"));//6是AJAX 每次请求多少个ddnum=6*b;c=b?b:0;// ajax渲染for (var i = 0; i < num; i++){var dd=document.createElement("dd")dd.innerHTML="<a href='./source.html'><img src='images/1.jpg' alt='' /><div class='sug'><h2>魔力魔力魔力魔力魔力魔力魔力魔...</h2><p>收获佣金<b>¥106.00</b></p><p class='num'>点击量  125"+i+"</p></div></a>"matter.querySelector("dl").appendChild(dd);};alert(a);document.body.scrollTop=a;}}        window.οnscrοll=function(){var tops=document.body.scrollTop,height=document.documentElement.scrollHeight,scrollbottom=height-_height-tops; console.log("top:"+tops+"height:"+height+"scrollbottom:"+scrollbottom+"_height"+_height);if(window.sessionStorage){sessionStorage.setItem("top",tops);sessionStorage.setItem("size",c);}if(scrollbottom==0||scrollbottom==-1){$.ajax({//type: 'GET',//url: './',//data: { size: 6 },//dataType: 'json',//timeout: 300,beforeSend:function(){$(".panle").removeClass("pon");},success: function(data){ $(".panle").addClass("pon");for (var i = 0; i < 6; i++){var dd=document.createElement("dd")dd.innerHTML="<a href='./source.html'><img src='images/1.jpg' alt='' /><div class='sug'><h2>魔力魔力魔力魔力魔力魔力魔力魔...</h2><p>收获佣金<b>¥106.00</b></p><p class='num'>点击量  125"+i+"</p></div></a>"matter.querySelector("dl").appendChild(dd);};//正常状态请求了多少AJAXc++;},error: function(xhr, type){alert('Ajax error!')}})}}          

代码是我之前一个项目上的demo代码。重点就是 sessionStorage 对了 说道sessionStorage 我说一下为什么没用localStorage  localStorage是永久的。这样就会有一个问题,当前退出了这个网站之后 下次打开网站 进入这个页面。那么你最后一次离开的值依然存在在本地存储里面。用户体验就不好了。sessionStorage就不错,因为是临时性的。关闭了网站,下次进入的时候就是重新开始保存计算。

定义了一个全局变量c。还有a,b是获取sessionStorage里面的scrollTop 和ajax的值。onscroll的时候记录这两个值实时保存到sessionStorage里面。每次AJAX请求成功了,就c++一下。

c=b?b:0 这个意思就是 如果请求了ajax c的值就是等于b否则等于0.这样做因为c是全局变量,每次重新打开页面它都会等于0的.

知道了最后一次scrollTop和size  OK了 我们就直接AJAX一次行渲染出来结构。在设置scrollTop位置。最好是先渲染再设置。反过来scrollTop会出现BUG。因为页面结构没有这么多。位置停留会出现在最底部。并没有到最后一次的位置。加载之后 结构躲起来了,页面高度也有了。这样scrollTop就可以好好设置。

QQ 295989501 欢迎一起交流学习

这篇关于微信浏览器自带的返回上一页的停留位置 scrollTop的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1051790

相关文章

mybatis执行insert返回id实现详解

《mybatis执行insert返回id实现详解》MyBatis插入操作默认返回受影响行数,需通过useGeneratedKeys+keyProperty或selectKey获取主键ID,确保主键为自... 目录 两种方式获取自增 ID:1. ​​useGeneratedKeys+keyProperty(推

浏览器插件cursor实现自动注册、续杯的详细过程

《浏览器插件cursor实现自动注册、续杯的详细过程》Cursor简易注册助手脚本通过自动化邮箱填写和验证码获取流程,大大简化了Cursor的注册过程,它不仅提高了注册效率,还通过友好的用户界面和详细... 目录前言功能概述使用方法安装脚本使用流程邮箱输入页面验证码页面实战演示技术实现核心功能实现1. 随机

java向微信服务号发送消息的完整步骤实例

《java向微信服务号发送消息的完整步骤实例》:本文主要介绍java向微信服务号发送消息的相关资料,包括申请测试号获取appID/appsecret、关注公众号获取openID、配置消息模板及代码... 目录步骤1. 申请测试系统2. 公众号账号信息3. 关注测试号二维码4. 消息模板接口5. Java测试

springboot项目打jar制作成镜像并指定配置文件位置方式

《springboot项目打jar制作成镜像并指定配置文件位置方式》:本文主要介绍springboot项目打jar制作成镜像并指定配置文件位置方式,具有很好的参考价值,希望对大家有所帮助,如有错误... 目录一、上传jar到服务器二、编写dockerfile三、新建对应配置文件所存放的数据卷目录四、将配置文

python3如何找到字典的下标index、获取list中指定元素的位置索引

《python3如何找到字典的下标index、获取list中指定元素的位置索引》:本文主要介绍python3如何找到字典的下标index、获取list中指定元素的位置索引问题,具有很好的参考价值,... 目录enumerate()找到字典的下标 index获取list中指定元素的位置索引总结enumerat

如何在Mac上彻底删除Edge账户? 手动卸载Edge浏览器并清理残留文件技巧

《如何在Mac上彻底删除Edge账户?手动卸载Edge浏览器并清理残留文件技巧》Mac上的Edge账户里存了不少网站密码和个人信息,结果同事一不小心打开了,简直尴尬到爆炸,想要卸载edge浏览器并清... 如果你遇到 Microsoft Edge 浏览器运行迟缓、频繁崩溃或网页加载异常等问题,可以尝试多种方

Python如何将OpenCV摄像头视频流通过浏览器播放

《Python如何将OpenCV摄像头视频流通过浏览器播放》:本文主要介绍Python如何将OpenCV摄像头视频流通过浏览器播放的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完... 目录方法1:使用Flask + MJPEG流实现代码使用方法优点缺点方法2:使用WebSocket传输视

SpringBoot中使用Flux实现流式返回的方法小结

《SpringBoot中使用Flux实现流式返回的方法小结》文章介绍流式返回(StreamingResponse)在SpringBoot中通过Flux实现,优势包括提升用户体验、降低内存消耗、支持长连... 目录背景流式返回的核心概念与优势1. 提升用户体验2. 降低内存消耗3. 支持长连接与实时通信在Sp

Python基于微信OCR引擎实现高效图片文字识别

《Python基于微信OCR引擎实现高效图片文字识别》这篇文章主要为大家详细介绍了一款基于微信OCR引擎的图片文字识别桌面应用开发全过程,可以实现从图片拖拽识别到文字提取,感兴趣的小伙伴可以跟随小编一... 目录一、项目概述1.1 开发背景1.2 技术选型1.3 核心优势二、功能详解2.1 核心功能模块2.

统一返回JsonResult踩坑的记录

《统一返回JsonResult踩坑的记录》:本文主要介绍统一返回JsonResult踩坑的记录,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录统一返回jsonResult踩坑定义了一个统一返回类在使用时,JsonResult没有get/set方法时响应总结统一返回