1.背景
使用textarea如果内容超过了设定高度,无法滚动
2.原因
触发textarea滑动的时候,产生了冒泡事件
3.解决方法
(1)阻止冒泡
//demo.vue
//如果不用适配大小,可以直接用rows限定行数,不用写高度
<div style="height: 50vh;overflow-y: auto;">
<van-field
v-model="content"
rows="1"
autosize
label=""
type="textarea"
/>
</div>
<script setup lang="ts">
const content = ref('aaa')
onMounted(() => {
window.addEventListener('touchmove', stopTextArea, true)
})
onUnmounted(() => {
window.removeEventListener('touchmove', stopTextArea)
})
</script>
(2) 仅展示,可以不用textarea
<div class="list" v-html="content"></div>
<script setup lang="ts">
const content = ref('aaa')
</script>
<style lang="less">
.list {
height: 50vh;
overflow-y: auto;
overflow-x: hidden;
color: #c8c9cc;
word-break: break-word;
}