猿问

在单击事件期间,JQuery scrollTo 函数错误找不到滚动到某个 div ID 的方法

我正在尝试滚动到我网站上的某个部分,该部分标有 ID,我想在单击事件上使用动画 jquery 滚动来这样做。这是我当前的代码:


js标题部分


<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.0/jquery.min.js"></script>

<script src="index.js"></script>

菜单区


<li><a onclick="scrollTo()" href="#testimonials">Testimonials</a></li>

<li><a onclick="scrollTo()" href="#portfolio">Portfolio</a></li>

<li><a onclick="scrollTo()" href="#contact">Contact</a></li>

<li><a onclick="scrollTo()" href="#faq">FAQ</a></li>

Javascript文件


$(document).ready(function() {

    console.log("Test")

    function scrollTo() {

        console.log("Clicked!")

        var elem = document.getElementById('testimonials');

        console.log(elem)

        elem.scrollTop = elem.scrollHeight;

        window.scrollTo

    }

})


Helenr
浏览 181回答 1
1回答

qq_花开花谢_0

在这里看到它:codepen首先:不要scrollTo用于您的处理程序名称。因为scrollTo是js中的一个函数。附加步骤:将内联事件添加到您的导航元素中,如下所示:<a&nbsp;onclick="scrollTo_(event,'testimonials')"&nbsp;href="#testimonials">Testimonials</a>它将通过,click event并且还id让处理程序知道目标元素的 id 是什么。处理函数应该是这样的:function&nbsp;scrollTo_(ev,id)&nbsp;{ &nbsp;&nbsp;ev.preventDefault(); &nbsp;&nbsp;$([document.documentElement,&nbsp;document.body]).animate({ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;scrollTop:&nbsp;$("#"+id).offset().top &nbsp;&nbsp;},&nbsp;2000);}它使用 preventDefault 来防止正常的<a>点击行为。它使用这个答案(如何使用 jquery 动画滚动)使用 jquery动画滚动到元素。补充笔记:不要将您的函数声明放在$(document).ready.
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答