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

给网站添加文本水印

今天需要在某小程序提交一些证明材料,然后处于隐私保护的需要,在每个材料上都加上了水印。

下面是给在线网站添加水印的办法。

1.打开需要添加水印的页面

2.输入水印生成代码

打开控制台界面,输入以下代码,然后回车

// 水印配置参数
const config = {
    count: 60,            // 水印数量
    angle: 45, // 旋转角度范围
    fontSize: '14px',     // 字体大小
    color: '#cccccc',     // 文字颜色
    opacity: 0.5,         // 透明度
    zIndex: 999           // 层叠顺序
};

// 创建单个水印元素
function createWatermark() {
    const watermark = document.createElement('div');
    watermark.textContent = "仅供招聘申请驿站使用";
    watermark.style.cssText = `
        position: fixed;
        left: ${Math.random() * 100}%;
        top: ${Math.random() * 100}%;
        transform: rotate(${config.angle}deg);
        transform-origin: center center;
        color: ${config.color};
        font-size: ${config.fontSize};
        opacity: ${config.opacity};
        pointer-events: none;
        white-space: nowrap;
        z-index: ${config.zIndex};
    `;
    return watermark;
}

// 批量创建水印
for (let i = 0; i < config.count; i++) {
    document.body.appendChild(createWatermark());
}
// 水印配置参数
const config = {
    count: 20,            // 水印数量
    angle: 45,            // 统一倾斜角度
    fontSize: '14px',     // 字体大小
    color: '#cccccc',     // 文字颜色
    opacity: 0.5,         // 透明度
    zIndex: 999,          // 层叠顺序
    spacing: 200          // 水印间距(像素)
};

// 创建单个水印元素
function createWatermark() {
    const watermark = document.createElement('div');
    watermark.textContent = "仅供招聘申请驿站使用";
    watermark.style.cssText = `
        position: fixed;
        transform: rotate(${config.angle}deg);
        transform-origin: center center;
        color: ${config.color};
        font-size: ${config.fontSize};
        opacity: ${config.opacity};
        pointer-events: none;
        white-space: nowrap;
        z-index: ${config.zIndex};
        user-select: none;
    `;
    
    // 计算有效显示区域(考虑水印尺寸)
    const viewportWidth = window.innerWidth - 200;  // 预留水印宽度
    const viewportHeight = window.innerHeight - 50; // 预留水印高度
    
    // 生成随机位置(确保在可视区域内)
    watermark.style.left = `${Math.random() * viewportWidth}px`;
    watermark.style.top = `${Math.random() * viewportHeight}px`;
    
    return watermark;
}

// 批量创建水印
function createWatermarks() {
    // 清除旧水印
    document.querySelectorAll('[data-watermark]').forEach(el => el.remove());
    
    for (let i = 0; i < config.count; i++) {
        const watermark = createWatermark();
        watermark.dataset.watermark = 'true'; // 标记水印元素
        document.body.appendChild(watermark);
    }
}

// 初始化水印
createWatermarks();

// 窗口变化时重新生成
window.addEventListener('resize', createWatermarks);

 

3.展示效果

其他页面同理,此处不再赘述。 

相关文章:

  • 记一次 .NET某固高运动卡测试 卡慢分析
  • 记录一次JVM调优过程2
  • Day31笔记-进程和线程
  • HarmonyOS-ArkUI V2装饰器: @Monitor装饰器:状态变量修改监听
  • C++运算符重载全面总结
  • 【题解-Acwing】831. KMP字符串
  • 【Python爬虫】简单介绍2
  • 【美容和医美作为智商税的本质】
  • 使用 Python 实现凯撒密码的加密、解密及破译算法
  • 64. 评论日记
  • C++ Primer Plus 章节编程题练习 1-9章包含题目,答案以及知识点总结
  • 企业级RAG行业应用落地方案——阿里云百炼
  • 阿里云域名解析
  • 循环链表的基本操作及C语言代码实现
  • 高性能编程之分支预测
  • Mysql数据库基本操作-DML
  • 阿里计算机专业面试黄金宝典2
  • Hadoop大数据平台部署(Hadoop3.2.4+Hive4.0.1)
  • RabbitMQ 深度解析:从基础到高级应用的全面指南
  • 使用 Axios 进行 API 请求与接口封装
  • 上海潮汕联谊会举行换届大会,陈湖文当选会长
  • 我国对国家发展规划专门立法
  • 陈平评《艺术科学的目的与界限》|现代艺术史学的奠基时代
  • 中国人民对外友好协会代表团访问美国
  • 南国置业:控股股东电建地产拟受让公司持有的房地产开发业务等相关资产和负债
  • 航天科技集团质量技术部部长严泽想升任集团副总经理