滚动功能适用于某些单击事件,但不适用于其他事件

Biggles-2

对于三种不同的单击事件,我在同一滚动功能上具有三种变体,前两种可以正常工作,并缓慢滚动到元素ID,但是第三个只是直接跳到元素而无需滚动。

    $('#scroll-down').click(function scrollDownProfile(){
        $('html, body').animate({
            scrollTop: $('#profile').offset().top
        }, 500);
    });

    $('#scroll-down-bp').click(function scrollDownBP(){
        $('html, body').animate({
            scrollTop: $('#bp').offset().top
        }, 500);
    });

    $('#scroll-down-software').click(function scrollDownProjects(){
        $('html, body').animate({
            scrollTop: $('#software').offset().top
        }, 500);
    });

考虑到它们都是相同的,我认为这可能与HTML有关,因为每个click事件都在单独的页面上,但是我看不到下面的HTML有什么问题。就像我说的那样,每个HTML代码块都来自不同的页面。

<a id="scroll-down" href="#profile" class="scroll-down">
                <span></span>
            </a>
        </header>
        <nav id="navigation-bar" class="navbar navbar-default" role="navigation">
            <div class="navbar-header">
                <button class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1"></button>
                <span class="sr-only">Toggle navigation</span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
            </div>
            <div class="navbar-collapse navbar-ex1-collapse collapse" style="height: 1px">
                <ul class="nav navbar-nav">
                    <li id="nav_profile" class="active">
                        <a href="#profile">Profile</a>
                    </li>
                    <li id="nav_education" class>
                        <a href="#education">Education</a>
                    </li>
                    <li id = "nav_experience" class>
                        <a href="#experience">Experience</a>
                    </li>
                    <li id="nav_contact" class>
                        <a href="#contact">Contact</a>
                    </li>
                </ul>
            </div>
        </nav>

<div id="profile" class="background_white">
            <div class="container">
                <h2>Profile</h2>
            </div>
</div>
<a id="scroll-down-bp" href="#bp" class="scroll-down">
                <span></span>
            </a>
        </header>
        <nav id="navigation-bar" class="navbar navbar-default" role="navigation">
            <div class="navbar-header">
                <button class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1"></button>
            </div>
            <div class="navbar-collapse navbar-ex1-collapse collapse" style="height: 1px">
                <ul class="nav navbar-nav">
                    <li id="nav_bp" class="active">
                        <a href="#bp">BP-ICAM</a>
                    </li>
                    <li id="nav_masters" class>
                        <a href="#masters">Master's</a>
                    </li>
                    <li id = "nav_chromition" class>
                        <a href="#chromition">Chromition</a>
                    </li>
                    <li id="nav_references" class>
                        <a href="#Contact">References</a>
                    </li>
                </ul>
            </div>
        </nav>
<div id="bp" class="background_white">
            <div class="container container-about-me">
                <div id="bp-icam logo">
                    <h2>BP-ICAM</h2>
                </div>
            </div>
</div>
<a id="scroll-down-software" href="#software" class="scroll-down">
                <span></span>
            </a>
        </header>
<div id="software" class="background_white">
            <div class="container container-about-me">
                <h2 style="color: #2A293E;">Projects</h2>
            </div>
</div>

可以工作的HTML和不能工作的HTML之间的唯一区别是用户单击的位置和滚动到的元素之间的nav元素。我看不出这会如何导致差异。

士兵

首先,我要确保通过html验证器运行html。然后,我将这样编写点击监听器:

$('#scroll-down').on('click', function {
    $('#profile')[0].scrollIntoView({behavior: "smooth", block: "start"});
});

供参考:https : //developer.mozilla.org/en-US/docs/Web/API/Element/scrollIntoView

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

滚动事件不适用于手机

SDL_QUIT事件适用于g ++,但不适用于gcc

DataTemplate单击事件不适用于UserControl

AllowAnyMethod适用于某些API调用,但不适用于其他API调用

子集不适用于某些数值,但适用于其他数值

jQuery循环单击事件不适用于eq(i)

Physics2D.Raycast适用于某些对象,但不适用于其他对象

映射大写锁定以在Mac OS X上进行控制:适用于某些功能,但不适用于其他功能?

通用排序适用于整数,但不适用于其他类型

rails-bootstrap-forms适用于某些样式,但不适用于其他样式

MS Word 2007中的拼写检查器适用于某些语言,但不适用于其他语言

代码适用于一种情况,但不适用于其他情况

jQuery事件委托不适用于某些按钮

视差滚动适用于1张图像,但不适用于其他图像

单击事件不适用于动态添加的按钮或面板

通用JS函数适用于某些div,不适用于其他div

代码适用于图像,但不适用于Codeigniter中的其他文件

媒体查询不适用于某些类的Bootstrap,但适用于其他类

jQuery滚动事件不适用于本节

单击事件不适用于锚标记

jQuery 单击事件适用于 Chrome,而不适用于 Firefox 或 IE

jQuery 事件委托不适用于单击 div

平滑滚动适用于导航栏,但不适用于其他元素(箭头等)

单击事件不适用于动态创建的按钮

平滑的点击缩放功能适用于某些标记但不适用于其他标记

Javascript 数组拼接不适用于 JQuery 单击事件

单击事件不适用于 Firefox,但适用于 chrome

MongoDB geoNear 不适用于某些坐标但适用于其他坐标

单击事件不适用于 Button Sin Selenium