Commit d3f62b79 authored by baiyaaaaa's avatar baiyaaaaa Committed by cinwell.li

add submenu transition (#2298)

parent ad2a32dc
...@@ -6,6 +6,7 @@ var saladConfig = require('../packages/theme-default/salad.config.json'); ...@@ -6,6 +6,7 @@ var saladConfig = require('../packages/theme-default/salad.config.json');
var utilsList = fs.readdirSync(path.resolve(__dirname, '../src/utils')); var utilsList = fs.readdirSync(path.resolve(__dirname, '../src/utils'));
var mixinsList = fs.readdirSync(path.resolve(__dirname, '../src/mixins')); var mixinsList = fs.readdirSync(path.resolve(__dirname, '../src/mixins'));
var transitionList = fs.readdirSync(path.resolve(__dirname, '../src/transitions'));
var externals = {}; var externals = {};
Object.keys(Components).forEach(function(key) { Object.keys(Components).forEach(function(key) {
...@@ -21,6 +22,10 @@ mixinsList.forEach(function(file) { ...@@ -21,6 +22,10 @@ mixinsList.forEach(function(file) {
file = path.basename(file, '.js'); file = path.basename(file, '.js');
externals[`element-ui/src/mixins/${file}`] = `element-ui/lib/mixins/${file}`; externals[`element-ui/src/mixins/${file}`] = `element-ui/lib/mixins/${file}`;
}); });
transitionList.forEach(function(file) {
file = path.basename(file, '.js');
externals[`element-ui/src/transitions/${file}`] = `element-ui/lib/transitions/${file}`;
});
externals = [Object.assign({ externals = [Object.assign({
vue: 'vue' vue: 'vue'
......
...@@ -15,14 +15,20 @@ ...@@ -15,14 +15,20 @@
}"> }">
</i> </i>
</div> </div>
<transition :name="rootMenu.mode === 'horizontal' ? 'el-zoom-in-top' : ''"> <template v-if="rootMenu.mode === 'horizontal'">
<transition name="el-zoom-in-top">
<ul class="el-menu" v-show="opened"><slot></slot></ul> <ul class="el-menu" v-show="opened"><slot></slot></ul>
</transition> </transition>
</template>
<collapse-transition v-else>
<ul class="el-menu" v-show="opened"><slot></slot></ul>
</collapse-transition>
</li> </li>
</template> </template>
<script> <script>
import menuMixin from './menu-mixin'; import menuMixin from './menu-mixin';
import Emitter from 'element-ui/src/mixins/emitter'; import Emitter from 'element-ui/src/mixins/emitter';
import CollapseTransition from 'element-ui/src/transitions/collapse-transition';
module.exports = { module.exports = {
name: 'ElSubmenu', name: 'ElSubmenu',
...@@ -31,6 +37,10 @@ ...@@ -31,6 +37,10 @@
mixins: [menuMixin, Emitter], mixins: [menuMixin, Emitter],
components: {
CollapseTransition
},
props: { props: {
index: { index: {
type: String, type: String,
......
<template> <template>
<div class="el-tab-pane"> <div class="el-tab-pane" v-show="active">
<div class="el-tab-pane__content" v-show="active">
<slot></slot> <slot></slot>
</div> </div>
</div>
</template> </template>
<script> <script>
module.exports = { module.exports = {
......
...@@ -43,7 +43,7 @@ ...@@ -43,7 +43,7 @@
</template> </template>
<script type="text/jsx"> <script type="text/jsx">
import CollapseTransition from './transition'; import CollapseTransition from 'element-ui/src/transitions/collapse-transition';
import ElCheckbox from 'element-ui/packages/checkbox'; import ElCheckbox from 'element-ui/packages/checkbox';
export default { export default {
......
...@@ -3,6 +3,7 @@ class Transition { ...@@ -3,6 +3,7 @@ class Transition {
if (!el.dataset) el.dataset = {}; if (!el.dataset) el.dataset = {};
el.dataset.oldPaddingTop = el.style.paddingTop; el.dataset.oldPaddingTop = el.style.paddingTop;
el.dataset.oldPaddingBottom = el.style.paddingBottom; el.dataset.oldPaddingBottom = el.style.paddingBottom;
el.dataset.oldDisplay = el.style.display;
el.style.height = '0'; el.style.height = '0';
el.style.paddingTop = 0; el.style.paddingTop = 0;
el.style.paddingBottom = 0; el.style.paddingBottom = 0;
...@@ -55,7 +56,8 @@ class Transition { ...@@ -55,7 +56,8 @@ class Transition {
} }
afterLeave(el) { afterLeave(el) {
el.style.display = el.style.height = ''; el.style.display = el.dataset.oldDisplay;
el.style.height = '';
el.style.overflow = el.dataset.oldOverflow; el.style.overflow = el.dataset.oldOverflow;
el.style.paddingTop = el.dataset.oldPaddingTop; el.style.paddingTop = el.dataset.oldPaddingTop;
el.style.paddingBottom = el.dataset.oldPaddingBottom; el.style.paddingBottom = el.dataset.oldPaddingBottom;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment