文章内容

2016/11/16 13:07:54,作 者: 黄兵

Javascript闭包

<script>
window.onload=function () {
commFunc();
}
window.onresize=function () {
commFunc();
}

function getWidth() {
var pageWidth = window.innerWidth,
pageHeight = window.innerHeight;

if (typeof pageWidth != "number") {
if (document.compatMode == "CSS1Compat") {
pageWidth = document.documentElement.clientWidth;
pageHeight = document.documentElement.clientHeight;
} else {
pageWidth = document.body.clientWidth;
pageHeight = document.body.clientHeight;
}
}
return function changeWidth() {
return pageWidth;
}
}

function commFunc() {
var fun=getWidth();
var wrap=document.getElementsByTagName('article');
var scale=fun()/320;
var scaleHeight=fun()/320*1227;
wrap[0].style.cssText='transform-origin:center 0px 0px;transform: scale('+scale+');height:'+scaleHeight+'px';
}
</script>

这段代码里面首先看看getWidth()函数

  1. 获得页面的宽和高;
  2. 定义一个返回函数,返回他的高度;
  3. 这个是为了方便后面的调用,这也就是闭包,内部调用。

再来分析commFunc()函数:

  1. 调用上面的getWidth()函数;
  2. 通过fun()来调用内部的changeWidth(),得到屏幕宽度。


参考资料:http://my.tv.sohu.com/us/240760748/84938525.shtml

分享到:

发表评论

评论列表

user-ico

e on 回复 有用(0

e


user-ico

e on 回复 有用(0

e


user-ico

ADO on 回复 有用(33

没想到评论一个这么麻烦呀......呵呵.....厉害,标准程序猿,嘿嘿

游客Z^X# on 2018-07-25 13:03:56

博主回复:评论是存在很多问题,手上在做其它项目,一直也没有完善。对于评论,你有什么问题?

游客G8)2 on 2022-12-03 08:23:20

e