insilence

手机端flex、字体设置、快速点击
 1 ;(function flexible (window, document) {
 2         var docEl = document.documentElement
 3♥1       var dpr = window.devicePixelRatio || 1
 4 
 5         // adjust body font size
 6         function setBodyFontSize () {
 7♦2           if (document.body) {
 8                 document.body.style.fontSize = (12 * dpr) + 'px'
 9             }
10             else {
11♣3               document.addEventListener('DOMContentLoaded', setBodyFontSize)
12             }
13         }
14         setBodyFontSize();
15 
16         // set 1rem = viewWidth / 10
17         function setRemUnit () {
18             var rem = docEl.clientWidth / 10
19             docEl.style.fontSize = rem + 'px'
20         }
21 
22         setRemUnit()
23 
24         // reset rem unit on page resize
25♣3       window.addEventListener('resize', setRemUnit)
26♣3       window.addEventListener('pageshow', function (e) {
27◊4           if (e.persisted) {
28                 setRemUnit()
29             }
30         })
31 
32      
33         44     }(window, document));

 1

window.devicePixelRatio 是设备上物理像素和设备独立像素(device-independent pixels (dips))的比例。
devicePixelRatio 是“物理像素”和“逻辑像素”(也就是 CSS )之间的比例。所以网页如果没有针对这个数值优化,图片会看起来比较模糊。

 2

document.body xhtml 特有事件
h5 直接支持body

 3 

window.resize 宽度自适应问题
window.pageshow 当一条会话历史记录被执行的时候将会触发页面显示(pageshow)事件。(这包括了后退/前进按钮操作,同时也会在onload 事件触发后初始化页面时触发)
e.persisted 从缓存中读取 true?false

https://developer.mozilla.org/en-US/docs/Web/API/PageTransitionEvent/persisted多跟e.persisted 混合出现


1  // 消除click在移动浏览器上物理点击与时间触发延迟300ms的问题
2     if ('addEventListener' in document) {
3         document.addEventListener('DOMContentLoaded', function () {
4             window.FastClick.attach(document.body);
5             console.log('执行了快速点击的处理操作');
6         });
7     }

记得引入fast.click js

 

 

手机端测试有一个vConsole.js

调用 

var vConsole = new VConsole();
 


posted on 2018-10-24 10:52  insilence  阅读(171)  评论(0)    收藏  举报