&&
和||
稍复杂场景应用
//条件A和B成立 或者 条件A和C成立if( A && B || A && C ){ ...}复制代码
//如果a大于100,那么a=100a > 100 && ( a = 100 )//相当于if( a > 100 ){ a=100 }复制代码
数组indexOf
方法,区别于String.indexOf()
- 检测数组内元素是否匹配对应字符串,有则返回数组元素对应
index
,否则返回-1;
const arr = ['pathA','pathB','pathC'];arr.indexOf('pathA')//0arr.indexOf('pathC')//2arr.indexOf('pa')//-1,区别于字符串`indexOf`方法复制代码
- 应用场景:基于
Vue
移动端,根据当前路由this.$route.path
判断是否显示底部tabbar
... ... 复制代码
computed: { //非常简洁 isShowTabbar() { const result =[ "/", "/path1","/path2","/path3"].indexOf(this.$route.path) >= 0; return result; } }复制代码
移动端兼容性问题
- 安卓,
webApp
,底部按钮被软键盘顶上去;iOS不存在此类情况; - 试了好多网上找的解决方案,不是太复杂就是没有达到想要的效果。
- 目前简单的解决方法是底部按钮尽可能不使用
position:absolute
或者 position:fixed
,改用margin
定位按钮位置。
iOS
,webApp
,双击页面出现上移,在input/button
这些表单控件有这个问题,,p/div
等标签也有问题,是在main.js
,即body
中添加如下:
(function () { var agent = navigator.userAgent.toLowerCase(); //检测是否是ios var iLastTouch = null; //缓存上一次tap的时间 if (agent.indexOf('iphone') >= 0 || agent.indexOf('ipad') >= 0) { document.body.addEventListener('touchend', function (event) { var iNow = new Date().getTime(); iLastTouch = iLastTouch || iNow + 1 /** 第一次时将iLastTouch设为当前时间+1 */ ; var delta = iNow - iLastTouch; if (delta < 500 && delta > 0) { event.preventDefault(); return false; } iLastTouch = iNow; }, false); } })()复制代码