123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- angular.module('kityminderEditor')
- .directive('topTab', function() {
- return {
- restrict: 'A',
- templateUrl: 'ui/directive/topTab/topTab.html',
- scope: {
- minder: '=topTab',
- editor: '='
- },
- link: function(scope) {
- /*
- *
- * 用户选择一个新的选项卡会执行 setCurTab 和 foldTopTab 两个函数
- * 用户点击原来的选项卡会执行 foldTopTop 一个函数
- *
- * 也就是每次选择新的选项卡都会执行 setCurTab,初始化的时候也会执行 setCurTab 函数
- * 因此用 executedCurTab 记录是否已经执行了 setCurTab 函数
- * 用 isInit 记录是否是初始化的状态,在任意一个函数时候 isInit 设置为 false
- * 用 isOpen 记录是否打开了 topTab
- *
- * 因此用到了三个 mutex
- * */
- var executedCurTab = false;
- var isInit = true;
- var isOpen = true;
- scope.setCurTab = function(tabName) {
- setTimeout(function() {
- //console.log('set cur tab to : ' + tabName);
- executedCurTab = true;
- //isOpen = false;
- if (tabName != 'idea') {
- isInit = false;
- }
- });
- };
- scope.toggleTopTab = function() {
- setTimeout(function() {
- if(!executedCurTab || isInit) {
- isInit = false;
- isOpen ? closeTopTab(): openTopTab();
- isOpen = !isOpen;
- }
- executedCurTab = false;
- });
- };
- function closeTopTab() {
- var $tabContent = $('.tab-content');
- var $minderEditor = $('.minder-editor');
- $tabContent.animate({
- height: 0,
- display: 'none'
- });
- $minderEditor.animate({
- top: '32px'
- });
- }
- function openTopTab() {
- var $tabContent = $('.tab-content');
- var $minderEditor = $('.minder-editor');
- $tabContent.animate({
- height: '60px',
- display: 'block'
- });
- $minderEditor.animate({
- top: '92px'
- });
- }
- }
- }
- });
|