【问题标题】:Call a function when window is resized调整窗口大小时调用函数
【发布时间】:2016-09-17 03:44:19
【问题描述】:
如何在调整浏览器窗口大小时再次调用此(或任何)JS 函数?
<script type="text/javascript">
function setEqualHeight(e) {
var t = 0;
e.each(function () {
currentHeight = $(this).height();
if (currentHeight > t) {
t = currentHeight
}
});
e.height(t)
}
$(document).ready(function () {
setEqualHeight($(".border"))
})
</script>
【问题讨论】:
标签:
javascript
jquery
window-resize
【解决方案1】:
您可以使用窗口onresize事件:
window.onresize = setEqualHeight;
【解决方案2】:
您可以订阅window.onresize事件(See here)
window.onresize = setEqualHeight;
或
window.addEventListener('resize', setEqualHeight);
【解决方案3】:
这段代码将添加一个计时器,它会在窗口调整大小后 200 毫秒后调用调整大小函数。这将减少方法的调用。
var globalResizeTimer = null;
$(window).resize(function() {
if(globalResizeTimer != null) window.clearTimeout(globalResizeTimer);
globalResizeTimer = window.setTimeout(function() {
setEqualHeight();
}, 200);
});
【解决方案4】:
你使用jquery,所以使用.resize()方法绑定它。
$(window).resize(function () {
setEqualHeight( $('#border') );
});