项目中碰到的兼容类 bug,记录一二. 页面上有几个同类型的控件,点击它们会触发一些事件,很显然,事件委托优于批量绑定.为了图方便,我将 click 事件绑定到了 document.body 上(绑定在 document 上也是一样),在安卓机上反应良好,ios 上居然不会触发点击事件! 试着将事件绑定到了控件的父级元素,问题消失了. 事实上,当使用事件委托给一个元素添加 click 事件时,如果事件是委托到 document 或 body 上,并且委托的元素是默认不可点击的(如 div, sp…
今天发现在ios下new Date("2019-03-06").getTime()返回NaN 原因是ios下不支持“-”必须用"/" 记录备忘 var d = new Date("2017-08-11 12:00:00".replace(/-/g, "/"));…
1.现象 可以看到下面两张图,图1搜索框为fixed固定在顶部,滚动没有任何问题. 图2当光标进入搜索框时,ios自作聪明的把光标定位到中间,并且fixed属性被自动修改成了absolute.此时注意滚动页面的话,会发现原本fixed的搜索框跟着文档一起滚动了. 再仔细观察ios下的一些特点,ios为了让input垂直居中,甚至还滚动了滚动条,原本看不到的上半段产品的内容也漏出来了. 2. 参考别人的解决方法 在网上搜索过后,大部分都是转载的这一篇文章,甚至配图都是拿别人原来的: http://…
简短记录下最近开发移动端项目碰到的小坑,产品需求做一个售后对话页面,底部固定输入框,和微信对话差不多,但是在ios下,fixed失效,输入框被虚拟键盘挡住,在安卓下是正常的. 尝试过网上说的很多方法,因为每个页面的需求和布局可能不相同,比如我做的需要下拉刷新消息,上拉加载更多,用的是minit-UI来做,所以都没有效果 后面无奈用了两套代码,用 var u = navigator.userAgent, app = navigator.appVersion;var isiOS = !!u.matc…
今天发现一个好东西,赶紧记下来,我在用textarea的时候,想要自适应高度,这样就不会出现滚动条.网上找了很多,都是用div模拟的,但是好扯淡,div模拟的在ios下不能聚焦并且不能输入.真坑.... 然后找了很久,发现了下面这个好东西,嘿嘿嘿,我给你看个宝贝. 这个就不需要去模拟啦,可以直接使用textarea. (function (root, factory) { 'use strict'; if (typeof define === 'function' && define.am…
input 光标位置乱窜 固定式浮层内的输入框光标会发生偏移.即 fixed 定位的容器中输入框光标的位置显示不正确,没有正常地显示在输入框中,而是偏移到了输入框外面 可触发条件 页面body出现滚动条 点击页面出现用fixed定位的弹框,弹框内有输入框,键盘弹起,页面发生滚动 键盘弹起后手动滚动页面 通过调试工具发现键盘弹起视图向上调整了,但页面中元素所占的位置,其实并没有向上进行调整:输入框所占的位置还是原来键盘未弹起时的位置 input位置 原因  软键盘唤起后,页面的 fixed 元素将…
$(document).on("click","目标class",function(){ //安卓下点击可以,ios下面失效 }) 百度了下说是H5新定义的, 直接说解决方案吧 我一开始的点击元素是li ,因为我布局是ul li嵌套的, 把点击元素换成a标签就可以了,网上还有很多种方法,没有一一去实验…
最近 做项目,做的要是拍照后上传相片,以file格式上传..所以 拍照 后用canvas生成base64格式再转file..在PC和安卓都是没有问题,到IOS上面不行..new file后就是生成一个{}: 查了下file对象 ,支持的浏览器如下: 接口文档 上面 介绍的是file也是 特殊的类型blob: 而blob对象 主持 主流 的浏览器 .所以转换为blob再转成file来上传,代码 如下: //转成blob function dataURLtoBlob(toDataURL) { var…
什么是事件委托:通俗的讲,onclick,onmouseover,onmouseout,等就是事件,委托呢,就是让别人来做,这个事件本来是加在某些元素上的,然而你却加到别人身上来做,完成这个事件. 也就是:利用冒泡的原理,把事件加到父级上,触发执行效果. 好处1,提高性能. 先看一个例子:需要触发每个li来改变他们的背景颜色. <ul id="ul"> <li>aaaaaaaa</li> <li>bbbbbbb</li> &l…
一.由于某些特殊情况下,需要用到事件委托,比如给动态创建的DOM绑定click事件,这里就需要事件委托(这里就牵扯到:目标元素和代理元素)目标元素:动态创建的元素,最终click事件需要绑定到该元素 代理元素:动态创建的元素的父级元素,或者document,body等. 二.BUG情况 当使用事件委托给[目标元素]添加 click 事件时,如果[代理元素]是 document或body,并且[目标元素]是默认不可点击的(如 div, span 等),此时click事件会失效.如果[目标元素]是可…