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 库,教大…...
为什么要学习网安技术?
学习网络安全(网安)技术在当今社会变得尤为重要,这主要源于以下几个方面的原因: 保护个人隐私:随着互联网的普及,个人信息如姓名、地址、电话号码、甚至银行账户信息等都在网络上留下了痕迹。学习网安技术可…...

2024春秋杯网络安全联赛夏季赛Crypto(AK)解题思路及用到的软件
2024春秋杯网络安全联赛夏季赛Crypto(AK) 2024春秋杯网络安全联赛夏季赛Crypto解题思路以及用到的软件 所有题用到的软件 1.vm(虚拟机kali)和Ubuntu,正常配置即可B站有很多。 2.Visual Studio Code(里面要配置python,crypto库和Sagemath数学软件系统S…...

vue2 使用代码编辑器插件 vue-codemirror
vue 使用代码编辑器插件 vue-codemirror 之前用过一次,当时用的一知半解的,所以也没有成文,前几天又因为项目有需求,所以说有用了一次,当然,依旧是一知半解,但是还是稍微写一下子吧!…...

自动驾驶系列—智能巡航辅助功能中的横向避让功能介绍
自动驾驶系列—智能巡航辅助功能中的车道中央保持功能介绍 自动驾驶系列—智能巡航辅助功能中的车道变换功能介绍 自动驾驶系列—智能巡航辅助功能中的横向避让功能介绍 自动驾驶系列—智能巡航辅助功能中的路口通行功能介绍 文章目录 1. 背景介绍2. 功能定义3. 功能原理4. 传感…...
通过this.$options.data()重置变量时,会影响到引用了props或methods的变量
之前的文章我有提到过通过this.$options.data().具体某个值来将该值进行初始化 但我在项目中遇到了一个问题: 具体情况是:在data中定义一个变量时有用到methods中的一个方法,在后续的方法中我通过this. $options.data.值去重置了另一个数据&…...

[PM]产品运营
生命周期 运营阶段 主要工作 拉新 新用户的定义 冷启动 拉新方式 促活 用户活跃的原因 量化活跃度 运营社区化/内容化 留存 用户流失 培养用户习惯 用户挽回 变现 变现方式 付费模式 广告模式 数据变现 变现指标 传播 营销 认识营销 电商营销中心 拼团活动 1.需求整理 2.…...
流程控制语句
目录 前言 一、SET 语句 二、BEGIN END 语句 三、IF ELSE 语句 四、CASE 语句 五、WHILE 语句 六、GOTO 语句 七、RETURN 语句 前言 T-SQL 提供了用于编写过程性代码的语法结构,可用来进行顺序、分支、循环、存储过程等程序设计,编写结构化的模…...

杰发科技AC7840——SENT数据解析及软件Sent发送的实现
0. 测试环境 AC7840官方Demo板; 图莫斯0503 DSlogic U2Basic 使用引脚 输出脚:PB1 时钟:PB2,其他引脚可以不初始化,不接线 1. 数据解析 以下是SENT数据的格式(1tick以3us为例)&#…...

Java后端开发(十五)-- Ubuntu 开启activemq开机自启动功能
目录 1. 修改Wrapper.conf文件配置内容 2. 在/etc/systemd/system目录下创建activemq.service文件 3. 重启服务器,验证是否生效 4. 系统启动目标问题 操作环境: 1、Ubuntu 22.04.4 LTS (GNU/Linux 6.5.0-28-generic x86_64) 2、jdk17.0.11 3、apache-activemq-6.0.1 1. 修…...

56 网络层
本节重点 理解网络层的作用,深入理解IP协议的基本原理 对整个TCP/IP协议有系统的理解 对TCP/IP协议体系下的其他重要协议和技术有一定的了解 目录 前置认识ip协议基本概念协议头格式网段划分特殊的ip地址ip地址的数量限制私有ip和公有ip路由路由表生成算法 在复杂…...

MAC地址泛洪——华为ensp
首先搭建好网络拓扑,包含客户端、服务端、一台交换机 以及 云。 客户端client1和服务端server1各自配置好IP地址,服务端充当FTP服务器,启动ftp服务 其中要先配置cloud1相关配置,然后才可以进行连线, 第一步进行端口…...

golang 字符编码 gbk/gb2312 utf8编码相互转换,判断字符是否gbk编码函数, 字符编码转换基础原理解析, golang默认编码utf8
虽然golang里面的默认编码都是统一的unicode utf8编码, 但是我们在调用外部系统提供的api时,就可能会遇到别人的接口提供的编码非 utf8编码,而是gbk/gb2312编码, 这时候我们就必须要将别人的gbk编码转换为go语言里面的默认编码ut…...
CentOS(7.x、8)上安装EMQX
EMQX 是一个高度可扩展的分布式 MQTT 消息服务器,适用于 IoT、M2M 和移动应用程序。以下是在 CentOS 系统上安装 EMQX 的基本步骤: 在 CentOS 上安装 EMQ X 步骤 1: 添加 EMQ X YUM 源 首先,你需要添加 EMQ X 的官方 YUM 源到你的 CentOS 系…...
Mojo模型魔法:动态定制特征转换的艺术
标题:Mojo模型魔法:动态定制特征转换的艺术 在机器学习领域,模型的灵活性和可扩展性是至关重要的。Mojo模型(Model-as-a-Service)提供了一种将机器学习模型部署为服务的方式,允许开发者和数据科学家轻松地…...

多任务高斯过程数学原理和Pytorch实现示例
高斯过程其在回归任务中的应用我们都很熟悉了,但是我们一般介绍的都是针对单个任务的,也就是单个输出。本文我们将讨论扩展到多任务gp,强调它们的好处和实际实现。 本文将介绍如何通过共区域化的内在模型(ICM)和共区域化的线性模型(LMC)&…...

【PPT把当前页输出为图片】及【PPT导出图片模糊】的解决方法(sci论文图片清晰度)
【PPT把当前页输出为图片】及【PPT导出图片模糊】的解决方法 内容一:ppt把当前页输出为图片:内容二:ppt导出图片模糊的解决方法:方法:步骤1:打开注册表编辑器步骤2:修改注册表: 该文…...

TeraTerm 使用技巧
参考资料 自分がよく使うTeratermマクロによる自動ログインのやり方をまとめてみたよTera Term マクロでログインを自動化してみたTera Term のススメ 目录 简介一. 常用基础设置1.1 语言变更1.2 log设置 二. 小技巧2.1 指定host别名2.2 新开窗口2.3 设置粘贴多行命令时的行间…...

意得润色打折啦
新注册使用可以减15%,ABSJU202,直接使用哦ㅤ 此外,如果老板经费充足,预算高,完全可以试试他家的投稿套餐,科学深度编辑,从期刊选择,到投稿协助,投稿信都帮你写好…...

微软研发致胜策略 06:学无止境
这是一本老书,作者 Steve Maguire 在微软工作期间写了这本书,英文版于 1994 年发布。我们看到的标题是中译版名字,英文版的名字是《Debugging the Development Process》,这本书详细阐述了软件开发过程中的常见问题及其解决方案&a…...
谷歌浏览器插件
项目中有时候会用到插件 sync-cookie-extension1.0.0:开发环境同步测试 cookie 至 localhost,便于本地请求服务携带 cookie 参考地址:https://juejin.cn/post/7139354571712757767 里面有源码下载下来,加在到扩展即可使用FeHelp…...

为什么需要建设工程项目管理?工程项目管理有哪些亮点功能?
在建筑行业,项目管理的重要性不言而喻。随着工程规模的扩大、技术复杂度的提升,传统的管理模式已经难以满足现代工程的需求。过去,许多企业依赖手工记录、口头沟通和分散的信息管理,导致效率低下、成本失控、风险频发。例如&#…...
MVC 数据库
MVC 数据库 引言 在软件开发领域,Model-View-Controller(MVC)是一种流行的软件架构模式,它将应用程序分为三个核心组件:模型(Model)、视图(View)和控制器(Controller)。这种模式有助于提高代码的可维护性和可扩展性。本文将深入探讨MVC架构与数据库之间的关系,以…...

UR 协作机器人「三剑客」:精密轻量担当(UR7e)、全能协作主力(UR12e)、重型任务专家(UR15)
UR协作机器人正以其卓越性能在现代制造业自动化中扮演重要角色。UR7e、UR12e和UR15通过创新技术和精准设计满足了不同行业的多样化需求。其中,UR15以其速度、精度及人工智能准备能力成为自动化领域的重要突破。UR7e和UR12e则在负载规格和市场定位上不断优化…...

Kafka入门-生产者
生产者 生产者发送流程: 延迟时间为0ms时,也就意味着每当有数据就会直接发送 异步发送API 异步发送和同步发送的不同在于:异步发送不需要等待结果,同步发送必须等待结果才能进行下一步发送。 普通异步发送 首先导入所需的k…...

DingDing机器人群消息推送
文章目录 1 新建机器人2 API文档说明3 代码编写 1 新建机器人 点击群设置 下滑到群管理的机器人,点击进入 添加机器人 选择自定义Webhook服务 点击添加 设置安全设置,详见说明文档 成功后,记录Webhook 2 API文档说明 点击设置说明 查看自…...

淘宝扭蛋机小程序系统开发:打造互动性强的购物平台
淘宝扭蛋机小程序系统的开发,旨在打造一个互动性强的购物平台,让用户在购物的同时,能够享受到更多的乐趣和惊喜。 淘宝扭蛋机小程序系统拥有丰富的互动功能。用户可以通过虚拟摇杆操作扭蛋机,实现旋转、抽拉等动作,增…...
es6+和css3新增的特性有哪些
一:ECMAScript 新特性(ES6) ES6 (2015) - 革命性更新 1,记住的方法,从一个方法里面用到了哪些技术 1,let /const块级作用域声明2,**默认参数**:函数参数可以设置默认值。3&#x…...

若依登录用户名和密码加密
/*** 获取公钥:前端用来密码加密* return*/GetMapping("/getPublicKey")public RSAUtil.RSAKeyPair getPublicKey() {return RSAUtil.rsaKeyPair();}新建RSAUti.Java package com.ruoyi.common.utils;import org.apache.commons.codec.binary.Base64; im…...
Pydantic + Function Calling的结合
1、Pydantic Pydantic 是一个 Python 库,用于数据验证和设置管理,通过 Python 类型注解强制执行数据类型。它广泛用于 API 开发(如 FastAPI)、配置管理和数据解析,核心功能包括: 数据验证:通过…...