【发布时间】:2017-04-27 09:57:42
【问题描述】:
我想使用 jQuery 自定义元素的 height。 height 正在更改,但每次加载页面时都会显示效果(如闪烁效果)。如何解决这个问题?
$(document).ready(function() {
$('.jQuery-Container').height('100px');
});
.jQuery-Container {
background-color: Red;
height: 700px;
width: 200px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="jQuery-Container">
This is text..!!
</div>
在页面完全加载之后,div 的页面加载高度正在更改。我想在页面完全加载之前更改高度。
你可以看到我的jsfiddle here。
【问题讨论】:
-
你不能。必须先加载 DOM,然后 JS 才能对其执行任何指令。这就是为什么您会看到 FOUC(无样式内容的闪存)。为避免这种情况,请使用 CSS 更新 UI,因为这是在页面生命周期的早期应用的
-
@Rory McCrossan 是否有另一种方法可以实现这样的效果。我不能使用 css,因为效果取决于条件。所以需要改用jQuery。
-
视情况而定。你可以在整个 DOM 完全加载之前对元素运行 JS,只要你运行它的元素是完全加载的 - 但这会导致非常混乱/不可维护的代码,它不是推荐(但仍不确定是否能解决您的具体问题)。您没有提到服务器端技术 - 您可以根据页面呈现时的条件应用不同的类吗?
标签: javascript jquery css