【发布时间】:2014-02-16 08:29:29
【问题描述】:
我构建了一个指令,用于在延迟后将部分滚动到视图中,以补偿部分动画打开,然后添加功能以在用户尝试手动滚动屏幕时停止滚动。
angular.module("scrollOnClick", [])
.directive('scrollOnClick', function() {
return {
restrict: 'A',
link: function(scope, $elm, $window) {
$elm.on('click', function() {
var $viewport = $('html, body');
$viewport.bind("scroll mousedown DOMMouseScroll mousewheel keydown", function(){
$viewport.stop()
});
setTimeout(function () {
var winH = window.innerHeight
var oSet = (winH / 2) - 222
$viewport.animate({scrollTop: $elm.offset().top - oSet}, "easing", function(){
$viewport.unbind("scroll mousedown DOMMouseScroll mousewheel keydown");
}); return false;
}, 201);
});
}
}
});
我的问题是我不想让它触发 scrollTop 动画的部分中有一个按钮。任何想法是如何阻止它?
【问题讨论】:
-
在处理按钮的点击事件时尝试
return false; -
我不确定我完全明白你的意思。如果你的字面意思是 ng-click="return = false;"这行不通。
标签: jquery angularjs angularjs-directive scrolltop