2016-11-16 16:39:19
<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no">
html{font-size:100px;}
不管你拿到的设计稿宽度是640px还是750px,多大都一样。和我们平时做PC页面的做法基本一样,只需要把单位px换算成rem,所有设计稿的的元素大小全除以100单位换成rem,例如设计稿上个某个文字的大小为30px,直接写font-size:0.3rem。
ps:示例代码中监测旋转是用了onorientationchange 函数,但是在一些APP或游戏内嵌页面会有该函数不会执行、orientation获取不到的情况。所以如果是内嵌页建议使用resize事件,检查宽高变化来检测屏幕是否旋转。
var evt = "onorientationchange" in window ? "orientationchange" : "resize";
window.addEventListener(evt, resize, false); //添加屏幕旋转事件
function resize() {
var html = document.documentElement;
//页面大小缩放的上限阀值,当页面大小超过此值时将不再放大页面
var k = 375;
if (window.orientation == 90 || window.orientation == -90) { //横屏
k = 320; //横屏时页面大小缩放的上限
}
//750为设计稿宽度大小,100为根元素大小
if (html.clientWidth <= k) {
html.style.fontSize = html.clientWidth / 750 * 100 + "px";
} else {
html.style.fontSize = k / 750 * 100 + "px";
}
}
resize();
原理:根据设计的宽度,在viewport定死页面的宽度,这样可以全部用设计的像素宽高来进行定位操作(pc端页面的切图方式)。同时,用viewport的属性让页面宽度占满全屏。
<meta name="viewport" content="width=750,target-densitydpi=device-dpi,user-scalable=no" />
这是对移动端按钮点击的统计,剑侠世界3D手游必须做统计,其他项目看需求。
<!-- dom data-tongji的值就是统计的按钮名称 -->
<div class="tongji_btn" data-tongji="jx3_20161116_topBtn">
<!-- js -->
var _hmt = _hmt || [];
_hmt.push(['_setAccount', '85c1d8e2666ba43ce2accdedc27860e2']); //这个ID要把下面的百度统计代码一致
$(".tongji_btn").unbind('click').bind('touchstart',function(){ //核心代码
var param_btn = $(this).attr('data-tongji');
_hmt.push(['_trackEvent', "btn", param_btn, "touchstart", "send"]);
});
<!-- 百度统计代码 -->
<script>
var _hmt = _hmt || [];
(function() {
var hm = document.createElement("script");
hm.src = "//hm.baidu.com/hm.js?85c1d8e2666ba43ce2accdedc27860e2";
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(hm, s);
})();
</script>
自定义微信分享到朋友圈、分享给朋友内容、图片和简介。
依赖jQuery、微信JSSDK
注:分享组件需要放在xoyo.com,xoyobox.com域名下方能生效
在本地IP环境下,会系统弹出[object object]的提示框,可以不用理会
var params = { //如不需要DEBUG,此代码可去掉
debug: true/false, // Boolean 类型 是否开启debug模式 默认 false
}
var eventData = { //定义分享事件的参数
title: "分享标题",
desc: "分享内容",
link: "分享页面地址",
imgUrl: "分享图片地址",
// 定义分享触发、成功、失败、取消事件
trigger: function( rs ){}, //触发分享时的回调
success: function( rs ){}, //分享成功回调
fail: function( rs ){}, //失败回调
cancel: function( rs ){} //取消分享后的回调
}
usewxapi.getSignature(eventData); //开始调用
<script src="//zhcdn01.xoyo.com/xassets/lib/jquery/1.7.2/jquery.js"></script>
<script src="//res.wx.qq.com/open/js/jweixin-1.0.0.js"></script>
<script src="//zhcdn01.xoyo.com/xassets/com/wx/useWxApi/v2/useWxApi.js"></script>
<script>
var eventData = {
title: '剑侠世界手游,关注赢取小米MIX',
link: 'http://js.xoyo.com/zt/2016/10/operate/index.html',
imgUrl: 'http://js.xoyo.com/zt/2016/10/operate/share.jpg',
desc: '剑侠世界手游版 - 一生不可错过的浪漫武侠'
}
usewxapi.getSignature(eventData);
</script>