首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

让阅读无缝衔接 —— JS 获取用户阅读进度

下次阅读的时候,可能要花一些时间才能恢复到先前的阅读位置。 如果可以设备间,识别二维码或是一个链接就可以让阅读无缝衔接,直接跳转到相应位置,那么阅读体验就会变得更加优秀。 那么,开始吧!...我们还需要一个页面滚动的事件,用于记录当前坐标,并储存在临时存储中。...750 : window.innerWidth; var wy = window.innerHeight; function windowScroll() { // 反复修改 确保页面尺寸不改变...let p = `${y}:${wx}:${wy}`; // 写入到 sessionStorage 中 sessionStorage.setItem("read_y", p); } window.onscroll...read_y = location.hash.split("#read=")[1]; read_y = read_y.split(":"); // 组合乘积,顺滑移动至坐标 window.scrollTo

73610
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    你也许不知道的浏览器的一些滚动行为

    分类 按照我的个人理解,滚动分全局滚动(浏览器窗口)跟局部滚动(自定义的盒子),以下内容绝大部分都是指全局滚动,局部滚动的话获取指定的DOM再调用相应的API即可✅ 如何设置全局滚动条高度 1....✅ 效果对比如下: 很明显,前者就是把滚动高度设置成100,而后者是每次都增加100,这就是为什么称之为相对滚动了✅ 如何指定一个元素显示在视窗 1....window.scrollTo(0, 999999); 注意:平滑滚动到顶部或者底部自己加参数或者属性即可✅ 3....滚动传播 指有多个滚动区域,当一个滚动区域滚动完之后,继续滚动会传播到到父区域继续滚动的行为: .box { overscroll-behavior: contain; // 阻止滚动传播 } 对比效果图如下...还可以实现全屏滚动: 注意:该属性会在你滚动完之后再做处理,也就是说你可以一下子从图片1跳到图片9✅

    3.1K20

    第七节图片延迟加载

    图片延迟加载/图片懒加载的作用:保证页面打开的速度(3s之后如果首页打不开被称为死亡页面) 原理: 1>对于首屏内容中的图片:首先给对应的区域一张默认图片占着位置(默认图需要非常的小,一般可以维持在5kb...以内) 当首屏内容都加载完成后(或者也可以给一个延迟的时间),再开始加载真实的图片 2>对于其它屏中的图片:也是给一张默认的图片占位,当滚动条滚动到对应区域的时候,我们再开始加载真实的图片 网站性能优化的几种方式...如果我做的是一个简单的宣传页,尽量的把css和js写好内嵌式 首屏延迟加载: 如果获取的图片地址是错误的当赋值给img的src属性的时候不仅控制台会报错,而且页面中会出现碎图或叉图,所以我们获取图片的地址之后要验证地址的有效性...标签 var oimg = new Image; oimg.src = oimgFir.getAttribute("trueimg"); //当图片能够正常加载...conimgFir.style.display = 'block'; conimg = null; }; 不管是否正常加载

    79510

    前端性能优化之防抖与节流,大幅度降低你的事件处理性能

    如何使用防抖? 如何使用节流? 什么时候需要用到防抖和节流? 为什么要用防抖和节流?...= document.getElementsByClassName('nav-bar')[0] //给window绑定滚动事件 window.onscroll = function...现在,我们来看一下,运用了防抖之后滚动页面会有什么效果 ? 我们可以很清楚的看到,在我们滚动的过程中,一直没有打印数据,直到我们停止以后, 控制台打印了导航栏离文档顶部的距离。...现在,我们来看一下,利用时间戳节流之后滚动页面会有什么效果 ?...,于是才创建了新一轮的定时器,并赋值给 timer 从步骤2~步骤4 往复循环…… 现在,我们来看一下,利用定时器节流之后滚动页面会有什么效果 ?

    1.6K20

    React 滚动监听 Scroll Listener

    React作为一个流行的前端框架,提供了多种方式来实现滚动监听。本文将由浅入深介绍React中滚动监听的常见问题、易错点及如何避免,并通过代码案例进行解释。...import React, { useEffect } from 'react';function ScrollComponent() { useEffect(() => { // 添加滚动事件监听器...滚动位置不一致在某些情况下,用户可能在多个窗口或标签页之间切换,导致滚动位置不一致的问题。问题:用户切换标签页后,滚动位置丢失或不一致。解决方案:保存滚动位置并在组件重新挂载时恢复。...window.removeEventListener('scroll', handleScroll); }; }, [setScrollPosition]); useEffect(() => { window.scrollTo...忽略跨浏览器兼容性不同浏览器对滚动事件的处理可能存在差异,特别是在移动端和桌面端之间的差异更为明显。易错点:忽略跨浏览器兼容性,导致某些浏览器无法正常工作。

    16500

    JavaScript 基本知识

    fn(){return;} 调用:fn(); 作用域 作用域:只有函数可以生成私有作用域,那for循环里定义的var i = 0;,依旧可以在for循环之后使用。...(){ // to do } // 滚动条位置发生改变是触发 window.onscroll = function(){ // to da } 浏览器的历史记录操作 // 前进与回退 window.history.back...(); window.history.forward(); 浏览器卷去尺寸:页面太大,滚动条走过的宽高 window.onscroll = function(){ var height = document.documentElement.scrollTop...// 瞬间定位 window.scrollTo(left, top); // 参数为卷去得长度 // 定位方式 smooth 平滑滚动 window.scrollTo({ left: 0, top...,顶部通栏显示,否则隐藏滚动条滚动超过临界点,回 到顶部按钮显示,否则隐藏 点击回到顶部按钮,滚动条滚动回到顶部 布局结构: 需要一个顶部通栏标签和一个回到顶部按钮标签 让页面超过浏览器可视窗口高度 设置顶部通栏样式

    2.3K10

    Hbuilder问题记录 原

    index.html  7、 打包时如果显示:app打包需要将资源提交到云端服务器,连接云端服务器失败,请检查网络,如果网络没问题,先把Hbuilder关闭再重启 8、 当下拉刷新与上拉加载与区域滚动..."refreshContainer" class="mui-scroll-wrapper" style="top:0;padding-bottom:50px;"> 上拉加载如果被tab遮住,需要定义滚动...div的padding-bottom 9、 点击下面原生tab切换tab时如果需要滚到到顶部,在每个tab所在的webview 设置下面js代码 mui.plusReady(function(...plus.webview.currentWebview();                 //添加hide事件,滚到最顶部                 self.addEventListener("hide",function...(e){                     window.scrollTo(0,0);                     console.log("yin cang")

    1.8K40
    领券