粘性导航和滚动到顶部功能单独工作,但不能一起工作

Posted

技术标签:

【中文标题】粘性导航和滚动到顶部功能单独工作,但不能一起工作【英文标题】:sticky navigation and scroll to top functions work individually, but don't work together 【发布时间】:2021-06-12 20:44:48 【问题描述】:

我的网站上只有两个脚本,一个它们可以工作,它们不能一起工作......我在这里错过了什么?

第一个脚本:

window.onscroll = function() myFunction();

var navigation = document.getElementById("navigation");
var sticky = navigation.offsetTop;

function myFunction() 
  if (window.pageYOffset > sticky) 
    navigation.classList.add("sticky");
   else 
    navigation.classList.remove("sticky");
  

第二个脚本:

mybutton = document.getElementById("tothetop");

window.onscroll = function() scrollFunction();

function scrollFunction() 
  if (document.body.scrollTop > 98 || document.documentElement.scrollTop > 98) 
    mybutton.style.display = "block";
   else 
    mybutton.style.display = "none";
  


function topFunction() 
  document.body.scrollTop = 0;
  document.documentElement.scrollTop = 0;

我不明白他们为什么不一起工作。

【问题讨论】:

两个函数不能一起工作是什么意思?是您的第一个函数没有调用该函数还是两者都不起作用。 【参考方案1】:

您通过执行双重声明来覆盖 onscroll 函数

window.onscroll = function() myFunction(); // oh no, I'll be replaced

window.onscroll = function() scrollFunction(); // I'll be called only

尝试:

window.onscroll = function() 
  myFunction();
  scrollFunction();

【讨论】:

完美,工作!哦,我现在明白了 - 我不知道这个“window.onscroll”不能使用 2 次 :) 谢谢!

以上是关于粘性导航和滚动到顶部功能单独工作,但不能一起工作的主要内容,如果未能解决你的问题,请参考以下文章

底部对齐的导航棒滚动到顶部

滚动到顶部 在 Jquery Mobile 中不工作

Videojs requestPictureInPicture() 在滚动到顶部和底部时只工作一次

滚动到顶部按钮在 IE 中不起作用

单击菜单活动项时标题滚动到顶部

JS简单实现“滚动到顶部“按钮悬浮效果,在一定高度才显示 - 替代CSS粘性定位position:sticky方案