响应式键盘
想要在手机上调出一个类似下图的键盘(即包含一个“去往”按钮,点击后直接跳转),按照以下格式书写即可,最少需要一个 form、input 标签和 type、name 属性。用到了 HTML5 的新 type 值 url。
1 | <form> |
一个完整的:
1 | <form onsubmit="location.href = document.getElementById('address').value; return false;"> |
比如输入“http://www.impony.com” 就可以直接点击“去往”跳转了。
如果想在手机上调出一个类似下图的键盘(即包含一个“放大镜”按钮,寓意搜索),则可以使用 HTML5 的新 type 值 search。
1 | <form> |
生成一个全屏遮罩,在手指滑动时不让遮罩下方页面滚动
1 | <style> |
重点就在这个 preventDefault,在 touchmove 的时候禁止掉该事件的默认动作,这样遮罩下方页面再长也不会滚动了。
访问本地资源
1 | file://localhost |
这样就可以方便用户选择使用 SD 卡上的文件了
效仿 iOS 的滑动删除效果
在 touchstart 的时候记录下初始座标 screenX 和 screenY,然后在 touchmove 的时候更新当前座标,最后在 touchend 的时候计算一下当前座标与初始座标的关系即可。
考虑到手机屏幕较小,所以要有一定的容错能力。我个人是采用了计算直线斜率的方法来容错的,只要斜率在 0.3 以内,并且滑动距离超过了 100px 就都有效。
根据移动设备屏幕分辨率来动态的改变页面放大倍率
用 Media Query 或者其他方法来进行响应式布局有些太繁琐了,有些情况下只需要根据移动设备不同的屏幕分辨率来简单调整一下 body 的 fontSize 即可满足要求,类似下面这样。
1 | var screenSize = Math.min(window.innerWidth, window.innerHeight); |