我用下面的代碼fadeOut
和fadeIn
內容的div一個頁面(jsfiddle here)上...元素 「閃爍」,並移到淡出/淡入
HTML:
<ul>
<li><a id="indexNav" href="index.html">Home</a></li>
<li><a id="aboutNav" href="about.html">About</a></li>
</ul>
<div id="indexContent">
This is the main page content.
</div>
<div id="aboutContent">
This is the about page content.
</div>
CSS:
ul {
float: left;
display: block;
margin-top: 50px;
margin-left: 0px;
}
ul li {
list-style: none;
display: block;
margin-top: 5px;
}
ul li a {
display: block;
height: 20px;
width: 50px;
margin: 0px;
background: #7d5900;
color: white;
text-decoration: none;
text-align: center;
}
div {
width: 300px;
height: 200px;
margin: auto;
margin-top: 70px;
color: white;
background-color: rgba(0, 36, 125, 0.5);
}
#aboutContent {
display: none;
}
的JavaScript:
$('#indexNav').click(function() {
$('#aboutContent').fadeOut('fast');
$('#indexContent').fadeIn('fast');
return false;
});
$('#aboutNav').click(function() {
$('#indexContent').fadeOut('fast');
$('#aboutContent').fadeIn('fast');
return false;
});
如the jsfiddle(至少在Windows 7上的Firefox 9.0.1和IE 9中)所示,當在鏈接之間點擊以顯示/隱藏相關元素時,會出現頁面寬度閃爍作爲元素的動畫。基本上,div
在頁面的下方移動很遠,這會導致滾動條出現,並將div
稍微向左推,然後在動畫結束時恢復正常。我沒有任何手段在CSS方面很專業,我只是有點修補這個嘗試實現簡單的淡出/淡入效果(自然使用jQuery)。所以我想知道是否有更正確的方法來做到這一點,或者如果我在我的設計中犯了某種根本性的錯誤,那只是我不知道的。
關於什麼可能會導致這種閃爍以及如何糾正它的任何想法?
爲什麼你還要在HREF中的網頁鏈接,如果你的網頁上加載其他隱藏的div? ...只是想知道 – hanzolo
@hanzolo:哦,我忘記刪除這些例子。它們已經到位,因爲我有計劃在JavaScript未啓用的情況下對網站進行更優雅的降級。但是他們與這個問題的背景無關。 – David