js实现给html加水印

创建一个 dom 元素调用下面的方法

var setWatermark = (str,dom) => {const id = '23.12.18';const element = document.getElementById(id); if (element !== null) {element.parentNode.removeChild(element); // 从其父节点中移除该元素}const oBOM = document.getElementById(dom);const width = oBOM.offsetWidth || document.documentElement.clientWidth;const height = oBOM.offsetHeight || document.documentElement.clientHeight;oBOM.style.position = 'relative';oBOM.style.overflow = 'hidden';const can = document.createElement('canvas');can.width = 200;can.height = 130;const cans = can.getContext('2d');cans.rotate((-20 * Math.PI) / 180);cans.font = '12px Vedana';cans.fillStyle = 'rgba(200, 200, 200, 0.40)';cans.textBaseline = 'Middle';cans.fillText(str, can.width / 10, can.height / 2);const div = document.createElement('div');div.id = id;div.style.pointerEvents = 'none';div.style.top = '15px';div.style.left = '0px';div.style.position = 'absolute';div.style.top = 0;div.style.left = 0;div.style.zIndex = '10000000';div.style.width = `100%`;div.style.height = `${height}px`;div.style.background = `url(${can.toDataURL('image/png')}) left top repeat`;oBOM.appendChild(div);return id;
};

比如:

<div id="watermark"><div style="width:300px;height:300px;background-color: red; opacity:0.98;">test</div><div style="width:300px;height:300px;background-color: blue;  opacity:0.9;">test</div></div>

调用:

setWatermark('asdad','watermark')

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/231684.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux 操作系统 003-系统目录介绍

Linux 操作系统 003-系统目录介绍 本节关键字&#xff1a;Linux、根目录、目录介绍、常用配置文件 本节相关指令&#xff1a; 根目录介绍 目录名称描述/binbinary的缩写&#xff0c;表示二进制文件&#xff0c;bin目录包含了会被所有用户实用的可执行程序。/boot包含与Linux…

用23种设计模式打造一个cocos creator的游戏框架----(二十)解析器模式

1、模式标准 模式名称&#xff1a;解析器模式 模式分类&#xff1a;行为型 模式意图&#xff1a;给定一个语言&#xff0c;定义它的文法的一种表示&#xff0c;并定义一个解释器&#xff0c;这个解释器使用该表示来解释语言中的句子。 结构图&#xff1a; 适用于&#xff1…

K8S(十一)—Service详解

目录 Service发布服务&#xff08;服务类型&#xff09;type: ClusterIP选择自己的 IP 地址例子 type: NodePort选择你自己的端口为 type: NodePort 服务自定义 IP 地址配置例子 type: LoadBalancer混合协议类型的负载均衡器禁用负载均衡器节点端口分配设置负载均衡器实现的类别…

java之HikariCP连接池介绍和使用方法 简单易懂!!!

文章目录 一、HikariCP连接池介绍二、导入的jar包三、代码演示配置文件使用配置文件连接运行结果 一、HikariCP连接池介绍 在我们的工作中&#xff0c;免不了要和数据库打交道&#xff0c;而要想和数据库打好交道&#xff0c;选择一款合适的数据库连接池就至关重要&#xff0c…

软件试运行整体方案

一、 试运行目的 &#xff08;一&#xff09; 系统功能、性能与稳定性考核 &#xff08;二&#xff09; 系统在各种环境和工况条件下的工作稳定性和可靠性 &#xff08;三&#xff09; 检验系统实际应用效果和应用功能的完善 &#xff08;四&#xff09; 健全系统运行管理体…

网神防火墙后台用户敏感信息泄露漏洞复现

简介 网神防火墙是一款由中国知名网络安全公司启明星辰开发的防火墙产品。它提供了全面的网络安全防护功能,旨在保护企业网络免受各种网络威胁和攻击。 该产品存在用户账号信息泄露漏洞,通过构造特定数据包,获取防火墙管理员登录的账号密码。 漏洞复现 FOFA语法: body=&…

6TIM定时器

STM32的定时器功能众多&#xff0c;拥有基本定时功能&#xff0c;输出比较功能&#xff08;如产生PWM波等&#xff09;&#xff0c;输入捕获&#xff08;测量方波信号&#xff09;&#xff0c;读取正交编码器的波形。 1.中断原理 TIM定时器的基本功能是对输入的时钟进行计数&…

vue使用xlsx和xlsx-style导出xlsx文件并修改样式

1.下载依赖 npm install xlsx --save npm install file-saver --save npm install xlsx-style --save2.先修改xlsx-style的源码&#xff0c;一旦引入xlsx-style则会报错 在\node_modules\xlsx-style\dist\cpexcel.js 807行 的 var cpt require(’./cpt’ ‘able’); 改成 v…

Python如何画函数图像

1 问题 通过图像可以直观地学习函数变化&#xff0c;在学习函数等方面效果显著。下面我们尝试用Python的2D绘图库matplotlib来绘制函数图像。实现 yx*x 图象。 2 方法 用文字描述解题思路&#xff0c;可配合一些图形以便更好的阐述。解决问题的步骤采用如下方式&#xff1a; …

100GPTS计划-AI写诗PoetofAges

地址 https://chat.openai.com/g/g-Cd5daC0s5-poet-of-ages https://poe.com/PoetofAges 测试 创作一首春天诗歌 创作一首夏天诗歌 创作一首秋天诗歌 创作一首冬天诗歌 微调 诗歌风格 语气&#xff1a;古典 知识库

掌握 Babel:让你的 JavaScript 与时俱进(下)

&#x1f90d; 前端开发工程师&#xff08;主业&#xff09;、技术博主&#xff08;副业&#xff09;、已过CET6 &#x1f368; 阿珊和她的猫_CSDN个人主页 &#x1f560; 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 &#x1f35a; 蓝桥云课签约作者、已在蓝桥云…

蓝桥杯嵌入式——LED

原理&#xff1a;PD2为使能端&#xff0c;高电平使能。使能的时候&#xff0c;给PC8-PC15高电平即可点亮LED。 CUBE里将这些端口设置为GPIO输出模式&#xff0c;将PC8-15初始电平设置为高电平(这样一上电就不会亮),PD2默认低电平&#xff0c;不用管&#xff0c;然后生成代码即可…

算法通关第十九关-青铜挑战理解动态规划

大家好我是苏麟 , 今天聊聊动态规划 . 动态规划是最热门、最重要的算法思想之一&#xff0c;在面试中大量出现&#xff0c;而且题目整体都偏难一些对于大部人来说&#xff0c;最大的问题是不知道动态规划到底是怎么回事。很多人看教程等&#xff0c;都被里面的状态子问题、状态…

1,探索「两数之和」问题的多种算法解决方案

今天要讨论的是「两数之和」问题&#xff0c;并将从哈希表解法到排序数组与双指针法、再到一遍哈希表解法的不同解决方案进行详细探讨 哈希表解法&#xff1a; 第一&#xff0c;使用了一种简单而有效的方法——哈希表。我们创建了一个 HashMap&#xff0c;用于存储已遍历过的元…

如何在Go中向错误中添加额外的信息

引言 当Go中的函数失败时,该函数将使用error接口返回一个值,以允许调用者处理该失败。在许多情况下,开发人员将使用fmt包中的fmt.Errorf函数来返回这些值。不过,在Go 1.13之前,使用此函数的一个缺点是,您将丢失有关可能导致错误返回的任何错误的信息。为了解决这个问题,…

Linux--学习记录(3)

G重要编译参数 -g&#xff08;GDB调试&#xff09; -g选项告诉gcc产生能被GNU调试器GDB使用的调试信息&#xff0c;以调试程序编译带调试信息的可执行文件g -g hello.c -o hello编译过程&#xff1a; -E&#xff08;预处理&#xff09; g -E hello.c -o hello.i-S&#xff08;编…

Kubernetes 容器编排(4)

Downward API Downward API 用于在容器中获取 POD 的基本信息&#xff0c;kubernetes原生支持 Downward API提供了两种方式用于将 POD 的信息注入到容器内部&#xff1a; 1.环境变量&#xff1a;用于单个变量&#xff0c;可以将 POD 信息直接注入容器内部。 2.Volume挂载&…

【Docker】Docker安装部署maven私服

文章目录 镜像拉取构建nexus实例登录maven私服如何查看实例初始化的admin密码呢&#xff1f;1.查看容器挂载卷2.找到nexus_nexus_data查看挂载卷详情3.查看admin账号密码4.登录并重置密码 使用nexus私服1.设置settings.xml2.设置idea pom 出现的问题小插曲 镜像拉取 docker pu…

Spring Cloud + Vue前后端分离-第6章 通用代码生成器开发

Spring Cloud Vue前后端分离-第6章 通用代码生成器开发 6-1 代码生成器原理介绍 1.增加generator模块&#xff0c;用于代码生成 2.集成freemarker 通用代码生成器开发 FreeMarker 是一款模版引擎&#xff0c;通过模板生成文件&#xff0c;包括html页面&#xff0c;excel …

Ubuntu 18.04配置NFS服务器以及配置时遇到NFS问题

1.安装相关软件 sudo apt-get install nfs-kernel-server sudo apt-get install nfs-common 2.配置共享目录 2.1修改exports文件 sudo vi /etc/exports在最后添加如下并保存退出 /home/xiaowu/nfs 192.168.31*(rw,sync,no_root_squash,no_subtree_check) /home/xiaowu/nfs…