css 过渡到滚动返回顶部按钮

iqih9akk  于 2023-10-21  发布在  其他
关注(0)|答案(4)|浏览(131)

我在我的网站上创建了一个按钮,通过遵循本教程滚动回页面顶部:W3Schools
问题是,当你点击按钮时,没有过渡到顶部,你只是“传送”到页面的顶部。因此,如果有人知道如何改进过渡或如何制作按钮,否则。
HTML代码:
<button onclick="topFunction()" id="myBtn" title="Go to top">Top</button>
CSS代码:

#myBtn {
  display: none; /* Hidden by default */
  position: fixed; /* Fixed/sticky position */
  bottom: 20px; /* Place the button at the bottom of the page */
  right: 30px; /* Place the button 30px from the right */
  z-index: 99; /* Make sure it does not overlap */
  border: none; /* Remove borders */
  outline: none; /* Remove outline */
  background-color: red; /* Set a background color */
  color: white; /* Text color */
  cursor: pointer; /* Add a mouse pointer on hover */
  padding: 15px; /* Some padding */
  border-radius: 10px; /* Rounded corners */
  font-size: 18px; /* Increase font size */
}

#myBtn:hover {
  background-color: #555; /* Add a dark-grey background on hover */
}

JavaScript代码:

//Get the button:
mybutton = document.getElementById("myBtn");

// When the user scrolls down 20px from the top of the document, show the button
window.onscroll = function() {scrollFunction()};

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

// When the user clicks on the button, scroll to the top of the document
function topFunction() {
  document.body.scrollTop = 0; // For Safari
  document.documentElement.scrollTop = 0; // For Chrome, Firefox, IE and Opera
}
eblbsuwk

eblbsuwk1#

您可以通过将scroll-behavior: smooth;添加到您的 html 样式中或通过在 JavaScript 中使用带有behavior: 'smooth'选项的window scrollTo方法来实现这一点:

window.scrollTo({
  top: 0,
  left: 0,
  behavior: 'smooth'
});
piok6c0g

piok6c0g2#

在你的topFunction()中试试这个,它肯定会工作的。可以为animate命令设置回调函数。我已经在我的本地主机测试,它的工作原理就像一个魅力。希望对你有帮助。

function topFunction() {
     var body = $("html, body");
      body.stop().animate({scrollTop:0}, 500, 'swing', function() { 
           console.log("Animation has finished");
      });
    }
eit6fx6z

eit6fx6z3#

遵循我下面给出的结构。

<!Doctype html>
<html>
<head>
<!--Add the CSS Code here-->
<style>
</style>
</head>
<body>
<!--Add more text here-->
<p>Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum....</p>
<button onclick="topFunction()" id="myBtn" title="Go to top">Top</button>
</body>
<script>
<!--Add the JavaScript Code here-->
</script>
</html>```
Then just run the code.
rt4zxlrg

rt4zxlrg4#

另一种方法是给予一个位于网页顶部的div一个id,然后创建一个带有onclick函数的按钮,然后在js中像这样定义该函数:(将“myfunction”改为你的函数名)(将“top”改为页面顶部的div id)

function myfunction {
   document.getElementbyID('Top').scrollintoview();
}

如果你想让它滚动平滑,你可以添加scroll-behavior:smooth到html在css这里它看起来像:

html {
         scroll-behavior:smooth;
    }

相关问题