使用vant制作一个视频播放的功能

使用vant制作一个视频播放的功能

简介:本文是一个用结合vant制作的一个视频播放功能的页面。

页面制作

效果展示
在这里插入图片描述

在这里插入图片描述

<template>
  <div class="video-page">
    <van-nav-bar
      title="视频"
      left-text="返回"
      left-arrow
      @click-left="onClickLeft"
    />
    <div class="video-container">
      <video controls :src="src"></video>
    </div>
  </div>
</template>

<script>
import axios from "axios";

export default {
  data() {
    return {
      id: "",
      src: null,
    };
  },
  methods: {
    onClickLeft() {
      this.$router.push("/point");
    },
  },
  mounted() {
    console.log("id:" + this.$route.query.id);
    this.id = this.$route.query.id;
    axios
      .get(`http://localhost:8083/video/${this.id}`)
      .then((res) => {
        this.src = res.data.data.src;
      })
      .catch((error) => {
        console.log(error);
      });
  },
};
</script>

<style scoped>
.video-page {
  height: 100%;
}

.video-container {
  display: flex;
  justify-content: center;
  align-items: center;
  height: calc(100% - 44px);
}

video {
  max-width: 100%;
  outline: none;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15);
  border-radius: 8px;
}
</style>

  • 7
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
好的,以下是一个基于Vant组件的带有搜索功能的选择器示例代码: ``` <template> <div> <van-search v-model="search" placeholder="搜索" /> <van-picker v-model="selected" :columns="filteredOptions" @change="onPickerChange" :title="title" :loading="loading" :show-toolbar="false" > <template #columns="{ column, index }"> {{ column.text }} </template> </van-picker> </div> </template> <script> export default { data() { return { selected: [], // 选中的值 options: [ // 所有选项 { text: '选项1', value: 'option1' }, { text: '选项2', value: 'option2' }, { text: '选项3', value: 'option3' }, { text: '选项4', value: 'option4' }, { text: '选项5', value: 'option5' } ], search: '', // 搜索框输入的值 filteredOptions: [], // 根据搜索框过滤后的选项 loading: false // 是否在加载过程中 } }, computed: { title() { return this.loading ? '加载中...' : '请选择' } }, methods: { onPickerChange(value) { this.selected = value }, filterOptions() { this.loading = true setTimeout(() => { this.filteredOptions = this.options.filter(option => option.text.includes(this.search) ) this.loading = false }, 500) } }, watch: { search() { this.filterOptions() } } } </script> ``` 在上述代码中,我们使用Vant组件库的Search组件和Picker组件。当用户在搜索框中输入内容时,我们根据用户输入过滤选项,并在Picker组件中显示过滤后的选项。在过滤选项的过程中,我们使用了loading属性来显示加载状态,防止用户过快地输入导致滞后。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

极客李华

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值