我创建了一个简单的菜单设置,其中所有信息都在同一页面上 - 在选择该选项卡之前,大部分信息都是隐藏的。我正在使用的过滤器 JS 对此非常有效,但由于某种原因(仅在 CHROME 中),当单击菜单项(例如,位置、帮助)时,屏幕会弹出几百像素(显示选定的信息就好了尽管)。奇怪的是,这只发生在页面被刷新并且第一次被点击的时候。在那之后,一切都很好!
以下是相关代码,但要查看它的实际效果,请参阅测试站点
我用于过滤器的 JS 是:
$(document).ready(function() {
$('#nav a').click(function() {
$('#nav a.current').removeClass('current');
$(this).addClass('current');
var filterVal = $(this).text().toLowerCase().replace(' ','');
$('#content div').each(function() {
if(!$(this).hasClass(filterVal)) {
$(this).hide().addClass('hidden');
} else {
$(this).show().removeClass('hidden');
}
});
return false;
});
});
HTML 菜单和信息如下:
<ul id=nav>
<a href="#" class="current"><li>Mission</li></a>
<a href="#"><li>Location</li></a>
<a href="#"><li>Help</li></a>
<a href="#"><li>Vendors</li></a>
</ul>
<div id=content>
<div class=mission>
<img src="./images/roosters.jpg">
<h2>The Mission</h2>
<p>...</p>
</div>
<div class=location>
<img src="./images/old_market.jpg">
<h2>Our Location</h2>
<p>...</p>
</div>
<div class=help>
<img src="./images/helpers.jpg">
<h2>Get Involved</h2>
<p>...</p>
</div>
<div class=vendors>
<img src="./images/artisans.jpg">
<h2>Our Vendors</h2>
<p>...</p>
</div>
</div>