我建议不要滚动到页面顶部。这不是好的用户体验设计!我们可以在身体上隐藏溢出。因此,一旦弹出窗口出现在屏幕上,用户就无法滚动。我们需要将位置固定到弹出窗口的主要元素。
我建议检查下面的代码段。
<html>
<head>
<title>Example</title>
<style type="text/css">
.nooverflow {overflow: hidden;}
.popup {position: fixed; z-index: 99;}
.cover {position: fixed; background: #000; opacity: .5; filter: alpha(opacity=50); top: 0; left: 0; width: 100%; height: 100%; z-index: 1000; }
.popup-conteiner {overflow-y: auto; position: fixed; height: 100%; width: 100%; left: 0; top: 0; z-index: 101;}
.popup-block {position: relative; top: 100px; z-index: 101;}
</style>
</head>
<body>
<div id="popup">
<div class="cover"></div>
<div class="popup-conteiner">
<div class="popup-block">
<!-- POPUP's HTML GOES HERE -->
</div>
</div>
</div>
</body>
</html>
但是,如果它不起作用,那么您可以将页面滚动到页面顶部。您也可以使用 Rajesh 提供的解决方案。我想添加一个条件,如果页面已经动画然后在做新动画之前停止。
var htmlBody = $("html,body"),
top = 0;
if (htmlBody.is(':animated')) {
htmlBody.stop(true, true); //Need to stop if it is already being animated
}
htmlBody.animate({ scrollTop: top }, 1000); //Scroll to the top of the page by animating for 1 sec.