2013-05-29 65 views
0

我正在运行第三方脚本,它在加载时计算元素的宽度。它工作的很好,但我有一个响应式网站,当我重新调整浏览器的大小时,元素不再正确显示。浏览器调整大小后重新计算宽度

这里是用来计算宽度的代码:

var w = ticker.width(); 
if (label.length) w -= label.outerWidth() + parseFloat(label.css("margin-right")); 
if (controls.length) w -= controls.outerWidth() + parseFloat(controls.css("margin-left")); 
news.css("width", w); 

如何修改脚本以重新计算宽度的这部分时,浏览器被调整?

回答

5

这里是什么工作最好

$(window).resize(function() { 
if(this.resizeTO) clearTimeout(this.resizeTO); 
    this.resizeTO = setTimeout(function() { 
     $(this).trigger('windowResize'); 
    }, 500); 
}); 
$(window).on('windowResize', function() { 
    console.log($(window).width()); // calculating here 
}); 

原因有超时是窗口需要一些时间来获得SETTEL的宽度,但经典window.resize事件得到触发之前setteled下来

+0

很不错,干净和实用 –

+0

你能解释为什么一个是resize()而另一个是on()? –

+0

windowResize是我通过的自定义事件,所以要听我使用() –

0
$(window).on('resize', function(){ 
    //your code to calculate the width 
}); 
相关问题