我正在运行第三方脚本,它会在加载时计算元素的宽度。它工作得很好,但我有一个响应式网站,当我重新调整浏览器大小时,元素不再正确显示。
以下是用于计算宽度的代码:
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);
如何在调整浏览器大小时修改脚本的这一部分以重新计算宽度?
答案 0 :(得分: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
事件获取触发器才会被设置为
答案 1 :(得分:0)
$(window).on('resize', function(){
//your code to calculate the width
});