2013-02-21 69 views
0

我试图让我的网站在窗口大小更改时缩放它的宽度。JQuery:更改窗口大小左边的body css属性调整大小

JQuery的:

$(window).resize(function() { 
    var w = $("body").width(); 
    if(w-810 < 0) { 
     $("body").css("Left","0px"); 
    } 
    else { 
     var width = w.toString() + "px"; 
     $("body").css("Left",width); 
    } 
}); 

CSS:

body { 
background-color: #eeeeee; 
position: relative; 
left: 20%; 
} 

HTML:

<script src="scripts\jquery.min.js" type="text/javascript"></script> 
<script src="scripts\myJavascript.js" type="text/javascript"></script> 
.... 
<body class="body"> 

有一件事我注意到,如果我按类选择身体(jQuery中变更为“ #body“),它的宽度总是默认为0px。

任何想法?

回答

1

如果你想通过一个类来获得身体元素,你必须使用'.body'选择。如果你想获得元素与他们的ID,使用'#body'

尝试将CS​​S放入小写,更好地传递一个对象作为参数。此外,还要尝试“缓存”body元素,以防止DOM树中出现多个不必要的查询:

var body = $('.body'); 

$(window).resize(function() { 
    var w = body.width(); 

    if (w-810 < 0) { 
     w = "0"; 
    } 

    body.css({ "left" : w + "px" }); 
}); 
+0

这绝对是更高效。但是,我的页面仍然无法正确缩放。我现在正在离线处理所有工作,将我的html/css/js文件放在一个文件夹中。这会影响我的产出吗? – 2013-02-22 00:32:36

+0

发现JavaScript无法离线工作。谢谢你的帮助。 – 2013-02-22 03:56:02

+0

@JoeG不客气:)我也改变了'w = 0'的'w ='0''赋值,这更好,因为var'w'的类型总是相同的。这样,我们改进了代码的风格,效率更高,因为对象的“隐藏类”始终是一个数字,而不是数字,然后是字符串。 – albertoblaz 2013-02-22 08:55:05

0

体类是'.body',不'#body'