当屏幕小于480px,滚动大于80时,我试图向导航栏添加一个项目。这个项目的多个副本被插入到我的main-nav中。有没有人能帮我解释一下为什么会这样?你可以通过here来看看发生了什么。
$(function () {
var $window = $(window);
var $width = $(window).width();
function windowWidth() {
if ($width < 480) {
function top() {
var $top = $window.scrollTop();
if ($top < 80) {
$(".main-nav").css({
'position': '',
'width': '99.5%'
});
$(".thick-line-header").css("display", "");
} else {
var $homeTab = $('<li class="home"><a href="#top" >test</a></li>');
$(".main-nav li").css({
'position': 'fixed',
'width': '100%',
'top': '0',
'left': '0',
'margin-top': '0'
});
$("#main-nav").prepend($homeTab);
$(".thick-line-header").css("display", "none");
}
};
$(window).scroll(top);
}
};
windowWidth();
});发布于 2013-04-14 07:29:25
我试着重现你的错误,但我没有机会,也许我遗漏了什么,我猜你需要添加一个标记,无论数据以前是否被添加过,因为你的条件不止一次为真,当你滚动的时候
var added = false;
$(function() {
var $window = $(window);
var $width = $(window).width();
function windowWidth() {
if ( $width< 480 ) {
function top() {
var $top = $window.scrollTop();
if( $top < 80 ) {
$(".main-nav").css({
'position': '',
'width': '99.5%'
});
$(".thick-line-header").css("display","");
}
else {
var $homeTab = $('<li class="home"><a href="#top" >test</a></li>');
$(".main-nav li").css({
'position': 'fixed',
'width': '100%',
'top':'0',
'left':'0',
'margin-top':'0'
});
if(!added) {
$("#main-nav").prepend($homeTab);
added = true;
}
$(".thick-line-header").css("display","none");
}
};
$(window).scroll(top);
}
};
windowWidth();
});我希望这能有所帮助:)
发布于 2013-04-14 07:41:52
你给了一个位置:固定在列表项上。您需要在容器上设置'fixed‘选项。例如:
$(".main-nav").css({'position': 'fixed', 'width': '100%', 'top':'0', 'left':'0', 'margin-top':'0'});而不是
$(".main-nav li").css({'position': 'fixed', 'width': '100%', 'top':'0', 'left':'0', 'margin-top':'0'});希望这能有所帮助!
https://stackoverflow.com/questions/15994026
复制相似问题