新闻中心
HTML5代码如何实现水印效果 HTML5代码Canvas叠加层的制作
使用Canvas创建透明水印覆盖内容,通过J*aScript绘制文字或图片并叠加到目标区域,支持动态更新与响应式适配,有效标识来源且难以直接移除。

在HTML5中实现水印效果,主要通过 Canvas 元素绘制透明文字或图案,并将其作为叠加层覆盖在目标内容上。这种方式灵活、兼容性好,适合为图片、文档预览区域甚至视频添加动态水印。
1. 创建Canvas作为水印层
使用元素创建一个透明画布,设置其位置为绝对定位,覆盖在目标内容上方。通过J*aScript在画布上绘制文字或图像水印。
示例代码:
<canvas id="watermark" style="position: absolute; top: 0; left: 0; pointer-events: none; z-index: 999; opacity: 0.2;"></canvas>
<p><script>
function createWatermark(text = '私密文件', font = '20px Microsoft YaHei', fillStyle = 'red') {
const canvas = document.getElementById('watermark');
const ctx = canvas.getContext('2d');</p><p>// 设置画布尺寸为窗口大小
canvas.width = window.innerWidth;
canvas.height = window.innerHeight;</p><p>// 文字旋转角度和间距
const angle = -30 * Math.PI / 180;
const stepX = 200;
const stepY = 100;</p><p>ctx.font = font;
ctx.fillStyle = fillStyle;
ctx.textAlign = 'center';
ctx.textBaseline = 'middle';</p><p>// 绘制网格状水印
for (let x = 0; x < canvas.width; x += stepX) {
for (let y = 0; y < canvas.height; y += stepY) {
ctx.s*e();
ctx.translate(x + st
epX/2, y + stepY/2);
ctx.rotate(angle);
ctx.fillText(text, 0, 0);
ctx.restore();
}
}
}
// 调用生成水印
createWatermark('机密 - 张三');
</script></p>2. 叠加到目标区域(如图片或内容区)
若只为某个特定区域(如一个div或图片容器)添加水印,可将Canvas的尺寸和位置限制在该容器内。
操作方法:
- 获取目标容器的位置和大小(getBoundingClientRect)
- 设置Canvas宽高与容器一致,并定位在其左上角
- 将Canvas插入容器内部或浮于其上
示例:为一个id为contentArea的div添加水印
Visla
AI视频生成器,快速轻松地将您的想法转化为视觉上令人惊叹的视频。
100
查看详情
const container = document.getElementById('contentArea');
const rect = container.getBoundingClientRect();
<p>const canvas = document.createElement('canvas');
canvas.width = rect.width;
canvas.height = rect.height;
canvas.style.cssText = <code> position: absolute; top: ${rect.top}px; left: ${rect.left}px; pointer-events: none; z-index: 999; opacity: 0.15; </code>;
document.body.appendChild(canvas);</p><p>// 在canvas上绘制水印(同上)
const ctx = canvas.getContext('2d');
ctx.font = 'bold 30px Arial';
ctx.fillStyle = 'gray';
ctx.rotate(-30 * Math.PI / 180);
ctx.fillText('内部资料', 50, 100);</p>3. 高级技巧:图片水印与动态更新
除了文字,还可以绘制图片作为水印(如公司Logo)。
使用drawImage()方法:
const img = new Image();
img.src = 'logo.png';
img.onload = function() {
ctx.drawImage(img, 0, 0, 50, 50); // 绘制小图标
}
也可以结合用户信息动态生成水印,例如:
createWatermark(`仅限 ${userName} 查看`);基本上就这些。Canvas水印轻量、难以删除(除非截图后编辑),适合前端防误传播。注意:它不能防止截图,但能明确标识来源。实际项目中可封装成函数或组件调用,灵活复用。不复杂但容易忽略细节,比如字体加载、坐标变换和响应式适配。
以上就是HTML5代码如何实现水印效果 HTML5代码Canvas叠加层的制作的详细内容,更多请关注其它相关文章!
# css
# 厦门edm推广网站官网
# 湖州英文网站推广
# 北京小红书营销推广平台
# 广西整合营销推广
# 象山外贸网站优化排名
# 解决问题
# 中文网
# 相关文章
# 与传统
# 还可以
# 器中
# 您的
# 源代码
# 运行环境
# html5代码
# javascript
# java
# html
# 前端
# go
# html5
# app
# ai
# win
# micr
# 如何实现
# 能源公司网站建设规范
# 张家港网站建设推荐
# 长春网站seo站内优化报价
# 林芝推广视频下载网站
# 金昌银川网站推广
相关栏目:
【
科技资讯46185 】
【
网络学院92790 】
相关推荐:
Golang切片为何属于引用类型_Golang slice底层结构与引用语义说明
微信群消息显示延迟如何解决 微信群消息刷新优化方法
必由学官网首页入口 必由学教师网页版登录指南
Golang如何安装Swagger工具_GoSwagger文档生成环境
一加手机拍照效果不好怎么办 一加哈苏影像调校与专业模式使用教程【高手篇】
J*a如何使用AtomicInteger控制计数_J*a无锁计数器性能分析
Golang如何实现微服务鉴权与权限控制_Golang微服务鉴权与权限管理实践
XML中包含HTML标签导致解析错误? 正确嵌入非XML数据的两种方法
小米汽车11月交付量突破40000台!雷军:将继续努力
如何为你的Composer包编写自动化测试_集成PHPUnit到Composer的scripts工作流
Win11怎么开启高性能模式_Windows 11电源计划优化设置
知音漫客官网漫画下载_知音漫客网页版阅读记录
包子漫画官方网站阅读入口-包子漫画在线漫画官网直达链接
漫蛙Manwa2官网入口地址分享 漫蛙漫画PC版永久访问通道
海量存储:机器视觉智能化的核心基石
Typer应用中动态命令行参数的解析与处理
AO3网页版最新入口合集 Archive of Our Own在线访问指南
高德地图沿途添加点失败如何解决 高德多点规划方法
极兔快递快件信息查询系统 极兔快递官网运单号追踪
Win11怎么隐藏桌面图标 Win11一键隐藏所有桌面元素及恢复显示
电脑屏幕颜色不舒服怎么办_Windows夜间模式与色彩校准教程【护眼技巧】
html网页设计源代码怎么运行_运行html网页设计源代码步骤【指南】
蛙漫限时开放最深处链接_蛙漫全站漫画会员同款秒开地址
TikTok国际版官网直达_TikTok国际版官网直达进入在线观看
Python中高效访问嵌套字典与列表中的键值对
创客贴用户入口官网登录 创客贴网页版电脑版系统
Yandex官网免登录入口_俄罗斯Yandex搜索引擎一键访问
晋江读书网页版在线登录 晋江读书电脑版官网
Win11输入法不见了怎么办_Windows11恢复语言栏显示方法
Go语言中Map值调用指针接收器方法的限制与应对
win11开机启动修复循环怎么办 Win11无法进入系统高级启动解决方法【修复】
excel怎么制作工资条 excel快速生成工资条的方法
c++20的std::jthread是什么_c++可中断线程与RAII式管理
在J*a中如何开发在线活动报名与管理系统_活动报名管理项目实战解析
php源码怎么看淘宝客系统_看php源码淘宝客系统技巧
Win11怎么关闭快速启动_Win11彻底关机设置教程
J*aScript中高效管理与清空动态列表:避免循环陷阱
漫蛙漫画官方主页入口 漫蛙MANWA网页直达访问链接
为什么简单的XML文件也会解析失败? 检查隐藏的非打印字符(如BOM)的方法
如何更改在 Excel 中打开超链接时的默认浏览器
如何在复杂的电商平台中优雅地管理共享资源并确保正确重定向,使用spryker-shop/resource-share-page模块助你一臂之力
抖音创作助手登录入口_抖音创作辅助工具官网直达
TikTok评论显示延迟如何处理 TikTok评论刷新优化方法
QQ邮箱登录平台入口 QQ邮箱网页版邮箱官方入口
J*aScript数据结构转换:将对象数组按类别分组
知音漫客正版漫画平台_知音漫客官网账号登录
QQ邮箱登录首页官网地址2026 QQ邮箱官方网页入口
天猫2025双十一0点秒杀攻略 天猫爆款抢购时间
vivo浏览器自带的下载器速度慢怎么办 vivo浏览器提升文件下载速度的技巧
AO3最新可访问网址 Archive of Our Own官方在线入口


2025-11-14
浏览次数:次
返回列表
epX/2, y + stepY/2);
ctx.rotate(angle);
ctx.fillText(text, 0, 0);
ctx.restore();
}
}
}
// 调用生成水印
createWatermark('机密 - 张三');
</script></p>