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

移动端滚动研究

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

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

    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: 移动端超出滚动效果

    7.3K10

    移动端滚动分页解决方案

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

    5810

    移动端页面按手机屏幕分辨率自动缩放的js

    ,在页面头部加入以上一段js之后,在手机端就可以正常显示了, var phoneScale = phoneWidth/750; 除以的为设计图设计的页面宽度,750是按iphone6来设计(根据自己使用需求来修改...),即让页面的 放大比率=屏幕的逻辑分辨率/物理分辨率,从而达到适应手机的效果。...试想,浏览器如果把电脑端的980px的网页展现在宽度为750px的iphone6手机屏上,势必会放不下,手机端横向会出现滚动条,怎么阻止这种情况呢,很简单,浏览器默认一个虚拟窗口,不同浏览器有不同的虚拟窗口宽度的默认值如...:850px; Andriod webkit:800px; IE:974px; 然后会把这个980px虚拟窗口装进宽度为750px的iphone6中,当然这样的话必须缩放,这就是为什么在手机中展现电脑端页面没有出现横向滚动条...target-densitydpi=device-dpi可以强制内核以480DPI排版,使画面更精细,window.innerwidth也将为屏幕宽度1080.

    5.5K80

    【移动端网页布局】移动端网页布局基础概念 ① ( 移动端浏览器 | 移动端屏幕分辨率 | 移动端网页调试方法 )

    一、移动端浏览器 ---- 移动端浏览器 比 PC 端浏览器发展要晚 , 使用的技术比较新 , 对 HTML5 + CSS3 支持较好 , 常见的浏览器如下 : UC / QQ / Opera / Chrom.../ 360 / 百度 / 搜狗 / 猎豹 国内的浏览器 基本都是 根据 Webkit 内核进行修改而来的 , 目前没有自主研发的内核 , 因此 移动端开发适配比较简单 , 兼容主流的浏览器 , 即兼容...Webkit 内核浏览器即可 ; 二、移动端屏幕分辨率 ---- 移动设备的尺寸类型非常多 , Android / iOS 手机分辨率种类很多 , 参考 Android 屏幕适配 专栏 ; 【Android...屏幕适配】屏幕适配基础概念 ① ( Android 与 iOS 屏幕宽高比种类 | 屏幕像素密度 DPI ) 博客 ; 前端开发时 , 不需要关注上述 屏幕像素密度 dpi , 密度无关像素 dp..., 只需要关注 像素尺寸 px 即可 ; 三、移动端网页调试方法 ---- 使用 Chrom DevTools 谷歌浏览器开发工具 模拟手机调试 ; 使用 360 极速浏览器也可以使用该开发工具 ; 进入浏览器

    2.6K40

    移动端框架 滚动类 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.2K90

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

    总结一下最近项目用到的一个功能点,具体要求如下: body中会呈现一个可滚动的长页面,在点击某个按钮的时候,会出现一个弹出框,由于弹出框的内容较长,会出现滚动条,但是要保证位于弹框下部的body在弹框滚动的时候不触发滚动事件...e.originalEvent.changedTouches[0].pageX, startY = e.originalEvent.changedTouches[0].pageY; }); 2.移动屏幕添加相应事件...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.4K20

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

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

    60811

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

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

    58720

    移动端Web App 的屏幕适配方法(总结)

    移动端web页面的开发,由于手机屏幕尺寸、分辨率不同,或者需要考虑横竖屏问题,为了使得web页面在不同移动设备上具有相适应的展示效果,需要在开发过程中使用合理的适配方案来解决这个问题。...03 响应式做法 响应式这种方式在国内很少有大型企业的复杂性的网站在移动端用这种方法去做,主要原因是工作大,维护性难,所以一般都是中小型的门户或者博客类站点会采用响应式的方法从web page到web...,特别是加载图片资源 为了兼顾移动端和PC端各自响应式的展示效果,难免会损失各自特有的交互方式 04 viewport 缩放 在写页面时,直接使用px, 将页面写死。... 具体操作方法,可参与上一篇文章:viewport缩放方法,解决移动端自适配 05...100vh = 视口的高度 总结:关于移动端的适配方法,就总结到这里,欢迎大家参与讨论

    1.5K10

    移动端页面如何优雅的适配各种屏幕,包括PC端

    本文为Varlet组件库源码主题阅读系列第八篇,读完本篇,可以了解到移动端页面如何适配各种尺寸的屏幕,包括pc端,另外如何将触摸事件转换成鼠标事件。...移动端适配 开发移动端页面,我们通常都会按照一个固定宽度的设计稿来做,但是实际上的手机屏幕尺寸五花八门,如果不进行适配的话会比较影响使用体验。...Varlet组件库的设计就是基于375px宽度的设计稿,然后使用postcss-px-to-viewport进行移动端适配,这个PostCSS插件会将px单位转换成vw单位,1vw等于1/100的视口宽度...桌面端适配 这个适配指的不是尺寸,因为前面已经使用vw解决了尺寸的适配问题,这里主要是指事件,具体来说是我们在移动端使用的交互事件一般是touch事件,但是桌面端肯定不支持,所以为了让我们的移动端组件库不至于在桌面端完全无法使用...targetTouches:当前对象上所有触摸点的列表 changedTouches:涉及当前(引发)事件的触摸点的列表 移动端触摸点是可能存在多个的,比如我同时好几个手指一起触摸,可以通过这三个列表进行区分

    2.1K20
    领券