vue+watermark-dom实现页面水印效果(示例代码)

 更新时间:2024年07月21日 15:39:33   作者:水星记_  
watermark.js 是基于 DOM 对象实现的 BS 系统的水印,确保系统保密性,安全性,降低数据泄密风险,简单轻量,支持多属性配置,本文将通过 vue 结合 watermark-dom 库,教大家实现简单而有效的页面水印效果,感兴趣的朋友跟随小编一起看看吧

前言

页面水印大家应该都不陌生,它可以用于验证数字媒体的来源和完整性,还可以用于版权保护和信息识别,这些信息可以在不影响媒体质量的情况下嵌入,‌并在需要时进行提取。‌本文将通过 vue 结合 watermark-dom 库,教大家实现简单而有效的页面水印效果。

watermark-dom

watermark.js 是基于 DOM 对象实现的 BS 系统的水印,确保系统保密性,安全性,降低数据泄密风险,简单轻量,支持多属性配置,动态计算水印,水印防被删(监听水印组件元素删除并重新添加,监听改变水印的属性并重新添加)。

特性

  • 多属性配置,简单易上手;
  • 动态计算水印;
  • 水印防被删(监听水印组件元素删除并重新添加,监听改变水印的属性并重新添加);
  • 支持 2 种导入使用:本地引用,npm 引用;
  • 水印测试工具:testTool 工具;
  • 内置 3 种全局 API 方法:init()load(), remove()
  • 原理:pointer-events 事件穿透属性,Shadow DOM(影子 DOM),opacity 等。

一、安装

npm install watermark-dom

二、引入

import watermark from 'watermark-dom'

三、内置方法

1. watermark.init(setting)

这个方法用于初始化水印,可以设置水印的样式、内容和位置等参数。

栗子

watermark.init({
  watermark_txt: '测试水印',
  watermark_color: 'gray',
  watermark_fontsize: '24px',
})

2. watermark.load(setting)

用于手动加载水印。

栗子

const options = {
  watermark_txt: '测试水印',
  watermark_color: 'gray',
  watermark_fontsize: '24px',
}
watermark.load(options)

3. watermark.remove()

这个方法用于移除已加载的水印。

栗子

watermark.remove();

四、常用的属性和配置

watermark_id: 'wm_div_id',          //水印总体的id
watermark_prefix: 'mask_div_id',    //小水印的id前缀
watermark_txt:"测试水印",            //水印的内容
watermark_x:20,                     //水印起始位置x轴坐标
watermark_y:20,                     //水印起始位置Y轴坐标
watermark_rows:0,                   //水印行数
watermark_cols:0,                   //水印列数
watermark_x_space:100,              //水印x轴间隔
watermark_y_space:50,               //水印y轴间隔
watermark_font:'微软雅黑',           //水印字体
watermark_color:'black',            //水印字体颜色
watermark_fontsize:'18px',          //水印字体大小
watermark_alpha:0.15,               //水印透明度,要求设置在大于等于0.005
watermark_width:100,                //水印宽度
watermark_height:100,               //水印长度
watermark_angle:15,                 //水印倾斜度数
watermark_parent_width:0,           //水印的总体宽度(默认值:body的scrollWidth和clientWidth的较大值)
watermark_parent_height:0,          //水印的总体高度(默认值:body的scrollHeight和clientHeight的较大值)
watermark_parent_node:null          //水印插件挂载的父元素element,不输入则默认挂在body上

五、实例代码

<template>
  <div style="height:100vh"></div>
</template>
<script>
import watermark from 'watermark-dom'
export default {
  mounted() {
    const watermarkText = '测试水印内容'
    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>

实现效果

六、非全屏展示

watermark_parent_node 属性用于指定水印的父节点,即确定水印应该显示在哪个 DOM 元素的内部。通过设置 watermark_parent_node 属性,可以控制水印的显示位置和范围。例如,如果你想要将水印显示在特定的 div 元素内部,可以将该 div 元素作为 watermark_parent_node。这样,水印将被限制在该 div 元素的范围内显示。

<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 = '测试水印内容'
    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>

实现效果

到此这篇关于vue+watermark-dom实现页面水印效果的文章就介绍到这了,更多相关vue watermark-dom页面水印内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • vue部署到域名二级目录刷新404的解决

    vue部署到域名二级目录刷新404的解决

    这篇文章主要介绍了vue部署到域名二级目录刷新404的解决,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-09-09
  • 一个vue组件库发布到npm的完整实现过程

    一个vue组件库发布到npm的完整实现过程

    工作的时候总是使用别人的npm包,然而我有时心底会好奇自己如何发布一个npm包呢,什么时候自己的包能够被很多人喜欢并使用呢,下面这篇文章主要给大家介绍了关于一个vue组件库发布到npm的相关资料,需要的朋友可以参考下
    2022-03-03
  • vue2如何获取上页的url地址

    vue2如何获取上页的url地址

    这篇文章主要介绍了vue2如何获取上页的url地址问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-03-03
  • vue 界面刷新数据被清除 localStorage的使用详解

    vue 界面刷新数据被清除 localStorage的使用详解

    今天小编就为大家分享一篇vue 界面刷新数据被清除 localStorage的使用详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-09-09
  • el-date-picker日期范围限制的实现

    el-date-picker日期范围限制的实现

    本文主要介绍了el-date-picker日期范围限制的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-05-05
  • Vue前端路由hash与history差异深入了解

    Vue前端路由hash与history差异深入了解

    这篇文章主要为大家介绍了Vue前端路由hash与history差异的深入了解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-06-06
  • 关于element-ui的隐藏组件el-scrollbar的使用

    关于element-ui的隐藏组件el-scrollbar的使用

    这篇文章主要介绍了关于element-ui的隐藏组件el-scrollbar的使用,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-05-05
  • vue两组件间值传递 $router.push实现方法

    vue两组件间值传递 $router.push实现方法

    两组件间传值,可能包含多种情况,这篇文章主要介绍了vue两组件间值传递 $router.push实现方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-05-05
  • vue项目中 jsconfig.json概念及使用步骤

    vue项目中 jsconfig.json概念及使用步骤

    这篇文章主要介绍了vue项目中 jsconfig.json是什么,本文仅仅简单介绍了 jsconfig .json 的一些基本配置,而 jsconfig .json提供了大量能使我们快速便捷提高代码效率的方法,需要的朋友可以参考下
    2022-07-07
  • vue-router定义元信息meta操作

    vue-router定义元信息meta操作

    这篇文章主要介绍了vue-router定义元信息meta操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-12-12

最新评论