首页
学习
活动
专区
圈层
工具
发布

2017移动前端的一些总结web前端 —— 移动端知识的一些总结一.css部分二.js部分

,触发baseline什么的。。。)...中,当你点击比如 input 准备输入时,虚拟键盘弹出,整个视窗的 高度 就会变为 减去键盘 的高度,加入你在底部有 fixed的元素比如 btn,这个元素就会跑上来,一般都不会太美观。...我是当 focus时就把它设为 absolute,视情况而定,也有比如显示一个新的层,将含有 fixed按钮的那一层隐藏的情况等等。...另外一种情况(一般在页面内容很少时 iphone5及以上常发生),当输入框弹出时 fixed元素挤到输入框上,当输入框消失时, fixed元素并没有随着输入框的消失而回到底部,这是因为整个视窗的高度还保持在...(这个没用过)  ③ 有的时候比如弹出一个 iphone上滑动出来的层,点击黑色半透明区域弹出层消失,这种可以在黑色区域绑定 touchend也是和 tap差不多的效果 7.当弹窗出现时,想禁止屏幕的滑动

4.2K40

移动端click延迟及zepto的穿透现象 转

,touchend事件先发生, 当touchend事件冒泡到document时触发目标元素绑定的tap事件 简单模拟zepto tap的实现方式(这里忽略touchstart与touchend的点击位置的判断...): // document元素上绑定touchend事件, 在touchend的事件处理函数中自定义tap事件, 当点击的目标元素的touchend事件冒泡到document上时, 触发绑定在目标元素上的...穿透现象: 遮罩层中有一个标签绑定了tap事件,触发时遮罩层消失,该标签正下方有一个绑定了click的按钮,此时点击上层的标签,同时也会触发下层元素的click事件,出现穿透的现象。...为什么会出现穿透: 结合前面tap事件的原理来分析: 当触发tap事件,上层遮罩层关闭后,此时事件只进行到touchend,而click是在大概300ms后才触发,当click触发时,上面的遮罩层已消失...下层什么样的元素才会形成穿透: 根据原理来说,因为穿透是发生在click发生时,也就是下层绑定了click事件或click时会触发的事件(focus focusout)的元素,或点击时有默认形为的标签元素

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

    移动开发实用

    不管当前有多少只手指 touchmove 当手指在屏幕上滑动时连续触发。...通常我们再滑屏页面,会调用event的preventDefault()可以阻止默认情况的发生:阻止页面滚动 touchend 当手指离开屏幕时触发 touchcancel 系统停止跟踪触摸时候会触发。...不管当前有多少只手指 MSPointerMove 当手指在屏幕上滑动时连续触发。...通常我们再滑屏页面,会调用css的html{-ms-touch-action: none;}可以阻止默认情况的发生:阻止页面滚动MSPointerUp——当手指离开屏幕时触发 移动端click屏幕产生...什么是Retina 显示屏,带来了什么问题 retina:一种具备超高像素密度的液晶屏,同样大小的屏幕上显示的像素点由1个变为多个,如在同样带下的屏幕上,苹果设备的retina显示屏中,像素点1个变为4

    8.4K30

    移动端web开发笔记

    不管当前有多少只手指 touchmove——当手指在屏幕上滑动时连续触发。...通常我们再滑屏页面,会调用event的preventDefault()可以阻止默认情况的发生:阻止页面滚动 touchend——当手指离开屏幕时触发 touchcancel——系统停止跟踪触摸时候会触发...例如在触摸过程中突然页面alert()一个提示框,此时会触发该事件,这个事件比较少用 4、移动端click屏幕产生200-300 ms的延迟响应 移动设备上的web网页是有300ms延迟的,玩玩会造成按钮点击延迟甚至是点击失效...以下是历史原因: 2007年苹果发布首款iphone上IOS系统搭载的safari为了将适用于PC端上大屏幕的网页能比较好的展示在手机端上,使用了双击缩放(double tap to zoom)的方案,...{display: none} 框架 移动端基础框架 zepto.js 语法与jquery几乎一样,会jquery基本会zepto~ iscroll.js解决页面不支持弹性滚动,不支持fixed引起的问题

    4.9K20

    jquery 绑定事件 - blur() 失去焦点 - focus() 获取焦点

    事件函数列表 blur() 元素失去焦点 focus() 元素获得焦点 click() 鼠标单击 mouseover() 鼠标进入(进入子元素也触发) mouseout() 鼠标离开(离开子元素也触发)...() DOM加载完成 resize() 浏览器窗口的大小发生改变 scroll() 滚动条的位置发生变化 submit() 用户递交表单 编写一个form表单,用来演示输入框获取焦点和失去焦点的示例 ?...好了,有了基本的HTML架构之后,就可以来演示了。 focus() 元素获得焦点 首先先来这个focus()函数。 ? 可以看到当获取焦点的时候,就立即弹出alert()。...其实通过focus()函数只是简单用来初始化文本框的焦点输入的而已,如下: ? 当刚进入页面,文本框就自动获取焦点,这基本上就是这个方法的大部分用法了。...blur() 元素失去焦点 使用blur()失去焦点这个方法一般会结合获取文本框内容的函数一起使用,如下: ? 当获取到文本框内的值之后,就可以对其进行正则验证或者其他方式的校验。

    14.1K30

    移动端问题收集和解决

    tap击穿问题 问题描述 绑定tap方法的dom元素,触发该方法时,该dom元素下方同一位置的dom元素会触发click事件或者有浏览器认为可以被点击交互的dom元素(input的focus事件)...问题描述 IOS下,当input输入框获取焦点focus,弹起虚拟键盘之后,页面上position: fixed的元素的位置会错乱。...设置 text-size-adjust 为 none 可以解决 iOS 上的问题,但桌面版 Safari 的字体缩放功能会失效,因此最佳方案是将 text-size-adjust 为 100% 。...,input 事件会截断非直接输入,什么是非直接输入呢,在我们输入汉字的时候,比如说「开心」,中间过程中会输入拼音,每次输入一个字母都会触发 input 事件,然而在没有点选候选字或者点击「选定」按钮前...tap' : 'click', function() { initHeight = window.innerHeight; $('#input').focus(); }); 3、当键盘收起的时候我们需要将真输入框再次隐藏掉

    2.4K20

    收藏 | 移动端H5开发常用技巧总结

    在高清屏下,移动端的 1px 会很粗。 那么为什么会产生这个问题呢?...目前主流的屏幕 DPR=2(iPhone 8),或者 3(iPhone 8 Plus)。拿 2 倍屏来说,设备的物理像素要实现 1 像素,而 DPR=2,所以 css 像素只能是 0.5。...加入自动触发播放的代码 $('html').one('touchstart', function() { audio.play() }) iOS 上拉边界下拉出现空白 手指按住屏幕下拉,屏幕顶部会多出一块白色区域...手指按住屏幕上拉,底部多出一块白色区域。 在 iOS 中,手指按住屏幕上下拖动,会触发 touchmove 事件。...如果该元素已经在浏览器窗口的可见区域内,则不会发生滚动。 true,则元素将在其所在滚动区的可视区域中居中对齐。 false,则元素将与其所在滚动区的可视区域最近的边缘对齐。

    4.9K20

    02-老马jQuery教程-jQuery事件处理

    blur事件会在元素失去焦点的时候触发,既可以是鼠标行为,也可以是按tab键离开的 focus([[data],fn]) $("p").focus(); 当元素获得焦点时,触发 focus 事件。...focusout事件跟blur事件区别在于,他可以在父元素上检测子元素失去焦点的情况 change([[data],fn]) $('p').change(); 当元素的值发生改变时,会发生 change...当按钮被按下时,会发生该事件。它发生在当前获得焦点的元素上。 不过,与 keydown 事件不同,每插入一个字符,就会发生 keypress 事件。...构造函数传入选择器,返回的是一个jQuery的包装对象 // 大部分的api都是在jQuery包装对象上 // console.dir($inputArray); $inputArray.focus...当点击段落的时候会触发 foo $("p").unbind("click", foo); // ...

    7.6K00

    前端开发JS——jQuery常用方法

    (针对输入文本的元素,其他立即触发),会触发表单绑定的change事件 方法:$ele.change(handler(eventObject)) change的参数是函数(回调函数),表单元素值发生改变再失焦...当这两元素的文本被选中时会触发select事件 方法一:$ele.select () focusin 无参,只是绑定一个事件,在函数里可以实现其他的绑定事件 方法二:$ele.select (handler...强调按下,keyup强调松开;如果点击按住不放并离开元素,还是会实现所绑定的事件;理论上可以绑定所有元素,一般用于表单元素。...keydown事件:每次获取的内容都是之前输入的,当前输入的获取不到,这就由下一知识点解决。...").on("click","p",fn) 注:事件绑定在最上层div元素上,当用户触发在a元素上,事件将往上冒泡,一直会冒泡在div元素上。

    6.3K20

    如何解决移动端Click事件300ms延迟的问题?

    为什么移动端点击事件要加300ms延迟呢? 早在 2007 年初,苹果公司在发布首款 iPhone 前夕,遇到一个问题:当时的网站都是为大屏幕设备所设计的。...于是苹果的工程师们做了一些约定,应对 iPhone 这种小屏幕浏览桌面端站点的问题。 ?...双击缩放,顾名思义,即用手指在屏幕上快速点击两次,iOS 自带的 Safari 浏览器会将网页缩放至原始比例。 那么这和 300 毫秒延迟有什么联系呢? ?...鉴于iPhone的成功,其他移动浏览器都复制了 iPhone Safari 浏览器的多数约定,包括双击缩放,几乎现在所有的移动端浏览器都有这个功能。...在页面的DOM文档加载完成后 fastClick.attach(document.body) 如果你用过FastClick在移动端,就会发现有一个体验很不好的问题,某些ios上,点击输入框想唤启软键盘,

    1.9K30

    02-老马jQuery教程-jQuery事件处理

    blur事件会在元素失去焦点的时候触发,既可以是鼠标行为,也可以是按tab键离开的 focus([[data],fn]) $("p").focus(); 当元素获得焦点时,触发 focus 事件。...focusout事件跟blur事件区别在于,他可以在父元素上检测子元素失去焦点的情况 change([[data],fn]) $('p').change(); 当元素的值发生改变时,会发生 change...它发生在当前获得焦点的元素上。注释:如果在文档元素上进行设置,则无论元素是否获得焦点,该事件都会发生。...当按钮被按下时,会发生该事件。它发生在当前获得焦点的元素上。 不过,与 keydown 事件不同,每插入一个字符,就会发生 keypress 事件。...当点击段落的时候会触发 foo $("p").unbind("click", foo); // ...

    3.7K80

    jQuery 教程

    什么是事件? 页面对不同访问者的响应叫做事件。 事件处理程序指的是当 HTML 中发生某些事件时所调用的方法。 实例: 在元素上移动鼠标。...在下面的实例中,当点击事件在某个 元素上触发时,隐藏当前的 元素: $("p").click(function(){ $(this).hide(); }); dblclick() 当双击元素时...当鼠标移动到元素上时,会触发指定的第一个函数(mouseenter);当鼠标移出这个元素时,会触发指定的第二个函数(mouseleave)。...; } ); focus() 当元素获得焦点时,发生 focus 事件。 当通过鼠标点击选中元素或通过 tab 键定位到元素时,该元素就会获得焦点。...focus() 方法触发 focus 事件,或规定当发生 focus 事件时运行的函数: $("input").focus(function(){ $(this).css("background-color

    21.1K20

    JQuery之内置函数响应事件

    2.keypress  当键盘或按钮被按下时,发生 keypress 事件。keypress 事件与 keydown 事件类似。当按钮被按下时,会发生该事件。它发生在当前获得焦点的元素上。...3.keyup  当按钮被松开时,发生 keyup 事件。它发生在当前获得焦点的元素上。注释:如果在文档元素上进行设置,则无论元素是否获得焦点,该事件都会发生。...当鼠标指针位于元素上方时,放松鼠标按钮就会触发该事件。 8.click 当鼠标点击并松开的时候会触发每一个匹配元素的click事件。...三:input事件 1.获得焦点focus :当元素获得焦点时,触发 focus 事件。可以通过鼠标点击或者键盘上的TAB导航触发。...这将触发所有绑定的focus函数,注意,某些对象不支持focus方法。 2.失去焦点blur :当元素失去焦点时触发 blur 事件。

    2.9K60

    IOS、iPhone移动端,表单input聚焦时页面放大的解决办法

    最近的一个项目中,发现几个页面在使用 iPhone 11 访问的时候,点击 input 和 textarea 等文本输入框聚焦 focus() 时,页面会整体放大。...经检查发现并没有什么特定的功能是让页面放大的,最后找到原因:苹果觉得点击输入框放大是一个“很好”的体验,就擅自把页面给放大了,单纯的用 meta 禁止页面放大是没有用的,可以使用下面两种方法解决。...1、viewport meta 标签: 浏览器的 viewport 是可以看到 Web 内容的窗口区域,通常与渲染出的页面的大小不同,这种情况下,浏览器会提供滚动条以滚动访问所有内容。...initial-scale 属性控制页面最初加载时的缩放等级,即当页面第一次 load 的时候缩放比例。 maximum-scale 属性控制允许用户缩放到的最大比例。...minimum-scale 属性控制允许用户缩放到的最小比例。 user-scalable 属性控制用户是否可以手动缩放。

    8.1K20

    杨老师课堂之Jquery的筛选,事件,效果,Ajax,javascript跨域)

    trigger()触发所有的事件(包括浏览器默认的) triggerHandler()触发所有的事件(不包括浏览器默认的) 事件冒泡 1.什么是冒泡 案例介绍 之所以称之为冒泡,是因为事件会按照...事件冒泡可能会引起预料之外的效果,上例中,本来只想触发元素 的click事件,然而 元素和元素的click事件也同时被触 发了.因此有必要对事件的作用范围进行限制.当单击元素时,只 触发元素的click...事件,而不触发 和元素上的 click事件.当单击 元素时,只触发 元素上的click事件, 而不触发元素上的click事件....span元素时,只会触发span元素上的click事件,而不会触发 div元素和body元素的click事件....可以用同样的方法解决 元素上的问题 阻止默认行为 网页中的元素都有自己默认的行为,例如:单击超链接后悔跳转,单击”提交”按钮会表单会提交,有时需要阻止元素的默认行为 在jquery中,提供了preventDefault

    10.2K20

    jQuery 事件(三) 事件的绑定和解绑、对象的使用、自定义事件

    给出如下代码: $("div").on("click","p",fn) 事件绑定在最上层div元素上,当用户触发在a元素上,事件将往上冒泡,一直会冒泡在div元素上。...正常来说是不可以的,但是jQuery解决了这个问题,提供了一个trigger方法来触发浏览器事件 $('#elem').trigger('click'); //在绑定on的事件元素上,通过trigger...尽管 .trigger() 模拟事件对象,但是它并没有完美的复制自然发生的事件,若要触发通过 jQuery 绑定的事件处理函数,而不触发原生的事件,使用.triggerHandler() 来代替 triggerHandler...() 会影响所有与 jQuery 对象相匹配的元素,而 .triggerHandler() 仅影响第一个匹配到的元素 使用 .triggerHandler() 触发的事件,并不会在 DOM 树中向上冒泡...如果没有触发任何事件,会返回 undefined <!

    4.9K30

    【JS】310- 使用 focusout 事件,解决 iOS 键盘收起不归位问题

    ,IPhone键盘会弹出,此时iphone上为了让用户可以看到电话输入框,会将整个页面整体向上移动(不然键盘会遮住电话输入框)。...事件代理: 即,我们把事件监听放到顶部元素上;然后定义一个 inputBlur 的函数等待触发。...但是经过手机测试发现,当我们从 电话输入框 直接切换到 姓名输入框 这种操作时,页面会发生抖动。我们来继续分析。 解决抖动问题 其实2个输入框切换时 抖动的原因也很简单。...因为我们在上述两个输入框之间切换时,页面会首先触发 电话输入框 的 blur事件,接着触发 姓名输入框 的 focus 事件。...因此看我们修改下我们的代码,让输入框切换这种操作发生时,可以切断第一个输入框的行为。

    3.9K10
    领券