fixed #1063
This commit is contained in:
parent
300bd6623e
commit
297648f1e6
9 changed files with 180 additions and 33 deletions
|
@ -30,15 +30,15 @@
|
|||
import Icon from '../icon';
|
||||
import iButton from '../button/button.vue';
|
||||
import TransferDom from '../../directives/transfer-dom';
|
||||
import { getScrollBarSize } from '../../utils/assist';
|
||||
import Locale from '../../mixins/locale';
|
||||
import Emitter from '../../mixins/emitter';
|
||||
import ScrollbarMixins from './mixins-scrollbar';
|
||||
|
||||
const prefixCls = 'ivu-modal';
|
||||
|
||||
export default {
|
||||
name: 'Modal',
|
||||
mixins: [ Locale, Emitter ],
|
||||
mixins: [ Locale, Emitter, ScrollbarMixins ],
|
||||
components: { Icon, iButton },
|
||||
directives: { TransferDom },
|
||||
props: {
|
||||
|
@ -186,34 +186,6 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
checkScrollBar () {
|
||||
let fullWindowWidth = window.innerWidth;
|
||||
if (!fullWindowWidth) { // workaround for missing window.innerWidth in IE8
|
||||
const documentElementRect = document.documentElement.getBoundingClientRect();
|
||||
fullWindowWidth = documentElementRect.right - Math.abs(documentElementRect.left);
|
||||
}
|
||||
this.bodyIsOverflowing = document.body.clientWidth < fullWindowWidth;
|
||||
if (this.bodyIsOverflowing) {
|
||||
this.scrollBarWidth = getScrollBarSize();
|
||||
}
|
||||
},
|
||||
setScrollBar () {
|
||||
if (this.bodyIsOverflowing && this.scrollBarWidth !== undefined) {
|
||||
document.body.style.paddingRight = `${this.scrollBarWidth}px`;
|
||||
}
|
||||
},
|
||||
resetScrollBar () {
|
||||
document.body.style.paddingRight = '';
|
||||
},
|
||||
addScrollEffect () {
|
||||
this.checkScrollBar();
|
||||
this.setScrollBar();
|
||||
document.body.style.overflow = 'hidden';
|
||||
},
|
||||
removeScrollEffect() {
|
||||
document.body.style.overflow = '';
|
||||
this.resetScrollBar();
|
||||
},
|
||||
animationFinish() {
|
||||
this.$emit('on-hidden');
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue