【发布时间】:2015-10-13 15:51:56
【问题描述】:
平滑滚动脚本的共同点,停止默认链接动作(通过返回false)以防止动画中的跳转。这也会阻止引导导航栏菜单在单击链接时折叠(错误)。
示例:
http://www.bootply.com/NoGAvuQGDE
在平滑滚动脚本的最后一行;
- 如果您返回
false,它会在单击链接时发生冲突并停止菜单关闭。 - 如果您返回
true,动画会因为链接工作而变得跳跃。
转载:
- 点击
dropdown / action链接 - 由于默认操作被阻止,下拉菜单保持打开状态(错误)
从平滑滚动中排除导航栏链接会达到目的。
想法:
我们可以修改平滑滚动脚本以在平滑滚动链接时关闭所有导航栏菜单。 $('.dropdown-toggle').dropdown('collapse') 之类的东西可以工作,但 API 中没有“折叠”操作,只有“切换”。
问:如何在引导页面上进行平滑滚动,不会与导航栏菜单冲突,阻止它们关闭?
smoothscroll 脚本,供以后参考:
$(function(){
$('.navbar a[href*=#], a.smooth').click(function() {return smoothScroll(this)});
});
function smoothScroll(linkItem) {
if (location.pathname.replace(/^\//,'') == linkItem.pathname.replace(/^\//,'')
&& location.hostname == linkItem.hostname) {
var $target = $(linkItem.hash);
$target = $target.length && $target || $('[name=' + linkItem.hash.slice(1) +']');
if ($target.length) {
var targetOffset = $target.offset().top;
$('html,body').animate({scrollTop: targetOffset}, 500);
return false;
}
}
}
【问题讨论】:
-
如果您通读了您的帖子,您甚至没有提出任何问题,也没有发布任何代码或提供示例。如果您希望人们帮助您,请澄清您的问题并提供示例等。
-
@crazymatt 谢谢你,以前我认为这个问题对于引导用户来说非常明显。我已经编辑了问题。
-
@Shikkediel 引用“开放”类是这里的关键! API 有一个切换方法(不幸的是,没有“折叠”)我引用了“打开”类并使用了“切换”方法,以便对引导程序可能持有的任何内部变量友好。如果这个问题被重新打开,我可以接受你的回答。谢谢。
标签: javascript jquery html twitter-bootstrap smooth-scrolling