国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

vue video(視頻)禁止用戶拖動進度條,自定義組件實現,包含視頻音量、暫停、播放、全屏、退出全屏 、播放進度,話不多說直接上代碼。

這篇具有很好參考價值的文章主要介紹了vue video(視頻)禁止用戶拖動進度條,自定義組件實現,包含視頻音量、暫停、播放、全屏、退出全屏 、播放進度,話不多說直接上代碼。。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

?注意項目中本組件使用到了elementUI所以要確保項目中安裝了

videoFree.vue

<template>
  <div ref="videoCons" style="width:100%;height:100%;" class="videCOns" @mousemove="move">
    <video @loadeddata="loadeddata" ref="videoEL" @timeupdate="upDate" :src="src" style="width:100%;height:100%;"></video>
    <div class="controsCon" :style="{opacity:opacity}">
        <div class="playBtn" @click="play">
            <img v-if="!isPlay" style="width: 30rem;height: 30rem;" src="https://xinyu22.oss-cn-beijing.aliyuncs.com/uploads/20230620/511d3a609cf5dd544e2b1142d26bcfdd.png">
            <img v-if="isPlay" style="width: 30rem;height: 30rem;" src="https://xinyu22.oss-cn-beijing.aliyuncs.com/uploads/20230620/e307ef78f36d81bceb192a010c3f403b.png">
        </div>
        <div class="volum">
            <img style="height:30rem;width: 30rem;" src="https://xinyu22.oss-cn-beijing.aliyuncs.com/uploads/20230620/fd1629b980b28212a283f2f462d69427.png">
            <div class="vCon">
                <el-slider @input="volum" v-model="volums" vertical style="height:100%;"></el-slider>
            </div>
        </div>
        <div class="allCon" @click="scaleEl">
            <img v-if="!full" style="width: 30rem;height: 30rem;" src="https://xinyu22.oss-cn-beijing.aliyuncs.com/uploads/20230620/8c191f53af505c6623b5c1a397eec42e.png">
            <img v-if="full" style="width: 30rem;height: 30rem;" src="https://xinyu22.oss-cn-beijing.aliyuncs.com/uploads/20230620/fe7d50559bbcb656e1316a0297aa1ed8.png">
        </div>
        <div class="jdt">
            <!-- v-if="!isNaN(parseInt(percent))" -->
            <el-progress
            :percentage="percent" 
            :show-text="false"></el-progress>
        </div>
        <div style="width: 100%;height: 20rem;display: flex;align-items: center;justify-content: space-between;color: #ccc;font-size: 14rem;padding:0 60rem;box-sizing: border-box;">
            <span>{{ curJd }}</span>
            <span>{{ allTime }}</span>
        </div>
    </div>
  </div>
</template>

js部分:因此為nuxtjs開發(fā)的項目,代碼中this.$fmtS是一個格式化時間的工具類代碼后面有

<script>
export default {
    props:{
        src:{
            type:String,
            default:''
        }
    },
    data(){
        return{
            video:null,
            isPlay:false,
            current:0,
            duration:0,
            volums:30,
            prefVom:0.3,
            percent:0,
            opacity:0,
            full:false,
            curJd:'00:00:00',
            allTime:'00:00:00',
            timer:null
        }
    },
    mounted(){
        this.video = this.$refs.videoEL
        this.video.volume = this.prefVom
    },
    beforeDestroy(){
        this.video.pause()
    },
    methods:{
        loadeddata(){
            const dur = this.video.duration
            this.duration = dur
            this.allTime = this.$fmtS(this.duration)
        },
        move(){
            this.opacity = 1
            this.timer && clearTimeout(this.timer)
            this.timer = setTimeout(()=>{
                this.opacity = 0
            },4000)
           
        },
        scaleEl(){
            const el = this.$refs.videoCons
            const isfull =  document.fullscreenElement ||
	                        document.msFullscreenElement ||
                            document.mozFullScreenElement ||
                            document.webkitFullscreenElement || false;
            if(!isfull){
                this.full = true
                if (el.requestFullscreen) {
                    el.requestFullscreen();
                } else if (el.mozRequestFullScreen){
                    el.mozRequestFullScreen();
                } else if (el.webkitRequestFullscreen){
                    el.webkitRequestFullscreen();
                } else if (el.msRequestFullscreen){
                    el.msRequestFullscreen();
                }
            }else{
                this.full = false
                if(document.exitFullScreen) {
                    document.exitFullScreen();
                } else if(document.mozCancelFullScreen) {
                    document.mozCancelFullScreen();
                } else if(document.webkitExitFullscreen) {
                    document.webkitExitFullscreen();
                } else if(document.msExitFullscreen) {
                    document.msExitFullscreen();
                }
            } 
        },
        upDate(){
            const cur = this.video.currentTime
            const dur = this.video.duration
            this.percent = (cur / dur) * 100
            this.curJd = this.$fmtS(cur)
        },
        play(){
            this.isPlay = !this.isPlay
            this.isPlay?this.video.play():this.video.pause()
            console.log(this.isPlay)
        },
        volum(e){
            this.volums = e
            this.prefVom = e / 100
            this.video.volume = this.prefVom
            console.log(this.video.volume)
        }
    }
}
</script>

css部分:文章來源地址http://www.zghlxwxcb.cn/news/detail-707446.html

<style scoped>
.controsCon{
    position: absolute;
    width: 100%;
    bottom:0;
    left: 0;
    display: flex;
    align-items: center;
    flex-wrap: wrap;
}
.playBtn{
    height: 30px;
    width:30px;
    display: flex;
    align-items: center;
    cursor: pointer;
    margin-right:30px;
    position: relative;
    margin-left: 60rem;
}
.playIcon{
    font-size: 30px;
}
.volum{
    height: 30px;
    width:30px;
    display: flex;
    align-items: center;
    cursor: pointer;
    margin-right:30px;
    position: relative;
}
.vCon{
    position: absolute;
    top:-150px;
    left: 0;
    height: 150px;
    width: 30px;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
}
.volum:hover .vCon{
    opacity: 1;
}
.vCon>>> .el-slider__runway{
    background-color: #ccc;
}
.jdt{
    height: 10px;
    width: 100%;
    padding:0 60rem;
    box-sizing: border-box;
    margin:0 auto;
    margin-top:10rem;
}
.allCon{
    height: 30rem;
    width: 40rem;
    position: absolute;
    top:0;
    right: 60rem;
    cursor: pointer;
}
</style>

到了這里,關于vue video(視頻)禁止用戶拖動進度條,自定義組件實現,包含視頻音量、暫停、播放、全屏、退出全屏 、播放進度,話不多說直接上代碼。的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • js禁止用戶通過video標簽自帶的進度條進行快進(包括鍵盤方向鍵快進),允許快退,下次播放時從上次觀看時長繼續(xù)播放。

    今天遇到一個需求,用戶觀看視頻時不允許快進(包括鍵盤方向鍵的默認事件),允許快退,并且下次進入時從上次播放的時長繼續(xù)播放。 以下是實現代碼 ??看網上好多說用css來實現或者干掉video標簽的controls,通過自己編寫樣式以及功能實現控制條播放、全屏等等,看了

    2024年02月12日
    瀏覽(19)
  • 前端Vue自定義輪播圖視頻播放組件 仿京東商品詳情輪播圖視頻Video播放效果 可圖片預覽

    前端Vue自定義輪播圖視頻播放組件 仿京東商品詳情輪播圖視頻Video播放效果 可圖片預覽

    隨著技術的發(fā)展,開發(fā)的復雜度也越來越高,傳統(tǒng)開發(fā)方式將一個系統(tǒng)做成了整塊應用,經常出現的情況就是一個小小的改動或者一個小功能的增加可能會引起整體邏輯的修改,造成牽一發(fā)而動全身。通過組件化開發(fā),可以有效實現單獨開發(fā),單獨維護,而且他們之間可以隨

    2024年02月15日
    瀏覽(27)
  • 在vue項目中使用video.js實現視頻播放和視頻進度條打點

    引入videojs插件 注意: controls 如果不是true的話,不會顯示播放按鈕 播放按鈕默認在 左上角 ,是作者認為會遮擋內容考慮的,不過這個是可以根據參數修改的,只需要給video標簽加一個class( vjs-big-play-centered )就可以了。 要實現的功能是視頻的進度條上面有一些小點,然后

    2023年04月08日
    瀏覽(25)
  • 【vue3播放監(jiān)控視頻的組件video】

    @[組件解決視頻不能播放問題],一個組件直接搞定!?。?! 子組件 在父組件中直接引入即可 1.引入 2.使用

    2024年04月12日
    瀏覽(15)
  • vue項目element-ui上傳組件自定義方法無法獲取進度

    原因:element-ui中的up-load組件使用時,若用自定義上傳http-request,會重新申明XMLHttpRequest,on-progress里的申明則被覆蓋,無法使用該鉤子,無法添加進度條 方案一:假進度條;寫個假進度條優(yōu)化用戶體驗,使用el-upload組件里on-change方法的status狀態(tài),配合定時器 ,以vue3為例 ,

    2024年02月15日
    瀏覽(24)
  • Vue-Html5-Video組件視頻緩存本地技術

    Vue.js本身并不提供將視頻緩存到本地的功能,但是可以通過使用HTML5的video標簽和瀏覽器提供的緩存機制來實現。 具體實現步驟如下: 1. 在Vue組件中使用video標簽來加載視頻,如下所示: ```html video ref=\\\"videoPlayer\\\" controls source :src=\\\"videoUrl\\\" type=\\\"video/mp4\\\" /video ``` 其中,videoUrl是視頻

    2024年02月16日
    瀏覽(21)
  • vue2 組件vue-video-player播放視頻,支持hls格式

    參考教程:https://juejin.cn/post/6939898078526881823 官方:https://github.com/surmon-china/videojs-player 安裝指令 安裝指令要注意帶上版本號,如果沒有會默認使用最新版,最新版僅支持vue3,因此會出問題。 HLSPlay.vue 自定義組件代碼 直接引用,如果組件配置了自動播放,則會自動播放。 更

    2024年02月11日
    瀏覽(16)
  • 解決mp4視頻無法拖動進度條的問題

    現象: 海康威視的監(jiān)控攝像頭保存的視頻,,mp4格式, 大小1G。用PotPlayer播放器進行播放, 不拖動進度條的話可以正常播放, 但拖動進度條后, 視頻無法正常播放, 在 PotPlayer 中的表現就是只有進度條在走,視頻畫面停留在拖動前的畫面。 PS: 同時保存的有多個監(jiān)控視頻,

    2024年02月03日
    瀏覽(131)
  • 【OpenCV+Qt】實現簡易視頻播放器——支持進度條拖動

    【OpenCV+Qt】實現簡易視頻播放器——支持進度條拖動

    OpenCV實現視頻播放器,其思路大致就是在線程中使用OpenCV中的VideoCapture循環(huán)讀取本地視頻的每一幀Mat,然后發(fā)送到界面轉換成QImage進行顯示,而進度條拖動則用到了VideoCapture中的set函數,進度條則是使用Qslider;并且通過自定義新的進度條類實現點擊跳轉功能; 效果: 1.進行

    2023年04月08日
    瀏覽(24)
  • 通過加速或跳過網頁視頻解決進度條無法拖動問題

    加速網頁視頻與跳過網頁視頻 1、加速網頁視頻 (1)F12打開開發(fā)者工具,然后Ctrl+Shift+C檢查video元素 檢查video元素 (2)控制臺輸入腳本 function accelerate() { let video = document.querySelector(‘video’); function play() { video.playbackRate = 15; // 加速至原速的15倍 video.play(); } setInterval(play, 100

    2024年02月03日
    瀏覽(61)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包