好的, 先看下效果图
简单说下实现思路:
!!!通过进入全屏触发的事件里面写以下逻辑:
使用画布创建一个背景图片,
创建一个div设置背景图片
追加到和video同级的父盒子
这边需要注意的是: 必须追加到和video同级的父盒子里哦, 不然显示会有问题, 切记切记切记
好嘞! 接下来上代码
var container = document.getElementById('mse') // 注意水印盒子必须和video同级
var containerWidth = container.offsetWidth // 获取父容器宽
var containerHeight = container.offsetHeight // 获取父容器高
container.style.position = 'relative' // 设置布局为相对布局
// 创建canvas元素(先制作一块背景图)
const can = document.createElement('canvas')
can.width = 390 // 设置每一块的宽度
can.height = 200 // 高度
const cans = can.getContext('2d') // 获取canvas画布
cans.rotate(-20 * Math.PI / 180) // 逆时针旋转π/9
cans.font = '20px Vedana' // 设置字体
cans.fillStyle = 'rgba(200, 200, 200, 0.30)' // 设置字体的颜色
cans.textAlign = 'left' // 文本对齐方式
cans.textBaseline = 'Middle' // 文本基线
cans.fillText(that.$store.state.user.usrSteUsrId, 0, 4 * can.height / 5) // 绘制文字
// 创建一个div元素
const div = document.createElement('div')
div.id = 'vieoWatermark' // 设置id
div.style.pointerEvents = 'none' // 取消所有事件
div.style.top = '0px'
div.style.left = '0px'
div.style.position = 'fixed'
div.style.zIndex = '100000'
div.style.width = containerWidth + 'px'
div.style.height = containerHeight + 'px'
div.style.background = 'url(' + can.toDataURL('image/png') + ') left top repeat'
container.appendChild(div) // 追加到页面