我试图添加一个项目到我的导航栏时,屏幕是<480px,滚动> 80。这个项目的多个副本被插入到我的主导航栏中。有人能告诉我为什么会这样吗?你可以在这里看到发生了什么。
$(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();
});
我试图重现你的错误,但我没有机会,也许我错过了一些东西无论如何,我猜你需要添加一个标志,无论数据之前是否添加过,因为你的条件不止一次为真,当你滚动
时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();
});
我希望这对你有帮助
你给出了一个固定在列表项上的位置。您需要在容器上设置"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'});
希望这对你有帮助!