mirror of
https://gitee.com/vant-contrib/vant.git
synced 2025-04-06 03:57:59 +08:00
Merge pull request #84 from chenjiahan/dev
fix: popup will not preventScroll by default
This commit is contained in:
commit
0b76216e9c
@ -95,6 +95,14 @@ export default {
|
|||||||
};
|
};
|
||||||
},
|
},
|
||||||
|
|
||||||
|
mounted() {
|
||||||
|
if (this.autosize && this.type === 'textarea') {
|
||||||
|
const el = this.$refs.textareaElement;
|
||||||
|
el.style.height = el.scrollHeight + 'px';
|
||||||
|
el.style.overflowY = 'hidden';
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
watch: {
|
watch: {
|
||||||
value(val) {
|
value(val) {
|
||||||
this.currentValue = val;
|
this.currentValue = val;
|
||||||
@ -102,7 +110,7 @@ export default {
|
|||||||
|
|
||||||
currentValue(val) {
|
currentValue(val) {
|
||||||
if (this.autosize && this.type === 'textarea') {
|
if (this.autosize && this.type === 'textarea') {
|
||||||
this.$nextTick(() => this.sizeAdjust());
|
this.$nextTick(this.sizeAdjust);
|
||||||
}
|
}
|
||||||
this.$emit('input', val);
|
this.$emit('input', val);
|
||||||
}
|
}
|
||||||
@ -125,12 +133,9 @@ export default {
|
|||||||
},
|
},
|
||||||
|
|
||||||
sizeAdjust() {
|
sizeAdjust() {
|
||||||
const textareaElement = this.$refs.textareaElement;
|
const el = this.$refs.textareaElement;
|
||||||
const textAreaDiff = (parseInt(textareaElement.style.paddingBottom, 10) +
|
el.style.height = 'auto';
|
||||||
parseInt(textareaElement.style.paddingTop, 10)) || 0;
|
el.style.height = el.scrollHeight + 'px';
|
||||||
// 需要先设为0, 才可以让scrollHeight正确计算。
|
|
||||||
textareaElement.style.height = 0 + 'px';
|
|
||||||
textareaElement.style.height = (textareaElement.scrollHeight - textAreaDiff) + 'px';
|
|
||||||
},
|
},
|
||||||
|
|
||||||
handleInputFocus() {
|
handleInputFocus() {
|
||||||
|
@ -4,16 +4,12 @@ import PopupContext from './popup-context';
|
|||||||
|
|
||||||
export default {
|
export default {
|
||||||
props: {
|
props: {
|
||||||
/**
|
// popup当前显示状态
|
||||||
* popup当前显示状态
|
|
||||||
*/
|
|
||||||
value: {
|
value: {
|
||||||
type: Boolean,
|
type: Boolean,
|
||||||
default: false
|
default: false
|
||||||
},
|
},
|
||||||
/**
|
// 是否显示遮罩层
|
||||||
* 是否显示遮罩层
|
|
||||||
*/
|
|
||||||
overlay: {
|
overlay: {
|
||||||
type: Boolean,
|
type: Boolean,
|
||||||
default: false
|
default: false
|
||||||
@ -26,13 +22,16 @@ export default {
|
|||||||
default: false
|
default: false
|
||||||
},
|
},
|
||||||
zIndex: [String, Number],
|
zIndex: [String, Number],
|
||||||
/**
|
// popup滚动时是否body内容也滚动
|
||||||
* popup滚动时是否body内容也滚动
|
// 默认为不滚动
|
||||||
* 默认为不滚动
|
|
||||||
*/
|
|
||||||
lockOnScroll: {
|
lockOnScroll: {
|
||||||
type: Boolean,
|
type: Boolean,
|
||||||
default: true
|
default: true
|
||||||
|
},
|
||||||
|
// 防止滚动穿透
|
||||||
|
preventScroll: {
|
||||||
|
type: Boolean,
|
||||||
|
default: false
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -137,8 +136,11 @@ export default {
|
|||||||
this.$el.style.zIndex = PopupManager.nextZIndex();
|
this.$el.style.zIndex = PopupManager.nextZIndex();
|
||||||
this.opened = true;
|
this.opened = true;
|
||||||
this.opening = false;
|
this.opening = false;
|
||||||
document.addEventListener('touchstart', this.recordPosition, false);
|
|
||||||
document.addEventListener('touchmove', this.watchTouchMove, false);
|
if (this.preventScroll) {
|
||||||
|
document.addEventListener('touchstart', this.recordPosition, false);
|
||||||
|
document.addEventListener('touchmove', this.watchTouchMove, false);
|
||||||
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -167,8 +169,11 @@ export default {
|
|||||||
doAfterClose() {
|
doAfterClose() {
|
||||||
this.closing = false;
|
this.closing = false;
|
||||||
PopupManager.closeModal(this._popupId);
|
PopupManager.closeModal(this._popupId);
|
||||||
document.removeEventListener('touchstart', this.recordPosition, false);
|
|
||||||
document.removeEventListener('touchmove', this.watchTouchMove, false);
|
if (this.preventScroll) {
|
||||||
|
document.removeEventListener('touchstart', this.recordPosition, false);
|
||||||
|
document.removeEventListener('touchmove', this.watchTouchMove, false);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user