Vue使用自定義指令實現(xiàn)頁面底部加水印
更新時間:2021年06月04日 14:20:35 作者:卡洛背心
本文主要實現(xiàn)給項目的整個背景加上自定義水印,可以改變水印的文案和字體顏色等,具有一定的參考價值,感興趣的小伙伴們可以參考一下
項目場景
給項目的整個背景加上自定義水印,可以改變水印的文案和字體顏色等
實現(xiàn)思路
- 這里使用的技術(shù)主要是canvas,在實現(xiàn)水印的過程中,主要使用了canvas的特性
- 使用 canvas 特性生成 base64 格式的圖片文件,然后設(shè)置其字體大小,顏色等
- 最后將其設(shè)置為背景圖片,這就實現(xiàn)了頁面的水印效果
實現(xiàn)效果

實現(xiàn)代碼
<template>
<div class="water-marker" >
<div v-waterMarker="{text:'卡洛背心 - 版權(quán)所有',textColor:'rgba(180, 180, 180, 0.4)'}">
<div class="water-marker-item">測試問題啊測試問題啊測試問題啊測試問題啊測試問題啊測試問題啊</div>
</div>
</div>
</template>
<script>
import waterMarker from '../../directive/test/waterMarker'
export default {
directives: {
waterMarker
},
data(){
return{
}
},
methods:{
}
}
</script>
<style lang="scss">
.water-marker{
height: 300px;
.water-marker-item{
line-height: 300px;
}
}
</style>
waterMarker.js文件如下:
function addWaterMarker(str, parentNode, font, textColor) {
// 水印文字,父元素,字體,文字顏色
var can = document.createElement('canvas')
parentNode.appendChild(can)
can.width = 200
can.height = 150
can.style.display = 'none'
var cans = can.getContext('2d')
cans.rotate((-20 * Math.PI) / 180)
cans.font = font || '16px Microsoft JhengHei'
cans.fillStyle = textColor || 'rgba(180, 180, 180, 0.3)'
cans.textAlign = 'left'
cans.textBaseline = 'Middle'
cans.fillText(str, can.width / 10, can.height / 2)
parentNode.style.backgroundImage = 'url(' + can.toDataURL('image/png') + ')'
}
const waterMarker = {
bind: function (el, binding) {
addWaterMarker(binding.value.text, el, binding.value.font, binding.value.textColor)
},
}
export default waterMarker
到此這篇關(guān)于Vue使用自定義指令實現(xiàn)頁面底部加水印的文章就介紹到這了,更多相關(guān)Vue 頁面底部加水印內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
一文詳解VueUse中useAsyncState的實現(xiàn)原理
在Vue 3 Composition API中,我們可以使用自定義鉤子函數(shù)來封裝可復用的邏輯,useAsyncState是一個用于管理異步狀態(tài)的自定義鉤子函數(shù),本文將給大家介紹一下useAsyncState的實現(xiàn)原理,感興趣的朋友可以參考下2024-01-01
vue3新擬態(tài)組件庫開發(fā)流程之table組件源碼分析
這篇文章主要介紹了vue3新擬態(tài)組件庫開發(fā)流程——table組件源碼,本文通過示例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-04-04

