We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
最近在做移动端的项目,踩了许多坑,下面就是一些总结
2019 年 11 月 21 日
关于适配网上有很多文章总结了,这里就不做概括了,简单来说如果为了兼容低版本一些的可以用 rem 布局,如果对兼容没有太多要求可以尝试一下vw、vh适配。
vw、vh
出现的问题跟设备像素比有关,设计稿一般为 750,那么 375 的屏幕 1px 就是 0.5px,安卓对 0.5px 的写法并不支持,解决的方法下面这篇文章概括很全面 移动端 1px 解决方案
一般而言这个问题只有比较老的浏览器才会出现,很不幸我就遇到了,出现的原因跟事件的执行有关,当你点击的时候浏览器需要判断后面会不会继续跟一个点击,如果是就执行双击缩放的功能,下面说一下常见的解决方法
浮层弹出对话框之类的都是很常见的需求,我们一般而言会用fixed来实现,不过在移动端上依然是可以滚动的,下面就分享一种方法
fixed
var bodyEl = document.body; var top = 0; function stopBodyScroll(isFixed) { if (isFixed) { top = window.scrollY; bodyEl.style.position = "fixed"; bodyEl.style.top = -top + "px"; } else { bodyEl.style.position = ""; bodyEl.style.top = ""; // 回到原先的top window.scrollTo(0, top); } }
其他文章推荐
出现原因是因为 ios 取消了物理按键改用虚拟按钮
不要脸推荐一下自己之前写的文章,这个是安卓上才有,ios 不存在,建议的话就是不要使用fixed定位改用absolute;
absolute
可以在fixed/absolute样式内添加
fixed/absolute
overflow-y: auto; -webkit-transform: translateZ(0);
简单一些可以直接在点击的元素上设置
cursor: pointer;
最近在有一个需求就是从 A 文件 跳转到 B 文件,在 B 执行了一些请求之类的操作,但是 A 也要刷新,当然是不同的页面不是 SAP 的单页面,当时想了一下直接通过监听popstate事件不就可以获取么
popstate
<!-- 缩减代码 --> <a href="help.html">子页面</a> <script> window.onpopstate = function(event) { // 执行一些操作 }; </script>
不过很遗憾这种方法是不行的,因为popstate事件针对的是 history对象发生变化时,另外,该事件只针对同一个文档,如果浏览历史的切换,导致加载不同的文档,该事件也不会触发,类似的还有popstate也不会触发,暂时没找到解决方法,如果有找到解决方法的小伙伴分享一下下。
history
如果为内联样式动态辅助的时候注意兼容性的写法,常见的浏览器前缀如下
["Moz", "Webkit", "O", "ms", "Khtml"];
推荐一篇文章,觉得写得十分不错 前端认知:PPI、DPI、设备像素等概念
The text was updated successfully, but these errors were encountered:
No branches or pull requests
最近在做移动端的项目,踩了许多坑,下面就是一些总结
px 适配
关于适配网上有很多文章总结了,这里就不做概括了,简单来说如果为了兼容低版本一些的可以用 rem 布局,如果对兼容没有太多要求可以尝试一下
vw、vh
适配。1px
出现的问题跟设备像素比有关,设计稿一般为 750,那么 375 的屏幕 1px 就是 0.5px,安卓对 0.5px 的写法并不支持,解决的方法下面这篇文章概括很全面
移动端 1px 解决方案
click 点击延迟事件
一般而言这个问题只有比较老的浏览器才会出现,很不幸我就遇到了,出现的原因跟事件的执行有关,当你点击的时候浏览器需要判断后面会不会继续跟一个点击,如果是就执行双击缩放的功能,下面说一下常见的解决方法
浮层滚动
浮层弹出对话框之类的都是很常见的需求,我们一般而言会用
fixed
来实现,不过在移动端上依然是可以滚动的,下面就分享一种方法其他文章推荐
ios 底部安全区
出现原因是因为 ios 取消了物理按键改用虚拟按钮
安卓 fixed 定位输入框输入出现错位
不要脸推荐一下自己之前写的文章,这个是安卓上才有,ios 不存在,建议的话就是不要使用
fixed
定位改用absolute
;position:fixed/absolute 随屏幕滚动
可以在
fixed/absolute
样式内添加ios 点击失效
简单一些可以直接在点击的元素上设置
前进后退事件(暂时没找到实现方法)
最近在有一个需求就是从 A 文件 跳转到 B 文件,在 B 执行了一些请求之类的操作,但是 A 也要刷新,当然是不同的页面不是 SAP 的单页面,当时想了一下直接通过监听
popstate
事件不就可以获取么不过很遗憾这种方法是不行的,因为
popstate
事件针对的是history
对象发生变化时,另外,该事件只针对同一个文档,如果浏览历史的切换,导致加载不同的文档,该事件也不会触发,类似的还有popstate
也不会触发,暂时没找到解决方法,如果有找到解决方法的小伙伴分享一下下。最后
如果为内联样式动态辅助的时候注意兼容性的写法,常见的浏览器前缀如下
推荐一篇文章,觉得写得十分不错
前端认知:PPI、DPI、设备像素等概念
The text was updated successfully, but these errors were encountered: