小白学习H5前端开发有哪些注意点?
更新时间:2023-02-01
术业教育分享给你常见的H5前端开发问题及解决方法,很多做H5前端开发的设计师都会遇到iOS上拉边界下拉出现白色空白的问题。术业教育资深H5前端开发讲师教你如何解决iOS上拉边界下拉出现白色空白的问题。
iOS上拉边界下拉出现白色空白:
手指按住屏幕下拉,屏幕顶部会多出一块白色区域。手指按住屏幕上拉,底部多出一块白色区域。
iOS上拉边界下拉出现白色空白产生原因:
在iOS中,手指按住屏幕上下拖动,会触发touchmove事件。这个事件触发的对象是整个 webview容器,容器自然会被拖动,剩下的部分会成空白。
iOS上拉边界下拉出现白色空白产生解决方案
1. 监听事件禁止滑动,移动端触摸事件有三个,分别定义为
touchstart:手指放在一个DOM元素上。
touchmove:手指拖曳一个DOM元素。
touchend:手指从一个DOM元素上移开。
显然我们需要控制的是touchmove事件,W3C文档有这样一段话
Note that the rate at which the user agent sends touchmove events is implementation-defined, and may depend on hardware capabilities and other implementation details.
If the preventDefault method is called on the first touchmove event of an active touch point, it should prevent any default action caused by any touchmove event associated with the same active touch point, such as scrolling.
touchmove事件的速度是可以实现定义的,取决于硬件性能和其他实现细节
preventDefault方法,阻止同一触点上所有默认行为,比如滚动。
由此我们找到解决方案,通过监听 touchmove,让需要滑动的地方滑动,不需要滑动的地方禁止滑动。
值得注意的是我们要过滤掉具有滚动容器的元素。
实现如下:
document.body.addEventListener('touchmove', function(e) {
if(e._isScroller) return;
// 阻止默认事件
e.preventDefault();
}, {
passive: false
});
2. 滚动妥协填充空白,装饰成其他功能
在很多时候,我们可以不去解决这个问题,换一直思路。根据场景,我们可以将下拉作为一个功能性的操作。
iOS上拉边界下拉出现白色空白:
手指按住屏幕下拉,屏幕顶部会多出一块白色区域。手指按住屏幕上拉,底部多出一块白色区域。
iOS上拉边界下拉出现白色空白产生原因:
在iOS中,手指按住屏幕上下拖动,会触发touchmove事件。这个事件触发的对象是整个 webview容器,容器自然会被拖动,剩下的部分会成空白。
iOS上拉边界下拉出现白色空白产生解决方案
1. 监听事件禁止滑动,移动端触摸事件有三个,分别定义为
touchstart:手指放在一个DOM元素上。
touchmove:手指拖曳一个DOM元素。
touchend:手指从一个DOM元素上移开。
显然我们需要控制的是touchmove事件,W3C文档有这样一段话
Note that the rate at which the user agent sends touchmove events is implementation-defined, and may depend on hardware capabilities and other implementation details.
If the preventDefault method is called on the first touchmove event of an active touch point, it should prevent any default action caused by any touchmove event associated with the same active touch point, such as scrolling.
touchmove事件的速度是可以实现定义的,取决于硬件性能和其他实现细节
preventDefault方法,阻止同一触点上所有默认行为,比如滚动。
由此我们找到解决方案,通过监听 touchmove,让需要滑动的地方滑动,不需要滑动的地方禁止滑动。
值得注意的是我们要过滤掉具有滚动容器的元素。
实现如下:
document.body.addEventListener('touchmove', function(e) {
if(e._isScroller) return;
// 阻止默认事件
e.preventDefault();
}, {
passive: false
});
2. 滚动妥协填充空白,装饰成其他功能
在很多时候,我们可以不去解决这个问题,换一直思路。根据场景,我们可以将下拉作为一个功能性的操作。
相关问答:
- 2023-03-20※ 上海学习网页前端开发课程去哪报名?
- 2023-02-22※ 上海嘉定如何成为WEB全栈开发工程师?
- 2023-02-20※ 上海H5前端开发师的薪资高吗?
- 2023-02-20※ 上海徐汇HTML5网页美工设计师培训班
- 2023-02-18※ 上海普陀如何学习成为web前端开发工程师?
- 2023-02-17※ 上海虹口Web前端开发网页制作入门培训
- 2023-02-15※ 上海普陀web前端设计培训班学什么?
- 2023-02-15※ 嘉定Web前端设计培训班学习网页设计技巧
热门问答
-
上海新手去哪学习模具设计...
学模具设计要学多久?模具设计怎么学?有关模具设计培...
-
上海徐汇零基础学习Lum...
景观动画渲染培训班:Lumion动画渲染和Ensc...
-
上海普陀零基础学习Lum...
上海景观园林设计培训学校:Lumion景观动画及E...
-
上海景观动画渲染培训班适...
海景观园林设计培训学校:景观动画渲染培训班课程介绍...
-
上海普陀报名景观设计培训...
上海术业教育SketchUp景观设计培训班通过景观...
-
上海术业教育的景观手绘设...
景观手绘培训班去哪里报名?术业教育景观手绘培训班。...
-
上海术业教育开设景观庭院...
景观设计培训学校哪家好?术业教育景观庭院设计培训班...
-
上海徐汇CG插画就业班哪...
什么是CG插画?CG插画和传统手绘插画有什么区别?...
-
上海徐汇适合新手学习的C...
CAD机械制图的标题栏位于图中的右下角,标题栏一般...
-
上海模具设计培训学校学习...
很多人知道机械制图原理,却不知道如何用CAD制图软...
免费试听课程
课程顾问为您服务,与全球1000万会员一起提高学习掌握技能