Javascript 在调整窗口大小时运行jQuery脚本
我有一个脚本,可以在窗口上运行各种函数Javascript 在调整窗口大小时运行jQuery脚本,javascript,jquery,html,Javascript,Jquery,Html,我有一个脚本,可以在窗口上运行各种函数 $.event.add(window, 'load', resizeFrame); $.event.add(window, 'resize', resizeFrame); function resizeFrame(){ // various scripts // } 这工作非常好,我在那里运行的脚本也可以工作。然后,我有一个单独的脚本,用于设置文档加载时各种div的高度,这也可以正常工作 var h = 0, target = $('.
$.event.add(window, 'load', resizeFrame);
$.event.add(window, 'resize', resizeFrame);
function resizeFrame(){
// various scripts //
}
这工作非常好,我在那里运行的脚本也可以工作。然后,我有一个单独的脚本,用于设置文档加载时各种div的高度,这也可以正常工作
var h = 0,
target = $('.home #content .items-row .item article');
target.each(function(){
if (h < $(this).height()){
h = $(this).height();
}
});
target.each(function () {
$(this).css("height", h + 'px');
});
$('.testimonials .items-row').each(function () {
$('.span4 article', this).css('height',
Math.max.apply( Math,
$.map($('.span4 article', this), function(x) {
return $(x).height();
})
)
);
});
jQuery只是包装了标准的调整DOM大小事件,例如
window.onresize = function(event) {
...
};
jQuery可能会做一些工作,以确保在所有浏览器中一致触发调整大小事件,但我不确定是否有任何浏览器不同,您的加载事件在我尝试的示例中没有触发 请尝试以下操作,而不是当前的事件注册: JSFiddle: 更新: 您正在设置一个固定高度,因此下次调整高度时,高度将与上一次指定的相同,并且不会更改。新的JSFIDLE首先将高度重置为其自然状态
// Revert to height based on content
target.each(function () {
$(this).css("height", '');
});
我不明白resize公式背后的逻辑,它看起来只是设置了所有其他元素中最高元素的高度。我们能看到resizeFrame中的各种脚本吗?@MuhammadUmer这正是它所做的,哪一位是不合逻辑的?我已经添加了“各种脚本”。您的HTML示例(即JSFIDLE中的HTML)将使测试/修复变得更容易:旁注:您不需要为jQuery CSS属性(如高度)附加+px。不管怎样,它都会假设数字是px值。在我添加的脚本的后半部分之前,resize函数工作正常,并且经过跨浏览器测试,只是添加此脚本不会在resize上运行。这是一种更好的方法!我已经以这种方式重新编写了代码,因此感谢您的帮助,不幸的是,尽管这样做很有帮助,但我仍然面临这样一个问题:当窗口调整大小时,从元素最高处设置高度的div不会改变。它们的高度最初是从这个脚本中获得的,但在每次调整窗口大小时,它们不会再次调整大小。@Tim Wilkinson:Sorted。一旦你拼出来就很明显了。高度显然是他们之前设定的。需要先将它们重置为继承的值。
window.onresize = function(event) {
...
};
// jQuery DOM ready shortcut event handler (with locally scoped $)
jQuery(function($){
// Register for window resize
$(window).resize(resizeFrame);
// Do initial resize
resizeFrame();
});
// Revert to height based on content
target.each(function () {
$(this).css("height", '');
});