WAP端 经验记录2
1. LightboxV2 插件
点击A 应该关闭弹层的效果,但是 SAMSUNG 手机上原生浏览器上,看上去不会关闭却跳转了,但当点击回退按钮的时候就会看见弹层已经消失(其实之前的关闭效果已经记录了)
UC浏览器上点击A 能看到 弹层关闭,因为它的click事件 只比 touchend事件慢了一点点
IOS7.0 能看到弹层关闭再跳转,IOS8.0看不到弹层关闭再跳转,但是当回退的时候都是关闭的
2. chrome 中文版下 不能设置字体小于 12px, 但是可以用如下的属性去让它缩放
-webkit-transform: scale(0.775384615384615);
3.
safari ios8 下不支持 new Date('1440666951116')
但是可以 new Date(1440666951116) 或 new Date(2015,8,12,10,10,40)
IE8 支持写法 new Date(1440666951116) 或 new Date(2015,8,12,10,10,40)
4.
当一个元素用了 -webkit-transform: rotate(20deg); 它的层级z-index在某些浏览器下会很高,用下面的属性让其他元素层级比它高。
-webkit-transform: translateZ(0);
-webkit-transform: rotateX(0);
5. uglifyjs 压缩代码
cd D:\Users\zhengming\Desktop
uglifyjs lightbox_v2.js -m -o lightbox_v2.min.js // 混淆压缩
uglifyjs lightbox_v2.js -o lightbox_v2.min.js // 普通压缩
7. 如何居中
position: fixed;
left: 50%;
top: 50%;
-webkit-transform: translate(-50%, -50%);
这个在某些手机(vivo) 默认浏览器没有问题,但内嵌的APP里面 -webkit-transform: translate(-50%, -50%); 不起作用。
修复的办法就是改成 position: absolute;
8. zepto-1.1.6.js
Zepto(document).height() 如果没有内容会是0,
Zepto里代码为: document.documentElement.scrollHeight,所以得改成
Math.max(document.body.scrollHeight, document.documentElement.scrollHeight);
Zepto(window).width() 没有去掉浏览器滚动条的宽度
所以若是PC取宽度代码(参考 jquery-1.11.3.js): document.documentElement["clientWidth"]
Zepto(window).height() 没有去掉浏览器滚动条的宽度
所以若是PC取宽度代码(参考 jquery-1.11.3.js): document.documentElement["clientHeight"]
9. userAgent
iphone6 plus
"Mozilla/5.0 (iPhone; CPU iPhone OS 8_0 like Mac OS X) AppleWebKit/600.1.3 (KHTML, like Gecko) Version/8.0 Mobile/12A4345d Safari/600.1.4"
小米
mozilla/5.0(linux; u; android4.1.1; zh-cn; mi 2 build/jro03l)applewebkit/534.30(khtml, like gecko)version/4.0 mobile safari/534.30
xiaomi/miuibrowser/1.0
10. 判断是否 pad 设备
// 判断是否 是pad 设备
!function(){
window.GM || (window.GM = {});
GM.isHandDevice = 'ontouchend' in document; // 判断是否手持设备
!function(){
//判断当前设备是否为ios系统
var userAgent = navigator.userAgent.toLowerCase(); var device; // 设备
if(userAgent){
switch(true){
case (/ipad|iphone|mac/i).test(userAgent):
// ios 设备
device = 'ios';
break;
}
} if(device === 'ios'){
GM.isDeviceIOS = true;
}
}(); if(GM.isHandDevice){
var userAgent = navigator.userAgent.toLowerCase();
var isIpad = userAgent.indexOf('ipad') > -1;
var isMobile = userAgent.indexOf('mobile') > -1;
var isUC = userAgent.indexOf('ucbrowser') > -1;
var isSogou = userAgent.indexOf('sogou') > -1; var deviceWidth = window.screen.width;
var deviceHeight = window.screen.height;
var temp;
// 若是pad 横过来了, 则值对换下
if(deviceWidth > deviceHeight){
temp = deviceWidth;
deviceWidth = deviceHeight;
deviceHeight = temp;
} // 若当前不是 IOS设备, 并且是UC浏览器或搜狗, 并且 devicePixelRatio 有值
if( !GM.isDeviceIOS && (isUC || isSogou) && window.devicePixelRatio > 1 ){
deviceWidth = deviceWidth / window.devicePixelRatio;
} var isPad;
if(isIpad || deviceWidth > 500){
isPad = true;
}else{
if(isMobile){
isPad = false;
}else{
isPad = true;
}
} // 带有ipad标识 或设备的宽度大于500
if(isPad){
GM.isDevicePad = true;
}else{
GM.isDeviceMobile = true;
}
}
}();
11. 是否由trigger触发, 而不是用户手动点击触发。
var isTrigger = function(e){
// 默认 false, 不是由 trigger触发
var flag = false; if(e){
/*
e.originalEvent 存在说明是用jQuery 绑定的事件,
把e变成NativeEvent
code copy from jquery mobile
*/
while ( e && typeof e.originalEvent !== "undefined" ) {
e = e.originalEvent;
}
/*
是否有手机端的事件 changedTouches,
或 点击的位置区域是否大于0
3个都为 undefined, 取反为true, 为trigger触发
*/
flag = !( e.changedTouches || e.clientX > 0 || e.clientY > 0 );
} return flag;
}
12.
font-size: 100px;(大于66px 都会)
会把元素是 display: inline-block; 的外面包裹的元素的高度变大,
所以修改外层包括元素的 font-size: 12px;
直接 body 上加个 font-size: 12px 最好
13. 判断是否正整数。 由于 Number 和 parseInt 都不能准备判断字符串是否为正整数,所以还是得用正则判断。
Number('22a'); // NaN
parseInt('22a'); // Number(''); //
parseInt('') ; // NaN var isPosInteger = (function(){
var reg = /^[1-9]\d*$/;
return function(val){
var valid = !isNaN(val) && reg.test(val);
return valid;
}
})();
14.
1) 谷歌亲儿子 连接VPN的时候自动播放音乐 会触发错误,说是 "不能触发错误", 所以不要 bg.play() 自动播放背景音乐。
2) <meta name="format-detection" content="telephone=no"> 可以让电话号码不要以 格式化的形式存在
3) 用户点击的时候不会有高亮的效果: -webkit-tap-highlight-color: rgba(0,0,0,0);
4) 防止用户点击选中它: -webkit-user-select:none; //-moz-, -ms-, -webkit-;
input 不能加这个属性,因为这样会让 input 框不能输入任何字符, body 上可以加这个属性,这样页面上的文字都不可以选中,却不会影响到 input 框。
5) box-sizing: border-box, 意思是 width 包括 padding。 特别是这种情况:
width: 100%;
padding-left: 100px;
-webkit-box-sizing: border-box;
box-sizing: border-box;
6) H5页面调用native的方法bindCard的时候, 若 native那边的 bindCard函数有定义2个参数 (string, callback), 那么H5必须传递两个字符串(可以为空的字符串),否则会调用不成功。
失败: window.Native.bindCard()
成功: window.Native.bindCard('', '')
15. 最大的宽度 max-width 不要加在 table 上,加在 table 里面的 td 里的div 上
<table style='max-width: 20px;'>
<tr>
<td></td>
</tr>
</table> <table>
<tr>
<td>
<div style='max-width: 20px;'></div>
</td>
</tr>
</table>
16.
-webkit-transform: translateZ(0); 或 -webkit-transform: rotateX(0);
能让一个元素的层级高于 设置了rotate(20deg)的2d平面晃动的元素, 但是对于 3d 翻转的不行。
任何元素在3d 翻转的上面(比如卡当的翻牌),层级都没有3d 翻转的元素时候高,就是会被牌给切了。
WAP端 经验记录2的更多相关文章
- WAP端 经验记录1
1. 点击元素触发事件的先后顺序:touchstart, touchend, mousedown, mouseup, click 2. Animate 的 stop 问题问题:手机端由于用 CSS3 ...
- mcake活动维护常见问题记录【wap端】 ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
★ ★ ★ ★ ★ ★ ★ ★ ★ ★ wap端问题及解决方法 ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ 一.wap端弹窗 .Dialogbg-Select{ background-co ...
- 也来谈谈wap端瀑布流布局
Definition 瀑布流布局,在视觉上表现为参差不齐的多栏布局,随着页面滚动条向下滚动,新数据不断被加载进来. 瀑布流对于图片的展现,是高效而具有吸引力的,用户一眼扫过的快速阅读模式可以在短时间内 ...
- JS判断是wap端访问网站还是PC端访问,然后进行自动跳转的代码
<script type="text/javascript"> function goPAGE() { if ((navigator.userAgent.match(/ ...
- WAP端 touch事件触发顺序记录
IOS7.0 safari 滚动滚动条的时候, 最后手指放开 (scroll 总是在 touchend后面,所以要用 setTimeout) touchstart touchmove(多个) touc ...
- SSRS开发的经验记录
虽然工作经验相当的长,但是之前在SSRS上还没有象今天这样的经验.这只是工作经验的一点记录. 1. 定义DataSet 定义DataSet的时后,可以采用Text的方式.用Text的方式可以用一段比较 ...
- 关于emoji表情,支持在app端发送web端显示,web端发送给app端显示,web与wap端互相显示。
要用到emoji.js和emoji.jquery.js两个插件配合实现三端互通. 1.app端发送的emoji表情----到服务器---服务器存储的是‘问号’,无法显示如图所示: 后台的同学也试验了网 ...
- 弹性盒子之wap端布局
发现移动端用弹性盒子布局起来更加的方便,box-flex:val;特别是图文展示的时候,如下面的 <!DOCTYPE html> <html> <head> < ...
- flex经验记录(转载)
最近一直忙于项目,很好抽出时间学习,刚忙里偷闲浏览博客看到一位博友总结的一些flex的经验,感觉不错就转载过来,一来扩散一下,二来保存下来,以后忘记的时候可以回来学习下. 原博文地址:http://b ...
随机推荐
- UTF-8编码的字符串拆分成单字、获取UTF-8字符串的字符个数的代码及原理
一.字符编码简介 1. ASCII码 在计算机内部,所有的信息最终都表示为一个二进制的字符串.每一个二进制位(bit)有0和1两种状态,因此八个二进制位就可以组合出256种状态,这被称为一个字节(by ...
- VES Hand Book Contents
3...ABOUT THE VES4...Foreword 6...Chapter 1......Introduction6......Visual Effects and Special Effec ...
- SVN的感叹号
黄色感叹号(有冲突):--这是有冲突了,冲突就是说你对某个文件进行了修改,别人也对这个文件进行了修改,别人抢在你提交之前先提交了,这时你再提交就会被提示发生冲突,而不允许你提交,防止你的提交覆盖了别人 ...
- AS快捷键
Ctrl+Q 显示关键字的提示文档 Ctrl+鼠标点击 查看关键字的源码 ctrl+T 在不同的选项卡中进行切换 ctrl+J 提示当前位置输入模板 Ctrl+P 提示参数 Alt+Enter 提示 ...
- Ajax跨域访问
Ajax如何跨域访问数据 最近在做项目的过程中遇到的问题,一个网站需要访问另外一个网站的数据,并且是通过脚本的方式,而由于同源策略的限制,开发人员不能再与外部服务器进行通信的时候使用XMLHttpRe ...
- 如何彻底卸载Oracle
如何彻底卸载Oracle 因为Oracle在Windows下的卸载颇有一些麻烦,如果不能完全卸载有可能影响将来的再次安装!常规卸载方法是运行Oracle的自带的卸载程序,可遗憾的是我在卸载时总不能完全 ...
- robocopy 命令小结
robocopy "C:\dira" "J:\dira" /E /COPYALL /XJ /XD "C:\dira\dir1" " ...
- Ejabberd外部组件开发
Ejabberd的基本介绍就不多言了,使用erlang开发的高并发高稳定性XMPP服务器,在whatsapp中得到了应用,算是erlang领域一个杀手级应用.前面的文章中我已经总结了Ejabberd插 ...
- LVM原理及PV、VG、LV、PE、LE关系图
PV(physical volume):物理卷在逻辑卷管理系统最底层,可为整个物理硬盘或实际物理硬盘上的分区.VG(volume group):卷组建立在物理卷上,一卷组中至少要包括一物理卷,卷组建立 ...
- jquery ajax success 函数 异步调用方法中不能给全局变量赋值的原因及解决办法
jquery ajax success 函数 异步调用方法中不能给全局变量赋值的原因及解决办法 在调用一个jquery的ajax方法时我们有时会需要该方法返回一个值或者给某个全局变量赋值,可是我们 ...