我的目标是计算一个固定的定位元件的宽度(顶部:0;左:200像素)通过从窗口大小减200像素,使得它适合视口的其余部分。 所以我用下面的代码,但遗憾的是它不工作。 希望你们的有人能帮帮我!
$(function() {
width = ($(window).width() - 100);
$("div").css("width", width);
});
我的目标是计算一个固定的定位元件的宽度(顶部:0;左:200像素)通过从窗口大小减200像素,使得它适合视口的其余部分。 所以我用下面的代码,但遗憾的是它不工作。 希望你们的有人能帮帮我!
$(function() {
width = ($(window).width() - 100);
$("div").css("width", width);
});
你并不需要依靠jQuery的,其实。 有一个简单的CSS技巧来完成这件事,宣称right: 0
这个元素上。 它迫使它伸展一路视口的右边界,自然。
div {
position: fixed;
top: 0;
left: 200px;
right: 0;
}
在这里看到小提琴: http://jsfiddle.net/teddyrised/2Fhue/
更新1:OP提供了自己的小提琴,所以这里是一个应用了修复: http://jsfiddle.net/teddyrised/w555h/2/ 。 我还采取自由以除去height: 100%
并使用bottom: 0
代替,如使用的位置坐标,以强制地拉伸元件的尺寸,其表现出同样的概念:)
更新2:OP请求一个基于jQuery的解决方案(我百思不得其解,为什么,但无论如何...),这里是它如何工作-我们执行发射一个匿名函数内的宽度计算时resize事件是在烧制$(window)
对象。 第二.resize()
事件被链接,以便它在触发DOM准备。
$(function() {
$(window).resize(function() {
var width = $(this).width() - 200;
$("#content").css("width", width);
}).resize();
});
http://jsfiddle.net/teddyrised/w555h/4/
评论:我一般尽量避免使用jQuery(或JS)的目的就是这样,当CSS可以很容易地使用。 这是因为通过计算从视口的宽度,你还必须听.resize()
的窗口,这会使事情变得复杂的事件。
我扩大了特里的jQuery的答案。 我通常不会代码这样的事情,但我继承了一个WordPress主题,其中#secondary侧边栏是动态变化的大小,但只有当#main容器> 768px。 不言而喻,#primary和#secondary是左浮动;-)
$(window).resize(function(){
var main = $("#main").width();
var secondary;
if (main > 768) {
secondary = $("#secondary").outerWidth(true);
} else
secondary = 0; // Ignore smaller dimensions where the sidebar is not visible.
$("#primary").css("width", main - secondary - 1);
}).resize();
$(window).trigger('resize'); // When the page first loads