如何使用JS在页面出现之前、刷新之后显示元素
How to show an element, using JS, before the page appears, after a refresh
我使用JQuery显示"Field2"(下拉)如果"Field1"(下拉)有一个值"是",否则保持"Field2"隐藏。这工作得很好,除非我刷新执行以下操作的页面:
1)加载页面2)检查"Field1"中的"是",如果是,则显示"Field2",导致页面加载后"Field2"显示"时出现"颤栗"效果。如果在页面加载之前执行此步骤会更好。
下面是我当前的代码:
<script type="text/javascript">
$(document).ready(function () {
if ($("#Field1").val()=="Yes") {
//show the hidden div
$("#Field2").show("fast");
}
else {
//otherwise, hide it
$("#Field2").hide("fast");
}
$("#Field1").change(function () {
// If checked
if ($("#Field1").val() == "Yes") {
//show the hidden div
$("#Field2").show("fast");
}
else {
//otherwise, hide it
$("#Field2").hide("fast");
$("#Field1").val("");
}
});
});
</script>
如果页面没有刷新,上面的代码可以正常工作。那么,我如何在页面加载之前"显示"Field2,以消除这种"抖动"效果?
提前感谢。
编辑:得到了Cerbrus答案的启发。
基本上,我使用"display:none"隐藏了周围的DIV,然后在JS逻辑处理后"显示"它。然而关键的一点是要包括:
setTimeout(function () { $("#WrapperDiv").show(); }, 20);
您最好的选择是使用CSS将这两个字段设置为隐藏,然后然后根据#Field1
的值显示其中一个。
像这样:
alert("Simulating page load");
setTimeout(function(){
$("#Field2").show(); // Your logic to choose the correct field, here.
}, 2000);
input.hidden {
display: none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" id="Field1" value="Field 1" class="hidden"/>
<br />
<input type="text" id="Field2" value="Field 2" class="hidden"/>
相关文章:
- 谷歌地图Api v3-在Domready之后刷新Markerclusterer
- Sencha Touch:如何在setData()之后刷新组件的数据
- 在3°之后保留SESSION php;页面刷新
- 在'之后刷新jQuery Mobile元素;手动'操纵
- 重新启动/刷新时在Google Maps API上保存标记,之后's已被用户拖动.下面的
- 在循环 JavaScript 之后刷新页面
- jQuery 模式对话框在刷新后的第一页上工作正常,但在此之后的任何其他页面上都无法正常工作,除非刷新
- 在pushstate改变浏览器url之后刷新页面;它告诉我页面没有;不存在
- jquery ajax之后刷新页面
- 如何在不刷新页面的情况下在AjaxCall之后更新HighSlide内容
- 即使在使用localStorage刷新页面之后,也可以检索禁用的属性
- 刷新javascript代码,在autopostback下拉列表之后
- RTCPeerConnections泄漏.即使在页面刷新之后
- 如何防止页面滚动到顶部,在单击超链接之后,以及基于服务器的刷新之后
- 在C#更新面板刷新之后运行Javascript
- 计数单击复选框,即使在刷新之后
- 如何重载/刷新'id'在特定时间之后使用Ajax
- 在ajax $.get_之后刷新javascript和CSS
- 如何保持Websocket连接持久,甚至在页面刷新之后
- 如何使用JS在页面出现之前、刷新之后显示元素