首页
学习
活动
专区
圈层
工具
发布
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    移动端滚动研究

    移动web滚动问题 在移动端如果使用局部滚动,意思就是我们的滚动在一个固定宽高的div内触发,将该div设置成overflow:scroll/auto;来形成div内部的滚动,这时我们监听div的onscroll...方案比较 第一种方案由于惯性滚动的时机时由js自己控制所以可以拿到滚动触发阶段的scrolltop值,并且滚动的回调函数onscroll在滚动的阶段都会触发。...在使用模拟滚动时,浏览器在js层面会消耗更多的性能去改变dom元素的位置,在dom复杂层级深的页面更为高,所以在长列表滚动时还要使用正常滚动更好。...使用rAF(requestAnimationFrame)触发滚动事件 如果页面只需要兼容高版本浏览器或应用在移动端,又或者页面需要追求高精度的效果,那么可以使用浏览器的原生方法 rAF(requestAnimationFrame...important; } // js 代码 var body = document.body, timer; window.addEventListener('scroll', function

    3.9K20

    js - 移动端的超出滚动功能,附带滚动条,可解决弹层中滚动穿透问题。

    背景: 弹层里边有可滚动区域时,在移动端的坑我就不多说了。 找了很多解决滚动穿透的方案,最终都不能完美解决。 一气之下自己js撸了一个。 效果图: ?...原理: 1、解决滚动穿透:通过给弹层绑定touchmove和mousewheel事件,取消默认行为实现。...2、取消默认行为后不能滚动:给需要滚动展示的区域绑定touchstart、touchmove和mousewheel事件,监听触发区域的Y值,对应修改可滚动区域的translateY值,实现滚动效果。...37 transY += moveY; 38 if (moveY > 0 && transY > 0) { 39 /* 鼠标向下移动...touchToBottom(params.scroll, params.bar); 117 } 118 }); 119 } 120 完整demo见github: 移动端超出滚动效果

    8K10

    移动端滚动分页解决方案

    什么是移动端滚动分页 当用户滑动页面到底部时,便会触发页面的加载分页数据功能 解决方案 解决方案 目前主流的解决方案主要有两个,scroll 和 IntersectionObserver scroll...是页面滚动事件,当页面滚动时,判断滚动条距离是否触底,如果是,便执行分页逻辑 IntersectionObserver 是一个用于观察元素可见性变化的API。...它可以用于检测元素是否进入或离开视口(viewport),或者与其他元素发生交叉 scroll 目前m端淘宝采用的是 scroll,它的特点是兼容性够好。...几乎全部的浏览器都支持常用,缺点便是事件触发太频繁,因为每一滚动滚动都需要进行判断。 当我们移除掉淘宝 body元素上的scroll事件时,分页逻辑便失效了。...,当页面滚动时,判断滚动条距离是否触底,如果是,便执行分页逻辑 优点是兼容性好,缺点是事件触发频繁,性能差 IntersectionObserver 是一个用于观察元素可见性变化的API。

    90710

    移动端框架 滚动类 iScroll5

    HTML5学堂:移动端开发中,经常遇到需要模拟APP的效果header或是footer固定住,里面的内容区域实现滚动。但是对低端手机单纯使用CSS是兼容不了,需要JavaScript的支持。...本文讲解了使用iScroll5的使用方法,解决了固定高度的容器内滚动内容。...iscroll诞生的意义 之所以iscroll会诞生,主要是因为无论是在以前的iphone、ipod、android 或是更早前的移动webkit都没有提供一种原生的方式来支持在一个固定高度的容器内滚动内容...如果希望ul中的内容发生滚动,需要在外层添加一层,同时将iScroll的功能添加到最外层上。...scrollToElement(el, time, offsetX, offsetY, easing) 滚动到某个元素 offsetx和offsety定义像素偏移,这样你可以滚动到元素加上一个指定的偏移量

    1.5K90

    web移动端:touchmove实现局部滚动

    总结一下最近项目用到的一个功能点,具体要求如下: body中会呈现一个可滚动的长页面,在点击某个按钮的时候,会出现一个弹出框,由于弹出框的内容较长,会出现滚动条,但是要保证位于弹框下部的body在弹框滚动的时候不触发滚动事件... 管理 三.js...touchmove事件的要点主要是移动方向的判断和滑动边界的判断 移动方向的判断 var replyListTop=parseInt($(".replyList").css("top")...true:false B.向下滑动到下边界 由于滚动区域是包裹在replyContainer里面的,所以滚动区域的初始top值为标题区域的高度,只要标题区域的高度 == 滚动区域的top值...replyListTop : 3.2*fontHeight; } js完整代码 function replyCengShow(){ var startX; var startY

    1.7K20

    从 antDesign 来窥探移动端“滚动穿透”行为

    在移动端,我们完全可以使用一种通用的解决方案来解决上述造成“滚动穿透”意外行为: 无论元素是否可以滚动时,每次元素的拖拽事件触发时我们只需要进行判断: 寻找当前触发 touchMove 事件 event.target...通用 Hook 方案 useTouch 拖动位置 首先,我们先来看一个有关于移动端滚动的简单 Hook: import { useRef } from 'react' const MIN_DISTANCE...通过 useTouch 这个 hook 我们可以在移动端配合 touchstart、onTouchMove 轻松的计算出手指拖动时的方向和距离。...上述的代码仍然是按照我们在文章开头讲述的解决思路来解决移动端滚动链接的意外行为。...为 body 添加 overflow:hidden 其实在移动端并没什么太大的实际作用,我们 touchmove 事件中的处理逻辑对于阻止意外滚动行为的发生已经完全足够了。

    1.6K20

    【总结】1823- 移动端滚动穿透与滚动溢出解决方案

    滚动穿透 问题描述 在移动端 WEB 开发的时候(小程序也雷同),如上录屏所示,如果页面超过一屏高度出现滚动条时,在 fixed 定位的弹窗遮罩层上进行滑动,它下面的内容也会跟着一起滚动,看起来好像事件穿透到下面的...问题原因 能够猜想是文档(document)的滚动事件被触发了,如果能禁用滚动事件就好办了。...问题描述 如上录屏所示,弹窗内也含有滚动元素,在滚动元素滚到底部或顶部时,再往下或往上滚动,也会触发页面的滚动,这种现象称之为滚动链(scroll chaining), 但是感觉滚动溢出(overscroll...值 描述 auto 默认效果,元素的滚动可以传播到祖先元素。 contain 阻止滚动链,滚动不会传播到祖先元素,但是会显示节点自身的局部效果。...,从而页面滚动也不会触发了,而在滚动之间则不做处理。

    1.3K11

    无限滚动加载最佳实践

    优秀无限滚动的五项原则 将无限滚动做好,并不是不可能完成的任务。为了完成它,记住并遵守以下方针。 1....仅适用移动设备:因为移动端屏幕要小得多,导航条所占比例可以相对大一些。如果屏幕上是滚动的内容,用户滚动获取新内容的时候,导航条可以隐藏起来;当用户开始往回滚动试图回到顶部的时候再显示出来。 ? 2....如果有页脚,加上“加载更多”按钮 无限滚动阻碍用户的访问页脚。...结论 无限滚动实现得好的话,可以达到令人难以置信的光滑无缝体验。很好的是,关于好的无限滚动,你已经获得一些线索了,这会帮你建立完美的用户体验。...---- 往期精选文章 使用虚拟dom和JavaScript构建完全响应式的UI框架 扩展 Vue 组件 使用Three.js制作酷炫无比的无穷隧道特效 一个治愈JavaScript疲劳的学习计划 全栈工程师技能大全

    5.5K20
    领券