在vant中使用时间选择器和popup弹出层的操作
#代码知识 发布时间: 2026-01-12
我就废话不多说了,大家还是直接看代码吧~
<template>
<div class="page">
<van-cell-group>
<van-cell
title="选择日期"
:value="datetime"
arrow
@click="showDatePicker = !showDatePicker"
></van-cell>
</van-cell-group>
<van-popup v-model="showDatePicker" position="bottom" :style="{ height: '40%' }">
<van-datetime-picker
v-model="currentDate"
@confirm="
showDatePicker = false;
onchangDate1();
"
@cancel="showDatePicker = false"
title="时间选择"
type="date"
/>
</van-popup>
</div>
<template>
<script>
import { Cell, CellGroup, DatetimePicker, Popup } from "vant";
import Vue from "vue";
export default {
//组件 Q2组件需要正确注册,才能被页面识别
components: {
[Cell.name]: Cell,
[CellGroup.name]: CellGroup,
[DatetimePicker.name]: DatetimePicker,
[Popup.name]: Popup
},
//数据层
data() {
return {
datetime: "",
currentDate: "", //初始化当前时间
showDatePicker: false, //判断popup弹出层是否显示,false不显示
};
},
created() {
this.currentDate = new Date(); //给当前时间赋值
this.datetime = this.common.dateToString(this.currentDate); //给单元格显示当前时间的变量赋值
},
mounted() {},
methods: {
onchangDate1() {
//currentDate值就是选择的时间,把改变后的值赋值给单元格变量显示
this.datetime = this.common.dateToString(this.currentDate);
}
}
};
</script>
补充知识:vant的popup、Datetimepicker控件滚动穿透
今天一边改bug一边测试发现,vant的popup跟DatetimePicker会出现滚动穿透。
解决办法:使用preventDefault阻止body的touchmove事件。
方法1
方法2
在全局注册v-roll指令,结合timeDatePicker使用(如第二图)。bodyVisible初始状态为false,在弹层打开时改变,弹层点击确认跟取消时也需要改变!
解决办法源于另一个作者的,附上对方的文章链接(他用的是Mint-ui,但是框架这种东西,大同小异吧,东西都差不多,遇到的问题,很多解决办法都可以相通)
以上这篇在vant中使用时间选择器和popup弹出层的操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
代码知识SEO上一篇 : Java volatile如何实现禁止指令重排
下一篇 : 基于js实现的图片拖拽排序源码实例
-
SEO外包最佳选择国内专业的白帽SEO机构,熟知搜索算法,各行业企业站优化策略!
SEO公司
-
可定制SEO优化套餐基于整站优化与品牌搜索展现,定制个性化营销推广方案!
SEO套餐
-
SEO入门教程多年积累SEO实战案例,从新手到专家,从入门到精通,海量的SEO学习资料!
SEO教程
-
SEO项目资源高质量SEO项目资源,稀缺性外链,优质文案代写,老域名提权,云主机相关配置折扣!
SEO资源
-
SEO快速建站快速搭建符合搜索引擎友好的企业网站,协助备案,域名选择,服务器配置等相关服务!
SEO建站
-
快速搜索引擎优化建议没有任何SEO机构,可以承诺搜索引擎排名的具体位置,如果有,那么请您多注意!专业的SEO机构,一般情况下只能确保目标关键词进入到首页或者前几页,如果您有相关问题,欢迎咨询!