<div jq-scroll-top="viewerScrollTop"
jq-scroll-left="viewerScrollLeft"
></div>
JavaScript
app.directive('jqScrollTop', ['$parse', function($parse){
return function(scope, element, attrs) {
/*解析並取得表達式*/
var expr = $parse(attrs['jqScrollTop']);
/*監聽變數異動,並更新到 element 上*/
scope.$watch(attrs['jqScrollTop'], function(value) {
element.scrollTop(value);
});
/*當 element 捲動時更新到變數上*/
element.on('scroll', function() {
expr.assign(scope, element.scrollTop());
});
/*在 destroy 時清除事件註冊*/
scope.$on('$destroy', function(){
element.off('scroll');
});
};
}]);
app.directive('jqScrollLeft', ['$parse', function($parse){
return function(scope, element, attrs) {
/*解析並取得表達式*/
var expr = $parse(attrs['jqScrollLeft']);
/*監聽變數異動,並更新到 element 上*/
scope.$watch(attrs['jqScrollLeft'], function(value) {
element.scrollLeft(value);
});
/*當 element 捲動時更新到變數上*/
element.on('scroll', function() {
expr.assign(scope, element.scrollLeft());
});
/*在 destroy 時清除事件註冊*/
scope.$on('$destroy', function(){
element.off('scroll');
});
};
}]);
0 回應:
張貼留言