Javascript 无法通过按钮单击向上滚动到菜单顶部-AngularJS
问题背景: 我正在使用Jasny Bootstrap的显示菜单。可以在此处找到演示: 问题: 在我的显示菜单中,我有一个表单,它要求在点击按钮打开或关闭时,显示的面板向上滚动到顶部。以下显示滚动条处于活动状态时显示的菜单面板: 以下是菜单的菜单标记:Javascript 无法通过按钮单击向上滚动到菜单顶部-AngularJS,javascript,angularjs,Javascript,Angularjs,问题背景: 我正在使用Jasny Bootstrap的显示菜单。可以在此处找到演示: 问题: 在我的显示菜单中,我有一个表单,它要求在点击按钮打开或关闭时,显示的面板向上滚动到顶部。以下显示滚动条处于活动状态时显示的菜单面板: 以下是菜单的菜单标记: <div class="navmenu navmenu-default navmenu-fixed-left" id="updateMenu"> //*********Form********** </div>
<div class="navmenu navmenu-default navmenu-fixed-left" id="updateMenu">
//*********Form**********
</div>
<div class="navbar navbar-default navbar-fixed-top">
<button id="menuBtn" type="button" ng-click="ScrollUp()" class="navbar-toggle" data-toggle="offcanvas" data-recalc="false" data-target=".navmenu" data-canvas=".canvas">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
</div>
目前这不起作用。我还尝试了以下不起作用的功能:
app.controller('UpdateController', function ($scope, $timeout, $location, $anchorScroll, $window, searchService) {
$scope.ScrollUp = function () {
$window.scrollTo(0, angular.element('#updateMenu').offsetTop);
}
}
当用户单击按钮
updateMenu
时,如何向上滚动到显示菜单的顶部?通过将元素设置为0,您应该能够达到所需的效果。将以下代码用于向上滚动
功能应允许菜单跳回起始点
$scope.ScrollUp = function () {
document.getElementById('updateMenu').scrollTop = 0;
}
您发布的两个当前实现都试图将主网页滚动到顶部。我的理解是,当他们打开或关闭菜单时,您希望将菜单滚动到顶部 Javascript
$scope.ScrollUp = function () {
document.getElementById('updateMenu').scrollTop = 0;
}
jQuery
$scope.ScrollUp = function () {
$("#updateMenu").scrollTop();
}
带动画的jQuery
$scope.ScrollUp = function () {
$('#updateMenu').animate({ scrollTop: 0 }, 'slow', function () {
alert("reached top");
});
}
AngularJs
如果你想用AngularJS的方式,这里有一个类似的问题:
它应该可以使用
但也可以使用其属性指定垂直滚动偏移(固定或动态)
为了使yOffset正常工作,滚动应该发生在文档的根上,而不是某个子元素上
$scope.ScrollUp = function () {
$('#updateMenu').animate({ scrollTop: 0 }, 'slow', function () {
alert("reached top");
});
}