Vue使用自定義指令實現頁面底部加水印
阿新 • • 發佈:2021-06-08
專案場景
給專案的整個背景加上自定義水印,可以改變水印的文案和字型顏色等
實現思路
- 這裡使用的技術主要是canvas,在實現水印的過程中,主要使用了canvas的特性
- 使用 canvas 特性生成 base64 格式的圖片檔案,然後設定其字型大小,顏色等
- 最後將其設定為背景圖片,這就實現了頁面的水印效果
實現效果
實現程式碼
<templatewww.cppcns.com> <dQjfSJaxiv class="water-marker" > <div v-waterMarker="{text:'卡洛背心 - 版權所有',textColor:'rgba(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 = caQjfSJaxn.getContext('2d') cans.rotate((-20 * Math.PI) / 180) cans.font = font || '16px Microsoft JhengHei' cans.fillStyle = textColor || 'rgba(180,1QjfSJax80,0.3)' cans.textAlign = 'left' cans.textBaseline = 'Middle' cans.fillText(str,can.width / 10,can.height / 2) parentNode.style.backgroundImage = 'url(' + cawww.cppcns.comn.toDataURL('image/png') + ')' } const waterMarker = { bind: function (el,binding) { addWaterMarker(binding.value.text,el,binding.value.font,binding.value.textColor) },} export default waterMarker
到此這篇關於vue使用自定義指令實現頁面底部加水印的文章就介紹到這了,更多相關Vue 頁面底部加水印內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!