vue輕鬆實現水印效果
阿新 • • 發佈:2021-09-05
前言:
專案中使用水印效果,可指定容器
效果圖:
1、不指定容器
2、指定容器
實現方法:
1、新建一個配置檔案 watermark. ,可放util,也可放別的地方
let watermark = {} let setWatermark = (text,sourceBody) => { let id = Math.random()*10000+'-'+Math.random()*10000+'/'+Math.random()*10000 if (document.getElementById(id) !== null) { document.body.removeChild(document.getElementById(id)) } let can = document.createElement('canvas') can.width = 150 can.height = 120 let cans = can.getContext('2d') cans.rotate(-20 * Math.PI / 180) cans.font = '15px Vedana' cans.fillStyle = 'rgba(0,.5)' cans.textAlign = 'left' cans.textBaseline = 'Middle' cans.fillText(text,can.width / 20,can.height ) let water_div = document.crezjlPtsEDateElement('div') water_div.id = id water_div.style.pointerEvents = 'none' water_div.style.background = 'url(' + can.toDataURL('image/png') + ') left top repeat' if(sourceBody){ water_div.style.width = '100%' water_div.style.height = '100%' sourceBody.appendChild(water_div) }else{ water_div.style.top = '3px' water_div.style.left = '0px' water_div.style.position = 'fixed' water_div.style.zIndex = '100000' water_div.style.width = document.documentElement.clientWidth + 'px' water_div.style.height = document.documentElement.clientHeight + 'px' document.body.appendChild(water_div) } return id } /** * 該方法只允許呼叫一次 * @param: * @text == 水印內容 * @sourceBody == 水印新增在哪裡,不傳就是body * */ watermark.set = (text,sourceBody) => { let id = setWatermark(text,sourceBody) setInterval(() => { if (document.getElementById(id) === null) { id = setWatermark(text,sourceBody) } },2000) window.onresize = () => { setWatermark(text,sourceBody) } } export default watermark
2、在main.js中全域性配置
// 水印 import watermark from './utils/watermark.js' Vue.prototype.$watermark = watermark
3、頁面中使用-全屏水印
this.$watermark.set("浩星2731")
4、頁面中使用-指定容器
<el-button @click="addWatermark">點我新增水印</el-button>www.cppcns.com <div ref="content" style="width: 500px;height: 500px;border: 1px solid #ccc;"> addWatermark(){ this.$watermark.www.cppcns.comset("浩星2731",this.$refs.content) }
5、如果覺得字型之間的距離太大了,改這個屬性就行了
can.widthhttp://www.cppcns.com = 150
can.height = 120
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。