vue+watermark-dom實(shí)現(xiàn)頁(yè)面水印效果(示例代碼)
前言
頁(yè)面水印大家應(yīng)該都不陌生,它可以用于驗(yàn)證數(shù)字媒體的來(lái)源和完整性,還可以用于版權(quán)保護(hù)和信息識(shí)別,這些信息可以在不影響媒體質(zhì)量的情況下嵌入,并在需要時(shí)進(jìn)行提取。本文將通過(guò) vue 結(jié)合 watermark-dom 庫(kù),教大家實(shí)現(xiàn)簡(jiǎn)單而有效的頁(yè)面水印效果。
watermark-dom
watermark.js 是基于 DOM 對(duì)象實(shí)現(xiàn)的 BS 系統(tǒng)的水印,確保系統(tǒng)保密性,安全性,降低數(shù)據(jù)泄密風(fēng)險(xiǎn),簡(jiǎn)單輕量,支持多屬性配置,動(dòng)態(tài)計(jì)算水印,水印防被刪(監(jiān)聽(tīng)水印組件元素刪除并重新添加,監(jiān)聽(tīng)改變水印的屬性并重新添加)。
特性
- 多屬性配置,簡(jiǎn)單易上手;
- 動(dòng)態(tài)計(jì)算水?。?/li>
- 水印防被刪(監(jiān)聽(tīng)水印組件元素刪除并重新添加,監(jiān)聽(tīng)改變水印的屬性并重新添加);
- 支持
2種導(dǎo)入使用:本地引用,npm引用; - 水印測(cè)試工具:
testTool工具; - 內(nèi)置
3種全局API方法:init(),load(),remove(); - 原理:
pointer-events事件穿透屬性,Shadow DOM(影子DOM),opacity等。
一、安裝
npm install watermark-dom
二、引入
import watermark from 'watermark-dom'
三、內(nèi)置方法
1. watermark.init(setting)
這個(gè)方法用于初始化水印,可以設(shè)置水印的樣式、內(nèi)容和位置等參數(shù)。
栗子
watermark.init({
watermark_txt: '測(cè)試水印',
watermark_color: 'gray',
watermark_fontsize: '24px',
})2. watermark.load(setting)
用于手動(dòng)加載水印。
栗子
const options = {
watermark_txt: '測(cè)試水印',
watermark_color: 'gray',
watermark_fontsize: '24px',
}
watermark.load(options)3. watermark.remove()
這個(gè)方法用于移除已加載的水印。
栗子
watermark.remove();
四、常用的屬性和配置
watermark_id: 'wm_div_id', //水印總體的id watermark_prefix: 'mask_div_id', //小水印的id前綴 watermark_txt:"測(cè)試水印", //水印的內(nèi)容 watermark_x:20, //水印起始位置x軸坐標(biāo) watermark_y:20, //水印起始位置Y軸坐標(biāo) watermark_rows:0, //水印行數(shù) watermark_cols:0, //水印列數(shù) watermark_x_space:100, //水印x軸間隔 watermark_y_space:50, //水印y軸間隔 watermark_font:'微軟雅黑', //水印字體 watermark_color:'black', //水印字體顏色 watermark_fontsize:'18px', //水印字體大小 watermark_alpha:0.15, //水印透明度,要求設(shè)置在大于等于0.005 watermark_width:100, //水印寬度 watermark_height:100, //水印長(zhǎng)度 watermark_angle:15, //水印傾斜度數(shù) watermark_parent_width:0, //水印的總體寬度(默認(rèn)值:body的scrollWidth和clientWidth的較大值) watermark_parent_height:0, //水印的總體高度(默認(rèn)值:body的scrollHeight和clientHeight的較大值) watermark_parent_node:null //水印插件掛載的父元素element,不輸入則默認(rèn)掛在body上
五、實(shí)例代碼
<template>
<div style="height:100vh"></div>
</template>
<script>
import watermark from 'watermark-dom'
export default {
mounted() {
const watermarkText = '測(cè)試水印內(nèi)容'
const options = {
watermark_txt: watermarkText,
watermark_color: 'gray',
watermark_fontsize: '14px',
watermark_alpha: 0.5,
watermark_angle: 15,
watermark_width: 100,
watermark_height: 20,
}
watermark.load(options)
},
}
</script>實(shí)現(xiàn)效果

六、非全屏展示
watermark_parent_node 屬性用于指定水印的父節(jié)點(diǎn),即確定水印應(yīng)該顯示在哪個(gè) DOM 元素的內(nèi)部。通過(guò)設(shè)置 watermark_parent_node 屬性,可以控制水印的顯示位置和范圍。例如,如果你想要將水印顯示在特定的 div 元素內(nèi)部,可以將該 div 元素作為 watermark_parent_node。這樣,水印將被限制在該 div 元素的范圍內(nèi)顯示。
<template>
<div class="box">
<div class="topBox"></div>
<div id="watermarkId" class="cenBox"></div>
<div class="bomBox"></div>
</div>
</template>
<script>
import watermark from 'watermark-dom'
export default {
mounted() {
const watermarkText = '測(cè)試水印內(nèi)容'
const options = {
watermark_txt: watermarkText,
watermark_color: 'gray',
watermark_fontsize: '14px',
watermark_alpha: 0.5,
watermark_angle: 15,
watermark_width: 100,
watermark_height: 20,
watermark_parent_node: 'watermarkId',
}
watermark.load(options)
},
}
</script>
<style scoped>
.box {
width: 100%;
height: 100vh;
}
.topBox {
height: 30vh;
background: cadetblue;
}
.cenBox {
height: 50vh;
}
.bomBox {
height: 20vh;
background: cornflowerblue;
}
</style>實(shí)現(xiàn)效果

到此這篇關(guān)于vue+watermark-dom實(shí)現(xiàn)頁(yè)面水印效果的文章就介紹到這了,更多相關(guān)vue watermark-dom頁(yè)面水印內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
vue使用keep-alive如何實(shí)現(xiàn)多頁(yè)簽并支持強(qiáng)制刷新
這篇文章主要介紹了vue使用keep-alive如何實(shí)現(xiàn)多頁(yè)簽并支持強(qiáng)制刷新,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-08-08
關(guān)于VUE點(diǎn)擊父組件按鈕跳轉(zhuǎn)到子組件的問(wèn)題及解決方案
本文主要介紹了在Vue框架中,如何通過(guò)父組件的點(diǎn)擊事件打開(kāi)子組件中的彈窗并展示表格內(nèi)容,主要步驟包括在父組件中定義數(shù)據(jù)屬性,創(chuàng)建并定義子組件的彈窗和表格內(nèi)容,通過(guò)props屬性和自定義事件實(shí)現(xiàn)父子組件間的數(shù)據(jù)傳遞和方法調(diào)用2024-10-10
解決VUE mounted 鉤子函數(shù)執(zhí)行時(shí) img 未加載導(dǎo)致頁(yè)面布局的問(wèn)題
這篇文章主要介紹了解決VUE mounted 鉤子函數(shù)執(zhí)行時(shí) img 未加載導(dǎo)致頁(yè)面布局的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-07-07
vue使用ElementUI時(shí)導(dǎo)航欄默認(rèn)展開(kāi)功能的實(shí)現(xiàn)
這篇文章主要介紹了vue使用ElementUI時(shí)導(dǎo)航欄默認(rèn)展開(kāi)功能的實(shí)現(xiàn),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-07-07
vue自定義table表如何實(shí)現(xiàn)內(nèi)容上下循環(huán)滾動(dòng)
這篇文章主要介紹了vue自定義table表如何實(shí)現(xiàn)內(nèi)容上下循環(huán)滾動(dòng)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-10-10
Vee-validate 父組件獲取子組件表單校驗(yàn)結(jié)果的實(shí)例代碼
vee-validate 是為 Vue.js 量身打造的表單校驗(yàn)框架,允許您校驗(yàn)輸入的內(nèi)容并顯示對(duì)應(yīng)的錯(cuò)誤提示信息。這篇文章主要介紹了Vee-validate 父組件獲取子組件表單校驗(yàn)結(jié)果 ,需要的朋友可以參考下2019-05-05
vue實(shí)現(xiàn)右側(cè)滑出層動(dòng)畫(huà)
這篇文章主要為大家詳細(xì)介紹了vue實(shí)現(xiàn)右側(cè)滑出層動(dòng)畫(huà),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-04-04
vue3?setup語(yǔ)法糖各種語(yǔ)法新特性的使用方法(vue3+vite+pinia)
這篇文章主要介紹了vue3?setup語(yǔ)法糖各種語(yǔ)法新特性的使用(vue3+vite+pinia),本文主要是記錄vue3的setup語(yǔ)法糖的各種新語(yǔ)法的使用方法,需要的朋友可以參考下2022-09-09
Mint UI 基于 Vue.js 移動(dòng)端組件庫(kù)
Mint UI 包含豐富的 CSS 和 JS 組件,能夠滿足日常的移動(dòng)端開(kāi)發(fā)需要。接下來(lái)通過(guò)本文給大家分享Mint UI 基于 Vue.js 移動(dòng)端組件庫(kù),需要的朋友參考下吧2017-11-11

