【问题标题】:Convert A Javascript Button Function To An Onload Function将 Javascript 按钮函数转换为 Onload 函数
【发布时间】:2017-07-02 21:30:52
【问题描述】:

我有一个运行良好的“scrolltop”脚本,可以在我的整个站点中正常运行。

但是,它是一个“按钮”功能脚本。

在某些情况下,我需要将此脚本从按钮功能执行为“onload”功能。

我的诗句不足以转换脚本。如果有人能建议我如何做到这一点,将不胜感激。

这里是脚本(按钮功能):

    <button onclick="topFunction()" id="myBtn"><span class="BtnText">Page Top<span></button>

    <script>
    window.onscroll = function() {scrollFunction()}; function scrollFunction() {
    if (document.body.scrollTop > 20 || document.documentElement.scrollTop > 20) {document.getElementById("myBtn").style.display = "block";} 
    else {document.getElementById("myBtn").style.display = "none";}}
    function topFunction() {document.body.scrollTop = 0; document.documentElement.scrollTop = 0;} 
    </script>

【问题讨论】:

  • 使用前请阅读标签说明:java 和 javascript 是两种完全不同的语言。
  • 感谢反斜杠的批评。对这个问题有任何了解吗?
  • “onload”函数是什么意思? “在某些情况下”是什么意思?
  • @quirimmo...基本上...当页面加载时,我需要将其滚动到顶部。
  • window.onload = function() { scrollFunction(); };

标签: javascript onload scrolltop onload-event


【解决方案1】:

我不完全确定您是否打算在页面加载时执行函数 topFunction()

但是,如果是这样的话:

<script>
window.onload = function() {
  topFunction();
}
window.onscroll = function() {
  scrollFunction()
};
function scrollFunction() {
  if (document.body.scrollTop > 20 || document.documentElement.scrollTop > 20) {
    document.getElementById("myBtn").style.display = "block";
  } 
  else {
    document.getElementById("myBtn").style.display = "none";
  }
}
function topFunction() {
  document.body.scrollTop = 0;
  document.documentElement.scrollTop = 0;
}
</script>

【讨论】:

  • 我现在要试一试,让你知道进展如何。不过,我想知道是否有办法缩短该脚本并删除其中的“按钮”部分。但我会在你编辑它时尝试一下,看看是否有效。
  • 如果您想在页面加载时滚动到页面顶部,而无需单击按钮,您可以安全地从 html 中删除该按钮并使用此脚本。
  • 谢谢伙计。不幸的是,它没有用。但我不认为这是剧本的缺陷。这是我对我实际需要发生的事情的理解的一个缺陷。我有一个带有 iframe 的“索引”页面。“ id="mainFrame" ”在其中显示了我的所有网站内容。我在那个“索引”页面中使用了两个不同的“滚动”功能。其中之一是我在问题中包含的“topFunction”按钮执行脚本。这很好用。此外,在“mainFrame”iframe 标记中,我使用的是 onload="scroll(0,0)" 函数。这也很好用。
  • 我遇到的问题是......我的网站上有一个页面,它有自己的导航栏和内容 iframe。我也尝试在该 iframe 中使用 onload="scroll(0,0)" 。不幸的是……那行不通。我很茫然。
  • 你的意思是要对页面中的iframe内容执行“topFunction”函数吗?在这种情况下,由于安全性和跨域原因,它不会起作用。例如:如果任何人都可以包含谷歌的 iframe 并从他们自己的网站执行脚本,那将是危险的。
猜你喜欢
  • 1970-01-01
  • 2016-06-02
  • 2022-01-04
  • 2016-11-26
  • 2015-09-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-06
相关资源
最近更新 更多