CSS/Javascript 自动滚动到顶部
CSS/Javascript Auto Scroll To Top
我目前正在为我正在处理的网站的桌面版和移动版开发一个简单的(或者我认为是这样的)下拉菜单。只有在可能的情况下,我才会尝试在 CSS 中执行此操作。目前我使用的CSS如下:
#menu {position: absolute; top: 0; left: 0; width: 100%; max-height: 50px; overflow: hidden; -webkit-transition: all 1s ease; /* For Safari 3.1 to 6.0 */ transition: all 1s ease; padding: 4px; }
#menu:hover {max-height: 75%; overflow: auto}
我在较小的屏幕上出现 'overflow: auto' 的原因是整个菜单在较小的屏幕上没有显示 - 即使我有一些元素在移动屏幕上没有显示。
我 运行 遇到的问题是当它确实溢出并且用户滚动浏览菜单时,当他们 click/hover 离开菜单时它会像应该的那样缩回但它没有不再显示菜单顶部,它将显示他们滚动到的任何位置。
我想通过 CSS 或 Javascript 找到一种方法,当用户 clicks/hovers 离开时自动让 div 滚动回顶部菜单,因此它仍会显示菜单图标 + 徽标,而不是随机的菜单文本。
我喜欢它的工作方式,但无法忍受较小屏幕上的滚动问题。
您的想法可能有些笨拙,可能需要重新设计,我当然从来没有注意到这样的菜单。
但是 jQuery 滚动到顶部的代码是这样的:
$("html, body").animate({
scrollTop: 0
}, 600);
其中 600 是以毫秒为单位的时间。
您必须将其包装在 click() 函数或其他函数中,以便在有人按下菜单选项时触发它。
例如:
$('#menu a').click(function () {
$("html, body").animate({
scrollTop: 0
}, 600);
});
当然,所有这些代码都应该包含在 $(document).ready() 中(基本 jQuery 设置)
我知道您在问题中没有提到 jQuery,但这是解决此类问题的一种流行方法。
还有另一种方法可以仅使用 html 实现点击时自动滚动。
你只需要给一些 div 添加一个 id(可能是 header),然后在 link 上你将 #id 传递给 href,就像这样:
html
<div id="Header">your header</div>
<a href="#Header">Go to the top</a>
css
/* Keyword values */
scroll-behavior: auto;
scroll-behavior: smooth;
我建议尝试一下 scroll-behavior: smooth;
它可以实现过渡,好吧...平滑 :D
在这里您可以找到您需要的有关此解决方案的所有文档
https://developer.mozilla.org/de/docs/Web/CSS/scroll-behavior
我目前正在为我正在处理的网站的桌面版和移动版开发一个简单的(或者我认为是这样的)下拉菜单。只有在可能的情况下,我才会尝试在 CSS 中执行此操作。目前我使用的CSS如下:
#menu {position: absolute; top: 0; left: 0; width: 100%; max-height: 50px; overflow: hidden; -webkit-transition: all 1s ease; /* For Safari 3.1 to 6.0 */ transition: all 1s ease; padding: 4px; }
#menu:hover {max-height: 75%; overflow: auto}
我在较小的屏幕上出现 'overflow: auto' 的原因是整个菜单在较小的屏幕上没有显示 - 即使我有一些元素在移动屏幕上没有显示。
我 运行 遇到的问题是当它确实溢出并且用户滚动浏览菜单时,当他们 click/hover 离开菜单时它会像应该的那样缩回但它没有不再显示菜单顶部,它将显示他们滚动到的任何位置。
我想通过 CSS 或 Javascript 找到一种方法,当用户 clicks/hovers 离开时自动让 div 滚动回顶部菜单,因此它仍会显示菜单图标 + 徽标,而不是随机的菜单文本。
我喜欢它的工作方式,但无法忍受较小屏幕上的滚动问题。
您的想法可能有些笨拙,可能需要重新设计,我当然从来没有注意到这样的菜单。
但是 jQuery 滚动到顶部的代码是这样的:
$("html, body").animate({
scrollTop: 0
}, 600);
其中 600 是以毫秒为单位的时间。 您必须将其包装在 click() 函数或其他函数中,以便在有人按下菜单选项时触发它。 例如:
$('#menu a').click(function () {
$("html, body").animate({
scrollTop: 0
}, 600);
});
当然,所有这些代码都应该包含在 $(document).ready() 中(基本 jQuery 设置) 我知道您在问题中没有提到 jQuery,但这是解决此类问题的一种流行方法。
还有另一种方法可以仅使用 html 实现点击时自动滚动。
你只需要给一些 div 添加一个 id(可能是 header),然后在 link 上你将 #id 传递给 href,就像这样:
html
<div id="Header">your header</div>
<a href="#Header">Go to the top</a>
css
/* Keyword values */
scroll-behavior: auto;
scroll-behavior: smooth;
我建议尝试一下 scroll-behavior: smooth;
它可以实现过渡,好吧...平滑 :D
在这里您可以找到您需要的有关此解决方案的所有文档 https://developer.mozilla.org/de/docs/Web/CSS/scroll-behavior