hac*_*ard 12 javascript jquery twitter-bootstrap twitter-bootstrap-3 bootstrap-select
Bootsrap-select插件很棒(http://silviomoreto.github.io/bootstrap-select/).它提供了一种在Bootstrap中创建华丽选择菜单的简便方法.然而,我遇到的一个问题是页面加载时"闪烁".我的意思是相当直接的:
因此,用户首先看到HTML select元素,然后看到它切换到漂亮的Bootstrap-select项,因此"闪烁".
有谁找到了解决问题的好方法?
小智 9
要在加载bootstrap-select之前显示空白,请将其添加到css中.
select {
visibility: hidden;
}
Run Code Online (Sandbox Code Playgroud)
没有一种很好的方法可以防止全部闪烁,但是您可以将其最小化。
问题是,除了存在其他瓶颈外,您还必须首先下载并解析许多javascript文件。 Bootstrap-Select取决于Bootstrap,而Bootstrap本身取决于jQuery。到所有JavaScript载入时,页面可能已经呈现。
要使闪烁最小化,您可以做的一件事就是将select元素的样式设置为与最终产品尽可能相似,以便它们占据相同的屏幕空间。插件加载后,它将始终隐藏此控件,并用其自己的实现替换它。使用要传递给selectpicker()函数和样式的选择器,如下所示:
.selectpicker {
width: 220px;
height:34px;
margin-bottom: 10px;
}
Run Code Online (Sandbox Code Playgroud)
注意:我故意通过使用延迟了加载时间,setTimeout因此区别更加明显。
setTimeout(function() { $(".selectpicker").selectpicker(); }, 500);
Run Code Online (Sandbox Code Playgroud)
如果仍然不能接受,则可以显示加载图形,直到页面完全加载为止。
改编自“ 加载”屏幕示例:
将此添加到您的HTML:
<div id="loader"></div>
Run Code Online (Sandbox Code Playgroud)
在CSS中这样设置样式:
#loader {
position: fixed;
left: 0px;
top: 0px;
width: 100%;
height: 100%;
z-index: 9999;
background: url('http://i.imgur.com/ntIrgYXs.gif') 50% 50% no-repeat grey;
}
Run Code Online (Sandbox Code Playgroud)
加载页面后,使用以下JavaScript将其删除:
$("#loader").fadeOut("slow");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8202 次 |
| 最近记录: |