当前位置: 首页 > wzjs >正文

网站服务器时间查询工具最新军事新闻新浪网

网站服务器时间查询工具,最新军事新闻新浪网,综合电子商务型企业网站有哪些,游戏排行榜前十名大型网络游戏明水印 1. 背景图 通过css的background-image加载背景图 2. canvasbackground水印 前端水印实现思路与示例代码 一、核心实现思路 Canvas动态生成水印 通过Canvas绘制文本或图案,将生成的图像转为Base64格式,作为背景图重复平铺到目标元素上。例如&…

明水印

1. 背景图

通过css的background-image加载背景图

2. canvas+background水印

前端水印实现思路与示例代码

一、核心实现思路
  1. Canvas动态生成水印
    通过Canvas绘制文本或图案,将生成的图像转为Base64格式,作为背景图重复平铺到目标元素上。例如:

    function createWatermark(text) {const canvas = document.createElement('canvas');const ctx = canvas.getContext('2d');canvas.width = 200;canvas.height = 150;ctx.font = '12px Arial';ctx.fillStyle = 'rgba(200,200,200,0.2)';ctx.rotate(-30 * Math.PI / 180); // 倾斜角度ctx.fillText(text, 10, 100);return canvas.toDataURL('image/png');
    }
    
  2. 防篡改机制

    • 使用MutationObserver监听DOM变化,若水印元素被删除则重新注入
    • 禁止控制台操作:禁用右键菜单、屏蔽开发者工具快捷键
    document.addEventListener('contextmenu', e => e.preventDefault());
    
  3. 容器绑定
    将水印作为独立图层覆盖在目标内容上方,通过CSS确保全屏状态仍可见:

    .watermark-container {position: relative;
    }
    .watermark-layer {position: absolute;pointer-events: none;z-index: 9999;background: url('data:image/png;base64,...');
    }
    
二、完整示例代码
<!DOCTYPE html>
<html><body><style>.watermark-container {position: relative;}.watermark-layer {position: absolute;pointer-events: none;z-index: 9999;background: url('data:image/png;base64,...');}</style><div id="content">需要保护的内容</div><script>function createWatermark (text) {const canvas = document.createElement('canvas')const ctx = canvas.getContext('2d')canvas.width = 200canvas.height = 150ctx.font = '12px Arial'ctx.fillStyle = 'rgba(200,200,200,0.2)'ctx.rotate(-30 * Math.PI / 180) // 倾斜角度ctx.fillText(text, 10, 100)return canvas.toDataURL('image/png')}function initWatermark (text = '机密文件') {const watermark = document.createElement('div')watermark.style.backgroundImage = `url(${createWatermark(text)})`watermark.style.position = 'fixed'watermark.style.top = 0watermark.style.bottom = 0watermark.style.right = 0watermark.style.left = 0watermark.style.pointerEvents = 'none'// 防删除监听const observer = new MutationObserver(mutations => {if (!document.contains(watermark)) {document.body.appendChild(watermark)}})observer.observe(document.body, { childList: true })document.body.appendChild(watermark)}initWatermark('严禁复制');</script>
</body></html>
三、注意事项
  1. 动态水印
    可添加时间戳、用户ID等可变信息增强追踪能力:

    const dynamicText = `${username} ${new Date().toLocaleString()}`;
    
  2. 样式优化

    • 使用background-repeat: repeat平铺
    • 调整rgba透明度值平衡可见性与内容遮挡
  3. 跨框架实现
    Vue/React可通过高阶组件封装水印逻辑,例如:

    const withWatermark = (Component) => (props) => (<div className="watermark-wrapper"><Component {...props} /></div>
    )
    

纯canvas水印

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Canvas水印示例</title><style>.watermark {position: fixed;top: 0;left: 0;right: 0;bottom: 0;z-index: 1000;pointer-events: none;opacity: 0.2;}</style>
</head>
<body><canvas id="watermarkCanvas" class="watermark"></canvas><div><h1>内容区域</h1><p>这是需要加水印的内容</p></div><script>window.onload = function() {var canvas = document.getElementById('watermarkCanvas');var ctx = canvas.getContext('2d');canvas.width = window.innerWidth;canvas.height = window.innerHeight;var text = '水印文本';var width = canvas.width;var height = canvas.height;ctx.font = '30px Arial';ctx.fillStyle = 'rgba(0, 0, 0, 0.1)';ctx.textAlign = 'center';ctx.textBaseline = 'middle';// 旋转并重复绘制水印文本for (var x = 0; x < width; x += 200) {for (var y = 0; y < height; y += 200) {ctx.save();ctx.translate(x, y);ctx.rotate(- Math.PI / 4);ctx.fillText(text, 0, 0);ctx.restore();}}};</script>
</body>
</html>

svg水印

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>SVG水印示例</title><style>.watermark {position: fixed;top: 0;left: 0;right: 0;bottom: 0;z-index: 1000;pointer-events: none;opacity: 0.2;}</style>
</head>
<body><div class="watermark"><svg width="100%" height="100%"><text x="50%" y="50%" dominant-baseline="middle" text-anchor="middle" font-size="30" fill="rgba(0,0,0,0.1)" transform="rotate(-45, 50, 50)">水印文本</text></svg></div><div><h1>内容区域</h1><p>这是需要加水印的内容</p></div>
</body>
</html>

文章转载自:

http://UiTINARJ.sLfmp.cn
http://lnnQrCyD.sLfmp.cn
http://BnfjA3SG.sLfmp.cn
http://ZGrEs1cS.sLfmp.cn
http://twdCqB2s.sLfmp.cn
http://DAl07LeK.sLfmp.cn
http://u9zK7Y6Y.sLfmp.cn
http://KrpXpWlh.sLfmp.cn
http://xE8da4ho.sLfmp.cn
http://YUk93VRY.sLfmp.cn
http://78YuvVEP.sLfmp.cn
http://8aF1iB1b.sLfmp.cn
http://AhAe4kqC.sLfmp.cn
http://N3pHYUg6.sLfmp.cn
http://3ubMnlEY.sLfmp.cn
http://5W4HNALq.sLfmp.cn
http://Gj9RXcGm.sLfmp.cn
http://gAQ3BGC3.sLfmp.cn
http://ORIl9Ijc.sLfmp.cn
http://TQblO4S9.sLfmp.cn
http://fHHbKIHX.sLfmp.cn
http://yeP6pKAT.sLfmp.cn
http://4laesfhK.sLfmp.cn
http://yBywRbCU.sLfmp.cn
http://k4yLqv9S.sLfmp.cn
http://5oFYIabc.sLfmp.cn
http://Eq0XwBtC.sLfmp.cn
http://wEHaHkVK.sLfmp.cn
http://82gTrom3.sLfmp.cn
http://vyH7Xqye.sLfmp.cn
http://www.dtcms.com/wzjs/654631.html

相关文章:

  • 万能站工具的企业网站系统无锡网站seo
  • 南昌网站设计公司哪家好网站建设维护有哪些内容
  • 有哪些好的网站项目网络服务商不提供哪项服务
  • 商业网站有什么作用建设网站如何优化关键词
  • 域名购买哪个网站最好电子商务网站开发书例子
  • 推广网站大全呼和浩特网站建设
  • 启东做网站龙岗区建设局网站
  • ps做的网站怎样在dw里打开中国工程建设质量管理协会网站
  • 亚马逊网站怎么做如何提升网站打开速度
  • 服装网站建设项目维护与评价书群晖wordpress目录
  • 门户网站推广方式wordpress如何更改页脚背景颜色
  • 企业网站建设报价单最好的无代码平台
  • 濮阳做网站推广网站 空间 备案
  • 沈阳制作公司网站和app广东个人网站备案
  • 马来西亚的网站后缀闵行区怎么读
  • 绝味鸭脖网站建设规划书wordpress美食主题
  • 清远城乡住房建设部网站网站建设开票分类编码
  • 用vs2012怎么做网站手机网址大全哪个好
  • 秦皇岛市建设局网站关于装配式专家云尚网络建站
  • seo网站系统做微网站的第三方平台有哪些
  • 建设社区网站有什么借鉴之处山西住房和建设厅网站
  • 微网站 源码 免费网站域名怎么修改
  • 整人网站怎么做做个个人网站多少钱
  • 建网站开发语言对比wordpress主题带识图搜索
  • 安网站建设公司保定网站排名
  • 网站建设客户问题wordpress 什么是插件
  • 搭建简单网站珠海建设改革有哪些网站
  • 如何做一个免费的网站app商城系统
  • 进行网站建设有哪些重要意义襄阳做网站多少钱
  • 动易如何做网站宁波网站建设培训