vant-popup在有滚动条的页面,弹出遮罩层时页面会滚动到顶部,求助怎么解决?

发布于 2022-09-12 02:48:37 字数 1283 浏览 23 评论 0

<template>
  <div class="page">

    <van-form validate-first
              @submit="onSubmit">
      <div class="box">
        顶部
      </div>
      <van-cell is-link
                @click="showPopup">展示弹出层</van-cell>
      <van-popup v-model="show"
                 closeable
                 position="bottom"
                 :style="{ height: '30%' }"
                 get-container="body">内容</van-popup>

      <!-- 提交 -->
      <div style="margin: 16px;">
        <van-button round
                    block
                    type="info"
                    native-type="submit">
          提交
        </van-button>
      </div>

    </van-form>

  </div>
</template>

<script>
import { Form, Popup, Button, Cell } from 'vant'

export default {
  components: {
    [Form.name]: Form,
    [Popup.name]: Popup,
    [Button.name]: Button,
    [Cell.name]: Cell
  },
  data () {
    return {
      show: false
    }
  },
  methods: {
    onSubmit (values) {
      console.log('submit', values)
    },
    showPopup () {
      this.show = true
    }
  }
}
</script>

<style lang="scss" scoped>
.box{
  height: 1500px;
}
</style>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

千笙结 2022-09-19 02:48:37
html,body,#app {
    height: 100%;
}
设置高度为100%时,超出一屏会出现这个问题
恍梦境° 2022-09-19 02:48:37

先获取当前滚动条位置 getScrollTop(), 隐藏遮罩的时候 window.scrollTo(0, getScrollTop())

getScrollTop () {
        let scrollTop = 0;
        if (document.documentElement && document.documentElement.scrollTop) {
            scrollTop = document.documentElement.scrollTop;
        } else if (document.body) {
            scrollTop = document.body.scrollTop;
        }
        return scrollTop;
    }
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文