gpt4 book ai didi

javascript - 当父级溢出隐藏时绝对定位 UL

转载 作者:行者123 更新时间:2023-11-28 06:41:48 25 4
gpt4 key购买 nike

我正在尝试构建一个“大型导航”,只是在使用自定义滚动条时遇到了一些问题。

我的问题是自定义滚动条添加了标记,将溢出隐藏到我的nav中,因此.sub-nav元素变成隐藏。

我能想到的唯一解决方案是添加固定到 .sub-nav 元素的位置,然后使用 JavaScript 定位它,这非常困惑而且不那么可靠。

我粘贴了 2 个 fiddle 来表达我的意思 - 我希望这些是有意义的,任何建议将不胜感激!

谢谢

没有插件

http://jsfiddle.net/f4qh27n7/11/

使用插件

http://jsfiddle.net/f4qh27n7/10/

定位元素的函数

function calcNav(){
if( $('#breadcrumb').length > 0 ){
var b = $('#breadcrumb').offset().top;
var w = $(window).scrollTop();
var x = b - w;
$('.sub-nav').css('top', x);
}

}
calcNav();

var scrollTimeout;
$(window).scroll(function() {
clearTimeout( scrollTimeout );
scrollTimeout = setTimeout( calcNav, 50 );
});

最佳答案

与@Lajon 解决方案非常相似。

只需要一点重组: http://jsfiddle.net/8zxq5jas/4/

您在寻找什么?

$(".js-parent-category")
.on("mouseenter", function() {
var target = $(this).attr("data-sub-nav-target");
var element = $("." + target);
element.addClass("active");
})
.on("mouseleave", function() {
var target = $(this).attr("data-sub-nav-target");
var element = $("." + target);
element.removeClass("active");
});

$(".demo").customScrollbar();

<ul class="products-nav btcf">
<li><a href="#">Products</a></li>
<li><a href="#">Link</a></li>
<li><a href="#">Link</a></li>
<li><a href="#">Link</a></li>
<li><a href="#">Link</a></li>
</ul>

<!-- Products Mega Nav -->
<div class="mega-nav btcf">

<ul class="parent-cat demo gray-skin scrollable">
<li><a href="#" class="js-parent-category" data-sub-nav-target="js-sub-nav-1">Parent Category 1</a></li>
<li><a href="#" class="js-parent-category" data-sub-nav-target="js-sub-nav-2">Parent Category 2</a></li>
<li><a href="#" class="js-parent-category" data-sub-nav-target="js-sub-nav-3">Parent Category 3</a></li>
<li><a href="#" class="js-parent-category" data-sub-nav-target="js-sub-nav-4">Parent Category 4</a></li>
<li><a href="#" class="js-parent-category" data-sub-nav-target="js-sub-nav-5">Parent Category 5</a></li>
<li><a href="#" class="js-parent-category" data-sub-nav-target="js-sub-nav-6">Parent Category 6</a></li>
<li><a href="#" class="js-parent-category" data-sub-nav-target="js-sub-nav-7">Parent Category 7</a></li>
<li><a href="#" class="js-parent-category" data-sub-nav-target="js-sub-nav-8">Parent Category 8</a></li>
<li><a href="#" class="js-parent-category" data-sub-nav-target="js-sub-nav-9">Parent Category 9</a></li>
<li><a href="#" class="js-parent-category" data-sub-nav-target="js-sub-nav-10">Parent Category 10</a></li>
</ul>

<div class="js-sub-nav-1 sub-nav">
<h3>Sub Category 1</h3>
<ul>
<li><a href="#">Child link</a></li>
<li><a href="#">Child link</a></li>
<li><a href="#">Child link</a></li>
</ul>
</div>

<div class="js-sub-nav-2 sub-nav">
<h3>Sub Category 2</h3>
<ul>
<li><a href="#">Child link</a></li>
<li><a href="#">Child link</a></li>
<li><a href="#">Child link</a></li>
</ul>
</div>

<div class="js-sub-nav-3 sub-nav">
<h3>Sub Category 3</h3>
<ul>
<li><a href="#">Child link</a></li>
<li><a href="#">Child link</a></li>
<li><a href="#">Child link</a></li>
</ul>
</div>

<div class="js-sub-nav-4 sub-nav">
<h3>Sub Category 4</h3>
<ul>
<li><a href="#">Child link</a></li>
<li><a href="#">Child link</a></li>
<li><a href="#">Child link</a></li>
</ul>
</div>

<div class="js-sub-nav-5 sub-nav">
<h3>Sub Category 5</h3>
<ul>
<li><a href="#">Child link</a></li>
<li><a href="#">Child link</a></li>
<li><a href="#">Child link</a></li>
</ul>
</div>

<div class="js-sub-nav-6 sub-nav">
<h3>Sub Category 6</h3>
<ul>
<li><a href="#">Child link</a></li>
<li><a href="#">Child link</a></li>
<li><a href="#">Child link</a></li>
</ul>
</div>

<div class="js-sub-nav-7 sub-nav">
<h3>Sub Category 7</h3>
<ul>
<li><a href="#">Child link</a></li>
<li><a href="#">Child link</a></li>
<li><a href="#">Child link</a></li>
</ul>
</div>

<div class="js-sub-nav-8 sub-nav">
<h3>Sub Category 8</h3>
<ul>
<li><a href="#">Child link</a></li>
<li><a href="#">Child link</a></li>
<li><a href="#">Child link</a></li>
</ul>
</div>

<div class="js-sub-nav-9 sub-nav">
<h3>Sub Category 9</h3>
<ul>
<li><a href="#">Child link</a></li>
<li><a href="#">Child link</a></li>
<li><a href="#">Child link</a></li>
</ul>
</div>

<div class="js-sub-nav-10 sub-nav">
<h3>Sub Category 10</h3>
<ul>
<li><a href="#">Child link</a></li>
<li><a href="#">Child link</a></li>
<li><a href="#">Child link</a></li>
</ul>
</div>

</div>

关于javascript - 当父级溢出隐藏时绝对定位 UL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33724694/

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