1. 程式人生 > >vue 視訊播放列表 動態建立元件

vue 視訊播放列表 動態建立元件

開發十年,就只剩下這套架構體系了! >>>   

當點選播放時 整個頁面只例項化一個 video 播放視訊   使用vue.extend 動態建立

 

建立外掛

winplay.vue

<template>
    <div class="winplay">
         <button @click.stop="onClick">點選</button>
    </div>
</template>

<script>
    export default {
        name: "winplay",

        data(){
            return {

            }
        },
        mounted(){
          console.log("winplay"+this.url)
        },
        methods:{
            play(url){
                console.log(url)
            },
            onClick(){
                console.log("click");
            }
        }
    }
</script>

<style scoped>
.winplay{
    background: #ccc;
    z-index: 1000;
}
</style>

play.js

import winplay from './winplay'
import Vue from 'vue'
let winplayComponent = Vue.extend(winplay); //將元件加入構造器

var vm=null;
export default {
    install(Vue) {
        Object.defineProperty(Vue.prototype, "$showPlay", {
            get() {
                return function (od, url) {
                    if(vm){
                        vm.$el.remove() //移除節點


                    }
                    vm = new winplayComponent({
                        //     data() {  data也可以直接覆蓋元件的data
                        //         return {
                        //             url:url
                        //         }
                        //     }
                        }
                    ).$mount(document.createElement('div'));
                    vm.play(url); //傳遞url
                    console.log(vm);
                    od.appendChild(vm.$el)
                }
            },
        })
    }
}

在main.js掛載外掛

import Vue from 'vue'
import App from './App.vue'
import 'flex.css'
import play from  './plugin/play.js'
Vue.config.productionTip = false
Vue.use(play)

new Vue({
  render: h => h(App),
}).$mount('#app')

在頁面使用播放

<template>
  <div class="index">
        <div class="moves-list" flex="dir:top">
            <div class="moves-list-item" flex="dir:top" v-for="(i,t) of 100">
                <div class="moves-list-item-cover" @click="paly(t)" ref="move" style="background: url('/jq.jpg') no-repeat center;background-size:cover;">
                </div>
                <div class="moves-list-item-option" flex="dir:left">
                    <div class="moves-list-item-option-title" flex-box="2" flex="cross:center ">
                            <p>驚奇隊長 高清 1080P 線上播放</p>
                    </div>
                    <div class="moves-list-item-option-ico" flex-box="1"  flex="cross:center main:right">
                         <a href="#">分享</a>
                    </div>
                </div>
            </div>

        </div>
  </div>
</template>

<script>
export default {
  name: 'Index',
    props: {
    msg: String
  },
    data(){
      return{

      }
    },
    methods:{
        paly(i){
            
          this.$showPlay(this.$refs.move[i],i); //動態呼叫視訊播放元件
        }
    }
}
</script>

在頁面只會有一個播放video 

相關推薦

vue 視訊播放列表 動態建立元件

開發十年,就只剩下這套架構體系了! >>>   

Android 仿抖音仿美拍視訊播放列表

首先實現方式是 1.RecyclerView                       2.ViewPager 我這裡實現的方式是用的RecyclerView,歡迎大家共同探討

Angular4+使用指令(Directive)動態建立元件

需求:滑鼠右擊某一區域顯示活動導航類似這種。 分析:結合Angular的使用經驗,採用指令來動態建立元件會比較好實現這個需求。首先要禁止網頁滑鼠右擊時的原生事件,同時動態建立一個新元件,這個元件建立的位置要隨著滑鼠的移動不斷改變,最後要銷燬這個元件。 實現:ng g di

angular學習總結十——動態建立元件並實現互動一

ps:看了好多篇動態元件的部落格,坑啊,只是放進去一個靜態元件,並未加上Input,Output appModule import { BrowserModule } from '@angular/platform-browser'; import

vue-music 關於playlist (底部播放列表組件)

export clas comm seq 列表功能 type 模式 -- sta 建立playlist.vue 組件,在player.vue 組件中引用,點擊迷你播放器的播放列表按鈕由下至上彈出這個層,所以在player.vue 播放器組件中引用 在playlist.vu

Vue載入元件動態載入元件的幾種方式

https://cn.vuejs.org/v2/guide/components.html https://cn.vuejs.org/v2/guide/components-dynamic-async.html 上述內容可以通過 Vue 的 <component> 元素加一

C# Panel滾動條滾動後,動態建立的控制元件下移的問題

C#做了一個從伺服器獲取資料的功能,動態建立控制元件顯示在Panel中,控制元件多的時候比Panel還高,滑動滾動條檢視中間資料,此時獲取到資料,,動態新增時,發現控制元件全部下移了,上面空出好大一部分空白。 除錯發現,即使控制元件的Location設定為new Point(0, 0);上面也空

元素的建立三種方式案例—動態建立列表

要點: 1.通過document.write()建立,如果是頁面載入完成再執行這種方式建立元素物件,會將原來頁面上的內容全部清除掉。如果在頁面載入的過程中,則不會出現這種狀況,但是也沒有什麼意義 2.通過.innerHTML會重新賦值,如果原來節點有內容會被層疊掉,為了建立有文字內容元素時候

Linux 下如何建立 M3U 播放列表

簡介:關於如何在Linux終端中根據亂序檔案建立M3U播放列表實現循序播放的小建議。 我是外國電視連續劇的粉絲,這些連續劇不太容易從 DVD 或像 Netflix 這樣的流媒體上獲得。好在,您可以在 YouTube 上找到一些內容並從 YouTube 下載。 現在出現了一個問題。你的檔案可能不是按順序儲存

vue常用建立元件幾種方式總結

最近一週需要使用vue開發一個谷歌擴充套件外掛,但是又不能在vue-cli腳手架中開發,所以只能單獨引入vue.js整個包進行指令碼植入開發。引入vue.js就代表著不能用import、require之類的引入單檔案元件檔案,只能在檔案中開發,或者多個js檔案分先後順序植入開發,然後就出現了一個尷尬

android形狀屬性、鎖屏密碼、動態模糊、kotlin專案、抖音動畫、記賬app、視訊播放器等原始碼

Android精選原始碼 直觀瞭解Android的“形狀”屬性如何影響Drawable的外觀。 一個靈活的視訊播放器, 可替換播放器核心。 android鎖屏輸入密碼功能原始碼 背景動態模糊方案,元件實現類對bitmap模糊處理的各類算... 簡單天氣,帶

vue動態新增元件

效果: 程式碼: <template>   <div>     <div v-for="(item,index) in lst">    

JiaoZiVideoPlayer 6.4.1 釋出,視訊播放控制元件

JiaoZiVideoPlayer v6.4.1 已釋出,更新如下: 修改了 ui 優化了體驗 新增韓語支援 JiaoZiVideoPlayer 是一款 Android 視訊播放控制元件,特性如下: 可以完全自定義UI和任何功能 一行程式碼切換播放引擎,支援的視訊格

列表檢視控制元件建立

列表檢視控制元件的建立        MFC同樣為列表檢視控制元件的操作提供了CListCtrl類。        如果我們不想在對話方塊模板中直接拖入

動態建立控制元件的序列化與反序列化

 public Button   Btn = new Button(); //序列化儲存 savedButton = XamlWriter.Save(Btn); //反序列化 還原 if (!string.IsNullOrEmpty(savedButton

h5+js視訊播放器控制元件

   由於h5相容性問題,很多瀏覽器對於插入視訊播放的支援都大不相同。火狐支援的比較完整,谷歌則支援的不是很好,很多功能都不能實現,這就需要我們去自制一個播放介面,去相容不同的瀏覽器。    只插入一個視訊時,瀏覽器中只會出現這樣一個畫面。只有單擊右鍵才可以彈出選單欄顯示播放或者顯示控制元件;   下

vue動態載入元件+開發者模式+JS引數值傳遞和引用傳遞

今天寫vue裡面通過介面反參動態載入元件時候 跟著同學。。。學習到了 一、先說說vue 內建元件 component 的用法 component元件可以來專門用來進行元件的切換,使用is來繫結你的元件名,本次系統寫的比較簡單。。。 此處::is='元件名'可以直接條用元件。 因為全頁面有十個元件載入,所

一個強悍而優美的Android視訊播放器控制元件JieCaoVideoPlayer

本文為轉載文章,原文作者:魑魅魍魎9527   原文連結:https://blog.csdn.net/qq_28934205/article/details/52944383?utm_source=copy  效果圖:   視訊可以全屏 顯示 旋轉螢幕也可以  xml程

動態建立多個Button控制元件

實現效果:    知識運用:   Controls屬性  //獲取包含在窗體內的控制元件的集合     public Control.ControlCollection Controls { get; }   Controls集合的的Add方法  //將指定的控制元件新增到窗體控制元件的集合中  

Vue元件--建立元件之利用template元素

程式碼: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <script type="tex