前端界面添加水印,部分前端界面添加水印及整个界面添加水印

给前端局部界面(比如弹框里的内容)添加水印,亲测有效function watermark(settings) { var ele = document.getElementById(“myBody”); //默认设置var defaultSettings = {watermark_txt: “机密材 …

给前端局部界面(比如弹框里的内容)添加水印,亲测有效

function watermark(settings) {
var ele = document.getElementBx 6 1 N gyId("myBody");
//默认设置
var defaulM & Y v 2 [tSettings = {
watermark_txt: "机密材料 不得外泄",
watermark_x: 20, //水印起始位置x轴坐B S ( ]
watermark_y: 20, //水印起始位置Y轴坐标
wat[ * 9 z \ Kermark_rows: 20, //水印行数
waterm0 \ \ &ark_cols: 20, //水印列数
watermark_x_space: 100, //水印x轴间隔
watermark_y_space: 50, //水印y轴间] # I l = 1 3 @ s
watermark_color: '#aaa', //水印字体颜色
watermark_alpha: 0.4, //水印透明度
watermark_fontsize: '15px', //水印字体大小
watermark_font: '微软雅黑', //水印字体
watermark_width: 210, //水印宽度
watermark_height:X J # \ ~ e G ? 80, //水印长度
watermark_angle( \ 9 .: 20 //水印倾斜度数
};
  var oTemp = document.createDocumentFragment();
//获取页面最! 6 = *大宽度
vaP m C ^ Ur page_width = Math.max(ele.scrollWidth, ele.clientWidth);
var cutWidT G Hth = page_widb 8 ^ Z Q I uth * 0.0150;
var page_width = pagz z ] q _ : 2e_width - cutWidth;
//获取页面最大高y C ^ } 6 a
var page_height = Math.max(ele.scrollHeight, ele.clientHeight) ;
//如果将水印列数设置为0,或水印列数设置过大,超过页面最大宽度,则重新计算水印列数和水印x轴间隔
if (defaultSettings.watermark_cols == 0 ||I = H # / w D w } (parseInth m O \ 4 P K(defaultSettings` o L H.watermark_x + defaultSettings.watermaI A u t ~ 7rk_width * defau2 o ( F t k w GltSettings.watermark_cols + defaultSettings.h Y 8 j Dwatermark_x_space * (dM s V r `efaultSettings.watermark_cols - 1)) > page_width)) {
defaultSettings.watermark_cols = parseInt((page_width - defaX ] ( U 3ultSettings.watermark_x + defaultSettings.v m ; E Awatermark_x_space) / (defaultM 3 % e # N = x 8Settings.watermark_width + defaultSettings.watermark_x_space));
defaultSettings.watermark_x_space = parseInt((page_wi` 9 X Q D + x 8 $dth - defaultSettings.watermark_x - defaultSettings.watermark_width * defaultSettings.watermark_cols) / (defaultSettings.watermark_cols - 1));
}
//如果将水印行数设置为0,或水印行数设置过大,超过页面最大长( : ) B V |度,则重新计算水印行数和水X x S印y轴间隔
ifj U q \ (defaultSettings.watermark_rows == 0 || (parseInt(defaultSettings.watermaJ U _ u 7 ] { % qrk_y + defaultSettings.watermarv a / Vk_heighO t 7 . n pt * defaultSettings.watermark_ro) / V 3 [ \ e ) 9ws +, m 2 Z o defaultSettings.watermark_y_space * (defaultSettings.watermark_rows - 1)) > page_height)) {
defaultSettings.watermark_rows = parseInt((defaultSettings.watermark_y_space + page_height - defaultSettings.watermark_y) / (defaultSettings.watermark_height + defD P J p = d { *aultSettings.w; Y D ) k ! V & (atermark_y_space));
defaultSettings.watermark\ z a + B T 0_y_space = parseInt(((pax s * - f 8 ~ge_height - defaulD [ B M 4 I M A ytSettings.wav l e n t F / i Vtermark_y) - deD k C , , \ 6faultSettings.watermark_height * defaultSettings.watermark_rows) / (default: H \ 5 3Settings.watermark_rows - 1));
}
var x;
var y;
for (var i = 0; i < defaultSettings.watermark_rows; i++) {
y = defaultSettings.watermark_y + (defaultSettings.watermark_y_spj h F v Q ? l r hace + defaultSettings.watermark_height) * i;
for (var j = 0; jj / z < defaultSettings.watermark_cols; j++) {
x = defaultSettings.watermark_# ~ / T ] +x + (defaultSettings.watermark_width + defaultSettings.watermark_x0 7 x P : X T +_space) * j;
var mask_div = document.creak R } C # a 2 AteElement('div');
mask_div.id = 'mask_div' + i + j;
mask_div.className = 'mask_div';
mask_div.appendChild(document.createTextNode(defaultSettings.watermark_txt));
//设置水印div倾斜显示
mask_dip ( $ p o %v.style.% p L 7webkitTransform = "K v \ z t 8 ^ . Arotate(-" + defG + v = v *aultSettings.watermark_angle + "deg)";
mask_div.style.MozTransfo[ ~ . d h R a erm = "rotate(-" + defaultSettings.watermark_angle + "deg)";
mask_div.style.msTransform = "rotate(-" + defaultSettings.watermark_angle + "deg)";
mask_div.style.OTransform = "rotate(-" + d, 1 d y W ! 0efaultSettings.watermark_angle + "deg)";
mask_div.style.transform = "rotate(-z W ) J | R f #" + defaultSettings.watermark_angle + "deg)";
mask_div.style.J { L : ; = Q ~ Bvisibility = "";
maski m u U 5_div.style.pos9 e X m pition = "abd ; 1 wsolute";
mask_div.style.left = x + 'px';
mask_div.style.top = y + 't s N ^px'^ S [ C $ D;
mask_div.st* - p C H 8 j k 7yle.overflow = "hidden";
mask_div.style.zIndex = "9999";
//让水印不遮挡页面的点击事件
mask_div.style.pointerEvents = 'none';
mask_div.style.opacity = defaultSettings.watei g # 7 @ : [ armark_alpha;
mask_div.style.fontSize = defaultSettings.watermark_fontsize;
mask_div.style.fontFamily = defaultSeo N n w r ! \ttings.watC X k ~ Mermark_font;
mask_div.style.color = defaultSettings.watermark_color;
mask_div.style.textAlign = "center";
mask_div.style.width = defaultSettings.watermark_width + 'px';
mask_div.style.height = defaultSettings.watermark_height + 'pY D l vx';
mask_div.style.display = "block";
oTemp.appendChild(mask_div);
};
};
ele.appendChild(oTemp);
}s u y


使用:
watermark({"watermark_text":"机密材料 不得外泄"})


整个界面添加水印

安装watermark-dom插件

npminstallwatermark-dom

在组件中引入

import watermark from ‘watermark-dom’

然后使用

前端界面添加水印,部分前端界面添加水印及整个界面添加水印

上一篇 2021年5月15日 下午4:23
下一篇 2021年5月15日 下午4:23