【发布时间】:2014-08-02 12:56:33
【问题描述】:
这目前在 chrome 中发生,在 Firefox 中我还没有遇到这个问题(还)。
这是我的问题的一个非常简化的版本。
HTML:
<div class="thumbnail">
<a href='#' id="clickMe">Click me!</a>
</div>
CSS:
div {
width: 200px;
height: 300px;
background-color: purple;
}
a {
position: absolute;
}
@media (max-width: 991px) {
div {
height: 200px;
}
}
Javascript:
$(document).ready(function () {
var $parent = $('#clickMe').parent();
function resize() {
$('#clickMe').offset({
top: $parent.offset().top + $parent.height()-$('#clickMe').height()
});
}
$(window).on('resize', resize);
resize();
});
问题:
那么当我调整大小(不拖动)时,这会带来什么? javascript 首先启动并设置 <a></a> 的位置,然后 CSS 如果我们
从逻辑上讲,按钮现在在视觉上位于 div 的外部,而不是像我最初定义的那样位于边框上。
本文提出的临时解决方案。
jQuery - how to wait for the 'end' of 'resize' event and only then perform an action?
var doit;
$(window).on('resize', function(){ clearTimeout(doit); doit = setTimeout(resize, 500); });
临时解决方案不是我想要的:
但是,在我的情况下,我真的不需要在调整大小事件实际完成时才调用“调整大小”。我只是希望我的 javascript 在 css 完成加载/或完成它的更改后运行。而且当 css 可能已经完成了。
问题:
有解决办法吗?任何人都知道 js 中的一种技术,可以等到 css 完全完成在调整大小期间应用修改?
其他信息:
在 jsfiddle 中测试这个很可能不会给你和我一样的结果。我的 css 文件有很多行,我正在使用 Twitter Bootstrap。这两个占用了大量资源,减慢了 css 应用程序的速度(我想,如果我错了,请告诉我)。
Miljan Puzović - 提出了一个解决方案,通过 js 加载 css 文件,然后在 css 上的 js 事件结束时应用 js 更改。
【问题讨论】:
-
CSS/JS 是内联添加的还是作为外部资源添加的?您是在
head中添加它还是在关闭body之前添加它? -
这个怎么样:用 js 插入 css,当该事件完成时插入/应用其余的 js?
-
我不太明白这个问题。有人可以帮我澄清一下吗?
-
编辑(a)在实际问题陈述之前的顶部和(b)显式添加而不是文本的一部分对于新读者来说非常混乱(让我失望,确实如此)。也许最好将它们编辑到问题中?
标签: javascript jquery css twitter-bootstrap responsive-design