繁体   English   中英

点击时无法滚动到页面顶部

[英]Can't get page to scroll to top on click

因此,我正在将网页从基本结构迁移到WordPress,并且其中一个页面具有目录。 ToC具有加号,可让您扩展ToC的不同区域,当您单击链接而没有点击链接时,正文会正确滚动,但是,整个页面的实际HTML标记并未向上滚动。

因此,基本上,这是页面布局的一个非常粗糙的模拟

<html overflow-y: scroll; margin-left/right: auto; width: 1235px;>
<body overflow-y: scroll>
...primary content here centered by html css
</body>
</html>

因此,基本上,单击加号会正确使用href标记来设置BODY滚动窗口,但是,由于html文档也无法滚动,因此无法使页面与您刚刚单击导航的部分的标题正确对齐至。 这是加号使用的openClose函数的代码:

function openClose(theName, menuArray, theID) {

 for(var i=0; i < menuArray.length; i++) {
  if (menuArray[i] == theID) {
    if (document.getElementById(theID).style.display == "block") {
      document.getElementById(theID).style.display = "none";
      document.getElementById("tick_"+menuArray[i]).innerHTML = "+";
      eraseCookie(theName); }
    else {
      document.getElementById(theID).style.display = "block";
      document.getElementById("tick_"+menuArray[i]).innerHTML = "-";
      newCookie(theName,menuArray[i],exp); }
    }
 else {
    document.getElementById(menuArray[i]).style.display = "none";
    document.getElementById("tick_"+menuArray[i]).innerHTML = "+"; }
 }
    $(window).scrollTop(0); // this is just one of many examples 
}

scrollTop只是我尝试过的许多示例之一,可以使HTML文档滚动到顶部,但是,似乎什么也做不了。 我不是要滚动正文,而是要滚动主垂直滚动条。 我发现在openClose on click函数中,我会将这种函数放在最后,以便在导航到on click事件定义的位置后,它将整个文档向上滚动。 但是同样,什么也没有发生。 我是否缺少简单的东西?

我用Google搜索并找到了另一个页面使用JavaScript / jQuery滚动到页面顶部? 但所有示例均无效。

除非您定义了$ word,否则您不能在wordpress中对jquery使用$符号。 用单词“ jQuery”切换,以便在每个地方使用$,使用“ jQuery”。 如果您查找安全模式的jquery,还有其他方法。

还可以使用控制台-chrome / firefox =右键单击页面元素,然后选择“检查元素”,您将在出现的窗口的顶部菜单上看到控制台。 它将显示js错误。 在上面的代码中,您将看到“未定义不是函数”经典jQuery未加载错误(或者您与$符号有冲突,需要使用安全模式jquery),并且您将看到“意外”错误缺少一些括号。

function openClose(theName, menuArray, theID) {

    for(var i=0; i < menuArray.length; i++) {

            if (menuArray[i] == theID) {
                if (document.getElementById(theID).style.display == "block") {
                   document.getElementById(theID).style.display = "none";
                   document.getElementById("tick_"+menuArray[i]).innerHTML = "+";
                   eraseCookie(theName); 
                } else {
                   document.getElementById(theID).style.display = "block";
                   document.getElementById("tick_"+menuArray[i]).innerHTML = "-";
                   newCookie(theName,menuArray[i],exp); 
                }
            } else {
                document.getElementById(menuArray[i]).style.display = "none";
                document.getElementById("tick_"+menuArray[i]).innerHTML = "+"; 
            } 
    }
    jQuery(window).scrollTop(); // this is just one of many examples 
};

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM