【发布时间】:2012-11-20 20:50:53
【问题描述】:
如何将 DIV 框的高度、宽度和位置值存储在 javascript(不使用 JQuery!)中的变量中?
更具体地说:
我正在为 1600 宽度的屏幕分辨率设计我的页面。 因此,我正在编写一个脚本,其中所有 div 标签的大小将根据客户端正在访问页面的当前屏幕大小与最初设计的页面宽度的比率成比例地重新调整大小。
换句话说,我想动态获取所有 div 标签的所有高度宽度和位置值,然后将它们乘以这个比率,以便所有这些都将按比例重新调整大小和重新定位。
但到目前为止,我似乎无法正确存储这些值。
这是我目前所写的:
<script type=text/javascript>
availW = window.screen.availWidth;
availH = window.screen.availHeight;
perNum = availW/1600;
allDivs = document.getElementsByTagName("div");
allDivsLength = allDivs.length;
for (var i=0; i<allDivsLength; i++) {
allDivsTop = [];
allDivsBottom = [];
allDivsLeft = [];
allDivsRight = [];
allDivsWidth = [];
allDivsHeight = [];
changeAllDivs(i);
}
function changeAllDivs(k) {
var i=k;
allDivsTop[i] = allDivs[i].currentStyle.getProperyValue("top");
allDivsBottom[i] = allDivs[i].clientBottom;
allDivsLeft[i] = allDivs[i].clientLeft;
allDivsRight[i] = allDivs[i].clientRight;
allDivsWidth[i] = allDivs[i].clientWidth;
allDivsHeight[i] = allDivs[i].clientHeight;
allDivs[i].style.width = perNum*allDivsWidth[i]+"px";
allDivs[i].style.height = perNum*allDivsHeight[i]+"px";
allDivs[i].style.top = perNum*allDivsTop[i]+"px";
allDivs[i].style.bottom = perNum*allDivsBottom[i]+"px";
allDivs[i].style.left = perNum*allDivsLeft[i]+"px";
allDivs[i].style.right = perNum*allDivsRight[i]+"px";
}
<script/>
【问题讨论】:
-
一开始为什么不把所有的 CSS 值都写成百分比呢?
-
...还没有考虑过...谢谢:)
-
但是如果我不想做一个线性变换,比如乘以一个比率是..但是一开始用css做是个好主意,主要是我想练习javascript 和 dom 级别的方法。
-
不使用jQuery的原因也纯粹是学术性的?
:-) -
我刚接触 javascript 才一个半月,我想先了解 javascript 核心的功能,然后转向 jQuery
标签: javascript