前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >页面添加水印效果实现

页面添加水印效果实现

作者头像
不爱吃糖的程序媛
发布2024-01-18 21:46:10
1410
发布2024-01-18 21:46:10
举报

页面效果:

在这里插入图片描述
在这里插入图片描述

源代码:

代码语言:javascript
复制
<div id="water-wrapper"></div>
<div>
    <div>111111111111111111111111111111111111111111111111111111111111111111111111111111111111</div>
    <div>111111111111111111111111111111111111111111111111111111111111111111111111111111111111</div>
    <div>111111111111111111111111111111111111111111111111111111111111111111111111111111111111</div>
    <div>111111111111111111111111111111111111111111111111111111111111111111111111111111111111</div>
    <div>111111111111111111111111111111111111111111111111111111111111111111111111111111111111</div>
</div>

jquery版本

代码语言:javascript
复制
function water() {
    const watermarkText = '不爱吃糖的程序媛'; // 水印文字内容
    const wrap = document.querySelector('#water-wrapper');
    const html = document.querySelector('html');
    const body = document.querySelector('body');
    html.style.margin = "0"
    html.style.padding = "0"
    body.style.margin = "0"
    body.style.padding = "0"
    wrap.style.width = "100vw"
    wrap.style.height = "100vh"
    wrap.style.display = "flex"
    wrap.style.position = "absolute"
    wrap.style.zIndex = "999999"
    wrap.style.flexDirection = "row"
    wrap.style.justifyContent = "space-around"
    wrap.style.flexWrap = "wrap"
    wrap.style.pointerEvents = "none"
    wrap.style.fontSize = "16px"
    wrap.style.color = "rgba(184, 184, 184, 0.6)"
    wrap.style.overflow = "hidden"

    const wrapWidth = wrap.offsetWidth; // 容器的宽度
    const wrapHeight = wrap.offsetHeight; // 容器的高度

    const tempSpan = document.createElement('span');
    tempSpan.innerText = watermarkText;
    tempSpan.style.visibility = 'hidden';
    document.body.appendChild(tempSpan);
    const watermarkWidth = tempSpan.getBoundingClientRect().width + 160; // 水印文本的实际宽度
    const watermarkHeight = tempSpan.getBoundingClientRect().height + 120; // 水印文本的实际高度
    document.body.removeChild(tempSpan);

    const numCols = Math.floor(wrapWidth / watermarkWidth); // 计算每行可容纳的方格数量
    const numRows = Math.floor(wrapHeight / watermarkHeight); // 计算可容纳的行数

    for (let i = 0; i < numRows; i++) {
        for (let j = 0; j < numCols; j++) {
            const watermark = document.createElement('div');
            watermark.classList.add('watermark');
            watermark.innerText = watermarkText;
            watermark.style.padding = "60px 80px"
            watermark.style.transform = "rotate(-45deg)"
            watermark.style.transformOrigin = "center center"
            wrap.appendChild(watermark);
        }
    }
}
water()
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2023-11-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 页面效果:
  • 源代码:
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档