gpt4 book ai didi

javascript - 当父位置改变时 JQuery 删除元素

转载 作者:行者123 更新时间:2023-11-30 13:55:58 25 4
gpt4 key购买 nike

我正在制作一个带有粘性导航栏的网站,当导航栏到达页面顶部(用户向下滚动)时会出现一个符号,当导航栏离开页面顶部(用户向上滚动)时会消失.到目前为止,我可以让符号出现但不会重新出现。

下面是导航的 js 代码和 HTML:

$(document).ready(function() {

var distance = $('#navbar').offset().top,
$window = $(window);


$(window).scroll(function() {
if ($window.scrollTop() < distance) {
$("#nav").remove(
"<li id=\"navSymbol\"><a href=\"#\">▲</a></li>");

}

if ($window.scrollTop() >= distance) {
if ($("#navSymbol").length) {
console.log("not adding")

} else {
$("#nav").prepend(
"<li id=\"navSymbol\"><a href=\"#\">▲</a></li>");
}
}


});

});
<head>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
</head>

<div style="height: 25vw;"></div>

<div class="sticky-top" id="navbar" style="padding-top: 3vw; padding-bottom: 3vw; background-color: white;">
<ul class="nav justify-content-center sticky-top" id="navcontent">
<li class="nav-item">
<a class="nav-link active" id="nav" href="#about">About</a>
</li>
<li class="nav-item">
<a class="nav-link" id="nav" href="#">Staffing</a>
</li>
<li class="nav-item">
<a class="nav-link" id="nav" href="#">Marketing and Finance</a>
</li>
<li class="nav-item">
<a class="nav-link" id="nav" href="#">Future Prospects</a>
</li>
</ul>
</div>

<div style="height: 100vw;"></div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous">
</script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous">
</script>

希望有人能帮忙!

最佳答案

当您调用 remove方法,您现在没有删除节点。

  • 不带参数的remove方法是删除当前节点。
  • 带参数的 remove 方法从提供的选择器中删除元素。

通过提供 HTML,您将为未附加到 DOM 文档的节点生成一个选择器。删除它不会有任何影响,因为他不在那里。

你可以尝试这样的事情:

$(document).ready(function() {
var distance = $('#navbar').offset().top,
$window = $(window);

$(window).scroll(function() {
if ($window.scrollTop() < distance) {
$("#navSymbol").remove();
}

if ($window.scrollTop() >= distance) {
if ($("#navSymbol").length) {
console.log("not adding")
} else {
$("#nav").prepend("<li id=\"navSymbol\"><a href=\"#\">▲</a></li>");
}
}
});

关于javascript - 当父位置改变时 JQuery 删除元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57306209/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com