最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

用js實現(xiàn)html頁面水印

2023-04-10 19:20 作者:w2sft  | 我要投稿

用js實現(xiàn)html頁面水印

要在 HTML 頁面中添加水印并防止截圖,可以使用 JavaScript。以下是實現(xiàn)的基本步驟:

1、在 HTML 中添加一個 div 元素作為水印容器,并設(shè)置其樣式。

2、使用 JavaScript 動態(tài)生成水印內(nèi)容,并將其添加到水印容器中。

3、通過 CSS 設(shè)置水印文本的樣式,例如顏色、字體大小等。

4、使用 CSS 將水印容器置于所有其他元素的最頂層,從而覆蓋整個頁面。

5、監(jiān)聽窗口的 resize 和 scroll 事件,以便及時更新水印位置。

6、使用 Canvas 繪制圖片或者使用 CSS 的 mix-blend-mode 屬性來實現(xiàn)防截圖效果。

下面是一個示例代碼片段:


<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>Watermark Example</title>

<style>

#watermark {

position: fixed;

top: 0;

left: 0;

width: 100%;

height: 100%;

z-index: 9999;

pointer-events: none;

}


#watermark span {

font-size: 24px;

color: #ccc;

position: absolute;

transform: rotate(-30deg);

padding:100px;

pointer-events: none;

}

</style>

</head>

<body>

<div id="watermark"></div>

<script>

function createWatermark() {

var watermark = document.getElementById('watermark');

var angle = -30;

var top = -30;

var text = 'My Watermark';


for (var i = 0; i < 10; i++) {

var span = document.createElement('span');

span.style.left = i * 200 + 'px';

span.style.top = i * top + 'px';

span.style.webkitTransform = 'rotate(' + angle + 'deg)';

span.style.MozTransform = 'rotate(' + angle + 'deg)';

span.style.msTransform = 'rotate(' + angle + 'deg)';

span.style.OTransform = 'rotate(' + angle + 'deg)';

span.style.transform = 'rotate(' + angle + 'deg)';

span.appendChild(document.createTextNode(text));

watermark.appendChild(span);

angle += 15;

top += 15;

}

}


createWatermark();


window.addEventListener('resize', function() {

createWatermark();

});


window.addEventListener('scroll', function() {

createWatermark();

});


// 防截圖

var canvas = document.createElement('canvas');

canvas.width = window.innerWidth;

canvas.height = window.innerHeight;

canvas.style.position = 'fixed';

canvas.style.top = 0;

canvas.style.left = 0;

canvas.style.pointerEvents = 'none';

canvas.style.mixBlendMode = 'multiply';

document.body.appendChild(canvas);

var ctx = canvas.getContext('2d');

ctx.fillRect(0, 0, canvas.width, canvas.height);

</script>

</body>

</html>

這個示例代碼添加了一個水印容器,并在其中添加了一些旋轉(zhuǎn)的文本。使用 CSS 將水印容器置于最頂層,并禁用了其指針事件,以防止干擾用戶操作。同時在窗口 resize 和 scroll 事件中更新水印位置,以適應(yīng)頁面變化。

如果想保護上面的JavaScript代碼邏輯,可以用JShaman進行JavaScript代碼混淆加密,加密后的代碼不可讀、可起到防分析的作用。

此外,這個示例代碼還使用 Canvas 繪制了一個與頁面大小相同的黑色矩形,并將其與水印容器疊加在一起。由于 mix-blend-mode 屬性的作用,截圖時就無法完整地復(fù)制水印文本,從而達到防截圖的效果。

效果:



用js實現(xiàn)html頁面水印的評論 (共 條)

分享到微博請遵守國家法律
本溪市| 巢湖市| 临海市| 陆川县| 兴宁市| 清苑县| 加查县| 昌都县| 巴林左旗| 英德市| 贡觉县| 涪陵区| 嘉峪关市| 沈丘县| 海晏县| 收藏| 密云县| 伊春市| 玉环县| 台山市| 安宁市| 彝良县| 英吉沙县| 荃湾区| 五家渠市| 兴文县| 易门县| 丘北县| 昭平县| 宁都县| 桂林市| 贞丰县| 南岸区| 仪陇县| 马公市| 高要市| 布尔津县| 民和| 五莲县| 岚皋县| 长宁区|