vue一个页面多个视频,实现单个播放

vue一个页面多个视频,实现单个播放

html

<div id="app" style="width: 992px;">
    <div  v-for=" i in list" style="margin:auto;width: 992px;" >//通过后台传过来的list
        <div style="width: 544px;margin: auto">
        <video :src="videoSrc"  controls  :id="i" class="video" style=""  @play="playVideo(i)" @ended="end(i)" >您的浏览器不支持 video 视屏播放。</video>//对应得各个时件
        paly播放,ended结束
        </div>
    </div>
</div>
</div>

js

<script type="">




    var vm = new Vue({
        el:"#app",
        data:function () {
            return{
                list:[1,2,3],//假设这个是后台传过来的数据
                videoSrc: 'test.mp4',
                ind:''
            }

        },

        mounted:function () {//渲染完成执行
            var self=this

        },
        methods: {

//            一个视频播放完后的操作,我的业务是转跳到对应得页面,id,我用后台数据库里的id,并赋值给前端id,这样便不会重复id
            end: function (i) {
                var self=this
                console.log(i)
                window.location.href = "index?id=" + i;
            },

//            这个是播放事件,单页面有一个视频在播放,点击另一个就结束。
            playVideo: function (j) {
                var self=this
//                ind是记录上次id,这次传过来的值如果不等上次的,肯定不等
                if(j!= self.ind){
//                    通过id获取,是获取上次的id,也就是正在播放的id
                    var video1=document.getElementById(self.ind);
                    console.log(j)
//                    第一个视频vido一定为空,所以要判断,否则程序出错
                    if(video1==null){
                        console.log("没有存在上次播放")
                    }
                    else{
//                        暂停上次的播放,开始这次的播放
                        video1.pause();
                    }
//                    记录这次的id,为下次做判断
                    self.ind =j

                }


            }







        }

    })


</script>

由于不是前端,什么插件啊之类的,都不会用,所以就自己乱写一下,不对还希望指出,谢谢

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
Vue中,可以使用Vue.extend()方法来复制单个数据生成多个相同的数据。具体的步骤如下: 1. 首先,我们需要定义一个Vue实例或组件,并使用data选项来声明一个单个数据。例如,我们声明了一个名为originalData的单个数据,其值为"Hello, Vue!"。 2. 接下来,我们可以使用Vue.extend()方法来复制单个数据。这个方法接收一个对象作为参数,其中包含我们要复制的数据。我们可以设置复制的个数,也可以设置每个复制品的其他不同的属性。例如,我们可以复制originalData数据5次,并为每一个复制品设置一个不同的id属性。 3. 使用Vue.extend()方法生成的多个数据是独立的,它们具有相同的初始值。我们可以在Vue实例或组件中通过访问这些数据的属性来使用它们。例如,我们可以在模板中使用v-for指令来遍历这些复制的数据,并将它们展示在页面上。 下面是一个示例代码: ```javascript <template> <div> <ul> <li v-for="item in copiedData" :key="item.id">{{ item.content }}</li> </ul> </div> </template> <script> export default { data() { return { originalData: "Hello, Vue!", copiedData: [] }; }, mounted() { const copiedItems = []; for (let i = 0; i < 5; i++) { const copiedItem = Vue.extend({ data() { return { id: i, content: this.originalData }; } }); copiedItems.push(new copiedItem().$mount()); } this.copiedData = copiedItems; } }; </script> ``` 在上述代码中,我们通过Vue.extend()方法复制了5个具有不同id属性的数据对象。然后,我们在mounted生命周期钩子中将这些复制的数据对象添加到了copiedData数组中。 最后,在模板中使用v-for指令遍历copiedData数组,并展示每个复制品的内容。 这样,我们就可以通过复制单个数据来生成多个数据,并在页面上展示它们。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Tiny(泰尼)

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

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

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

打赏作者

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

抵扣说明:

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

余额充值