jquery - 如何使用 jQuery 动态重新评估函数?

标签 jquery html css

我已经设置了以下 jQuery 函数来为 <div> 添加一个负的左边距。元素

$(document).ready(function(){

    var docwidth = $(document).width();
    var herowidth = $('.element-hero').width();
    var leftmargin = docwidth - herowidth;

    $('.element-hero').css({ "margin-left": -leftmargin,});

});

如您所见,它获取文档宽度,<div class="element-hero">宽度,并对后者应用等于这两个值之间的差值的负左边距。

它工作正常,直到我尝试调整浏览器窗口的大小;我需要在调整窗口大小时动态重新计算左边距的值(当然不需要重新加载)。

现在,如果我们假设初始值为 docwidth = 1200pxherowidth = 900px , 左边距设置为 -300px ;如果我将窗口大小调整为 docwidth = 1400px , 我希望有 -500px 的利润率,但这并不是真正发生的情况,-300px 的原始计算值一直保留到我手动重新加载窗口。

据我所知,问题是使用 .ready()在文档完全加载后运行一次脚本;我还需要在每次调整窗口大小时计算此值,并进行相应更新。

我该如何修改这段代码?

最佳答案

我已经设法用下面的代码解决了这个问题:

var heroMargin = function(){

    var docwidth = $(document).width();
    var herowidth = $('.element-hero').width();
    var leftmargin = (docwidth - herowidth);

    $('.element-hero').css({ "margin-left": -leftmargin,});

};

$(document).ready(heroMargin);

$(window).resize(heroMargin);

关于jquery - 如何使用 jQuery 动态重新评估函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54908167/

相关文章:

html - 在不移动 div 的情况下放大 div 内的图像

javascript - 缩小 amcharts 中简单条形图中条形的大小

javascript - 我的代码在 Firefox 中不起作用...?

html - 响应式网格系统——他们为什么不排队?

javascript - Jquery 动画不会等到完成

javascript - 加载另一个页面后从登陆页面重定向

javascript - 根据用户所在的页面更改 div 中的文本

javascript - 使用 JavaScript 更改 SVG 对象的高度和宽度

javascript - jsPlumb 和动态添加的容器

C#> 使用 jquery 编辑的标签忽略 HTML 标签