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

移动端滚动研究

移动web滚动问题 在移动端如果使用局部滚动,意思就是我们的滚动在一个固定宽高的div内触发,将该div设置成overflow:scroll/auto;来形成div内部的滚动,这时我们监听div的onscroll...发现触发的时机区分android和ios两种情况,具体可以看下面表格: | 机型(内核) | body滚动 | 局部滚动 | | :-: | :-: | :-: | | ios | 不能实时触发 |...关于模拟滚动 概念 正常的滚动:我们平时使用的scroll,包括上面讲的滚动都属于正常滚动,利用浏览器自身提供的滚动条来实现滚动,底层是由浏览器内核控制。...使用rAF(requestAnimationFrame)触发滚动事件 如果页面只需要兼容高版本浏览器或应用在移动端,又或者页面需要追求高精度的效果,那么可以使用浏览器的原生方法 rAF(requestAnimationFrame...timer = setTimeout(function(){ body.classList.remove('disable-hover') },500); }, false); 参考 移动

3.2K20

移动端复杂表格表头

复杂表格表头 前言 最近做移动端的h5项目,要做一个可配置表头的复杂表格,网上找了很久也没什么好方法,结合网上的一些例子,在此做一了一个完整的vue版的例子。...preventDefault: false, // 阻止浏览器滑动默认行为 probeType: 3, //需要使用 iscroll-probe.js 才能生效 probeType : 1 滚动不繁忙的时候触发...: true, //主要在上下左右滚动都生效时使用,可以向任意方向滚动。...eventPassthrough: false, //使用 IScroll 的横轴滚动时,如想使用系统立轴滚动并在横轴上生效,请开启。....rolling-table 要设置高度,不然向上滚动失效 2.固定和行与列,即:rows、cross 的position要设为relative 最终效果就如上图。

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

    如何纯CSS实现标题栏、表格头水平滚动垂直不滚动

    有些报表会很宽,浏览器水平放不下,需要水平滚动显示,这个可以设置overflow-y:hidden实现,很基本的实现,没什么难度。但是,如果同时希望垂直滚动的时候,表格头是固定的。此时该如何实现呢?...box{display:flex;flex-direction:column;}.top{height:30px;}.content{flex:1}但是实现代码比起  :《纯CSS实现标题栏、表格头水平滚动垂直不滚动...这里有一个特别注意的地方,就是需要设置 top: 0;单独设置position: sticky;  无效。...https://codepen.io/lujun-zhou/pen/MWmGMyP如果使用 绝对定位实现,这个其实没有啥好说的。...转载本站文章《如何纯CSS实现标题栏、表格头水平滚动垂直不滚动》,请注明出处:https://www.zhoulujun.cn/html/webfront/SGML/html5/2021_0731_8650

    1.6K00

    移动端滚动分页解决方案

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

    5810

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

    总结一下最近项目用到的一个功能点,具体要求如下: body中会呈现一个可滚动的长页面,在点击某个按钮的时候,会出现一个弹出框,由于弹出框的内容较长,会出现滚动条,但是要保证位于弹框下部的body在弹框滚动的时候不触发滚动事件...touchmove事件的要点主要是移动方向的判断和滑动边界的判断 移动方向的判断 var replyListTop=parseInt($(".replyList").css("top")...moveEndY-startY; //向上滑动 if(moveY < 0){ } //向下滑动 else if(moveY > 0){ } }); 移动边界的判断...true:false B.向下滑动到下边界 由于滚动区域是包裹在replyContainer里面的,所以滚动区域的初始top值为标题区域的高度,只要标题区域的高度 == 滚动区域的top值...{ $(".replyList").css("top",replyListTop+"px"); replyListTop= replyListTop+moveY; //判断加上移动后的位置是否越界

    1.4K20

    移动端框架 滚动类 iScroll5

    HTML5学堂:移动端开发中,经常遇到需要模拟APP的效果header或是footer固定住,里面的内容区域实现滚动。但是对低端手机单纯使用CSS是兼容不了,需要JavaScript的支持。...本文讲解了使用iScroll5的使用方法,解决了固定高度的容器内滚动内容。...iscroll诞生的意义 之所以iscroll会诞生,主要是因为无论是在以前的iphone、ipod、android 或是更早前的移动webkit都没有提供一种原生的方式来支持在一个固定高度的容器内滚动内容...这个不幸的规则导致所有web-app要模拟成app的样子时,只能由一个绝对定位的header或是footer再加上一个可以内容的滚动的中间区域组成。   ...如果希望ul中的内容发生滚动,需要在外层添加一层,同时将iScroll的功能添加到最外层上。

    1.2K90

    解决移动端水平滚动使用justify-content显示不全问题

    今天做移动端页面遇到一个坑,我需要实现的效果是这样的 ? 由于选项的个数是不一定的,如果很少的话不会有横向滚动,是需要居中的 ?...自然而然的是这么写的 .father { display:flex; justify-content: center;...flex-direction: column; align-items: center; } } 结果会发现第一个元素是展示不全的,...如果把father里的justify-content: center;换成justify-content: space-between;或者justify-content: left; 是可以的,但是当只展示两三个选项时就会间距过大...而我们需要选项过少的时候是center效果,多了则显示全并能滚动。 想过对第一个选项的css单独处理,但是还要判断选项个数,其实和自己试出来的页面能展示多少个选项不滚动没区别。

    2.6K20

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

    滚动穿透 问题描述 在移动端 WEB 开发的时候(小程序也雷同),如上录屏所示,如果页面超过一屏高度出现滚动条时,在 fixed 定位的弹窗遮罩层上进行滑动,它下面的内容也会跟着一起滚动,看起来好像事件穿透到下面的...问题原因 能够猜想是文档(document)的滚动事件被触发了,如果能禁用滚动事件就好办了。...Step 1、监听弹窗最外层元素(popup)的 touchmove 事件并阻止默认行为来禁用所有滚动(包括弹窗内部的滚动元素)。...Step 2、释放弹窗内的滚动元素,允许其滚动:同样监听 touchmove 事件,但是阻止该滚动元素的冒泡行为(stopPropagation),使得在滚动的时候最外层元素(popup)无法接收到 touchmove...值 描述 auto 默认效果,元素的滚动可以传播到祖先元素。 contain 阻止滚动链,滚动不会传播到祖先元素,但是会显示节点自身的局部效果。

    60811

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

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

    58620

    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

    有意思的水平横向溢出滚动

    来看看这么一种情况: 我们有一个垂直方向溢出滚动的容器,以及一个水平方向溢出滚动的容器: 如果使用的是非触控板(大部分用户没有触控板),而是使用鼠标来进行操作,会发现,这两个容器中,只有垂直方向溢出滚动的容器...,是可以响应鼠标滚轮的: 垂直方向溢出滚动的容器,正常响应鼠标滚轮,可滚动内容 水平方向溢出滚动的容器,不会响应鼠标滚轮,不可滚动内容 那么,这里可能就是一个用户痛点。...那是必须的,本文就将介绍一种可能可行的技巧,在特定场景下在水平方向溢出滚动的容器,依然可以用鼠标滚轮进行滚动。 旋转大法 是的,既然只有垂直方向的溢出,才能响应滚轮操作。那我们不妨从这个角度入手。...要想变成水平方向的,我们只需要给容器旋转 90° 不就行了吗?...,就变成了水平的容器,图中鼠标没有在滚动条上容器的运动就是通过滚轮实现的。

    2.5K10

    创建水平滚动的正确方式【CSS 网格布局】

    ,在移动端中我们一直使用横向布局。...本文,我们探讨 CSS 网格的弹性布局,它是如何帮助我们实现水平滚动的,同时处理它带来的缺陷。...但是,当采用水平滚动布局时,至少需要满足两点 UX 原则: 你的设计必须在视觉上提醒他人,这是一组可以水平滚动的内容。最好的方法,就是让可滚动的内容露出一部分。 用户知道什么时候滚到末尾,这很重要。...滚动的部分内容,必须在容器边缘露出来。 滚动时,容器的内容必须从屏幕的边缘滑出来。 容器内两个内容之间的距离要小于边缘的距离,这样容器两端都会有更大的空间(这提示用户他们已经滑到最后)。...如下: 需要注意的是,容器两端的距离和周围内容的距离是匹配的(也就是整体布局要和谐)。 整体布局 现在,我们已经基本明白水平滚动容器的特性了。接下来,我们考虑使用 CSS Grid 网格布局来编码。

    2.6K50

    基于 Vue.js 的移动端组件库mint-ui实现无限滚动加载更多

    通过多次爬坑,发现了这些监听滚动来加载更多的组件的共同点, 因为这些加载更多的方法是绑定在需要加载更多的内容的元素上的, 所以是进入页面则直接触发一次,当监听到滚动事件之后,继续加载更多, 所以对于无限滚动加载不需要写首次载入列表的函数...已全部加载完成"; this.loadingComplete=true; this.loading = false; } }, 这里重要的是判断...,当当前页面为0的时候,即第一页的时候,不需要setTimeout定时器,直接请求加载,当加载更多的时候可以加个定时器。...网上找到很多mint-ui 的loadmore组件来实现上拉加载更多,由于上拉触发相应的加载更多事件,所以当进入页面的时候应该不会自动载入数据,则这里可以加一个获取第一页数据的函数。

    2.6K50

    【移动端网页布局】移动端网页布局基础概念 ⑧ ( 移动端页面布局方案 | 单独制作的移动端页面 - 主流 | 响应式页面兼容移动端 - 开发难度较大 )

    一、移动端页面布局方案 移动端页面方案 : 单独制作的移动端页面 : 主流开发方案 , PC 端 与 移动端 访问的是不同的页面 , 目前的 京东 / 淘宝 等电商网站移动端页面采取的该方案 ; 响应式页面兼容移动端...: 开发难度较大 , PC 端与移动端访问的是相同的页面 ; 1、单独制作的移动端页面 通过设备类型判断要加载的网页类型 , 一般会在域名前添加 m 打开移动端 , 如京东域名为 jd.com , 使用...m.jd.com 可以访问其移动端页面 ; 如京东商场 , 在浏览器中输入 https://www.jd.com/ 域名 , 进入的是 PC 端的网页 , 在浏览器中 , 按 F12 进入调试模式..., 选择手机设备调试 , 输入 https://www.jd.com/ 域名 , 会自动跳转到 https://m.jd.com/ 手机端页面中 , 京东后台会认为是移动设备请求页面 , 自动跳转到移动端页面...; 2、响应式页面兼容移动端 响应式页面兼容移动端 的原理是 通过 判断当前的 屏幕宽度 , 改变当前的页面样式 , 适应不同的设备 ; 如果不断地缩小浏览器的窗口的宽度 , 网页会不停地自适应修改布局

    3.8K40
    领券