mirror of https://github.com/ElemeFE/element
add submenu transition (#2298)
parent
ad2a32dcd6
commit
d3f62b7974
|
@ -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) {
|
||||||
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 @@
|
||||||
}">
|
}">
|
||||||
</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 @@
|
||||||
|
|
||||||
mixins: [menuMixin, Emitter],
|
mixins: [menuMixin, Emitter],
|
||||||
|
|
||||||
|
components: {
|
||||||
|
CollapseTransition
|
||||||
|
},
|
||||||
|
|
||||||
props: {
|
props: {
|
||||||
index: {
|
index: {
|
||||||
type: String,
|
type: String,
|
||||||
|
|
|
@ -1,9 +1,7 @@
|
||||||
<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 @@
|
||||||
</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 {
|
||||||
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 {
|
||||||
}
|
}
|
||||||
|
|
||||||
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;
|
Loading…
Reference in New Issue