<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 回應:
張貼留言