jquery - 有没有更有效的方法在页面加载和调整大小时运行它?

标签 jquery css

我正在使用它在调整窗口大小时动态调整正文上边距,以提高响应速度。

$(window).resize(function() {
    $('body').css('margin-top', $('#header').height());
});

但我正在尝试找到一种更有效的方法来在页面加载时运行同一行,而不仅仅是像这样再次处理该行:

$('body').css('margin-top', $('#header').height());
$(window).resize(function() {
    $('body').css('margin-top', $('#header').height());
});

最佳答案

就性能而言,最佳做法是在超时内的调整大小事件中运行代码。此外,将元素保存在变量中也是个好主意。

最后但同样重要的是,为您的事件使用命名空间以显式触发它们。

var winresizeT,
    $body = $('body'),
    $window = $(window),
    $header = $('#header');

$window.on('resize.bodymargin', function() {
  clearTimeout(winresizeT);
  winresizeT = setTimeout(function() {
    $body.css('margin-top', $header.height() + 'px');
  }, 30);
});

$window.on('load', function() {
  $window.trigger('resize.bodymargin');
});

关于jquery - 有没有更有效的方法在页面加载和调整大小时运行它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51611447/

相关文章:

javascript - 如何在 html 中为 iphone 禁用水平滚动

javascript - 什么时候应该使用div?什么时候应该使用框架?我什么时候应该使用其他形式的动态内容?

jquery - 如何在所有事件 li 之前添加类

javascript - 如何限制Web应用程序中的Windows快捷键

html - CSS:IFRAME 内顶部和底部的渐变?

css - 真正的嵌套 CSS? (不是选择器)

html - 如何在 HTML 中正确设置样式

javascript - 使用CSS过渡时如何更改父div的高度?

javascript - 为什么 JS/Jquery 在 IE7 中似乎不起作用

css - 如何在 React Modal 中添加填充?