gpt4 book ai didi

javascript - Bootstrap 3 和 ScrollTop 函数 : #link conflict

转载 作者:行者123 更新时间:2023-11-28 17:40:00 27 4
gpt4 key购买 nike

我正在使用 BootStrap 3 构建单页网站。要移动到页面的不同部分,我在 http://css-tricks.com/snippets/jquery/smooth-scrolling/ 找到了平滑滚动功能。它工作正常。

$(function() {
$('a[href*=#]:not([href=#])').click(function() {
if (location.pathname.replace(/^\//,'') == this.pathname.replace(/^\//,'') && location.hostname == this.hostname) {
var target = $(this.hash);
target = target.length ? target : $('[name=' + this.hash.slice(1) +']');
if (target.length) {
$('html,body').animate({
scrollTop: target.offset().top
}, 1000);
return false;
}
}
});
});

平滑滚动检测以#
<a href="#zone">Scroll to Section Zone</a>
开头的链接

但以# 开头的链接也用于 Bootstrap Carousel
data-target="#myCarousel"
因此,在幻灯片放映中移动到上一张/下一张幻灯片的按钮的行为很奇怪。

我对 Javascript 几乎一无所知,但我意识到代码的第二行是关于要避免的链接:所以我在该部分放置了“#myCarousel”。下面你可以找到编辑后的第二行:

  $('a[href*=#]:not([href=#],"#myCarousel")').click(function() {

我的解决方案(非常令人惊讶!)有效...几乎有效!
只有一个问题:滚动不再流畅。
单击按钮,页面跳转到目标链接。

知道为什么不流畅吗?

找到解决方案

谢谢大家的回答。
在发布此请求之前,我进行了搜索 jquery api

我找到了一个解决方案:现在第二行是
$('a[href*=#]').not("[href=#], [href=#myCarousel]").click(function() {

最佳答案

您破坏了 javascript 函数,因为您的 :not 选择器写错了。因此,平滑滚动不再起作用。尝试这样做:

$('a[href*=#]:not(#myCarousel)').click(function() {

阅读更多关于 :not CSS 选择器的信息 here

关于javascript - Bootstrap 3 和 ScrollTop 函数 : #link conflict,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24326474/

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