| body, |
| html { |
| margin: 0; |
| height: 100vh; |
| width: 100vw; |
| } |
复制
| |
| const setting = { |
| text: "水印文案", |
| innerDate: true, |
| width: 110, |
| }; |
| |
| |
| const watermark = (function () { |
| return { |
| build: function (arg) { |
| |
| let maxWidth = |
| Math.max(document.body.scrollWidth, window.screen.width) - 20; |
| |
| let maxHeight = |
| Math.max(document.body.scrollHeight, document.body.clientHeight) + |
| 100; |
| if (maxHeight === 0) { |
| console.info("该页面无需水印"); |
| return; |
| } |
| const setting = { |
| text: "水印 水印 水印", |
| beginX: 50, |
| endX: 0, |
| beginY: 50, |
| endY: 0, |
| intervalX: 150, |
| intervalY: 100, |
| opacity: 0.3, |
| angle: 20, |
| fontsize: "15px", |
| fontFamily: "微软雅黑", |
| width: 100, |
| height: 80, |
| innerDate: false, |
| }; |
| |
| if (arguments.length === 1 && typeof arguments[0] === "object") { |
| const src = arguments[0] || {}; |
| for (const key in src) { |
| if (!src.hasOwnProperty(key) || !src[key]) { |
| continue; |
| } |
| for (const def in setting) { |
| if (key === def) { |
| setting[def] = src[key]; |
| } |
| } |
| } |
| } |
| |
| const cols = parseInt( |
| (setting.intervalX + maxWidth - setting.beginX - setting.endX) / |
| (setting.width + setting.intervalX) + |
| "" |
| ); |
| |
| const rows = parseInt( |
| (setting.intervalY + maxHeight - setting.beginY - setting.endY) / |
| (setting.height + setting.intervalY) + |
| "" |
| ); |
| |
| if (setting.innerDate) { |
| const date = new Date(); |
| setting.text = [ |
| setting.text, |
| "<br>", |
| date.getFullYear(), |
| "年", |
| date.getMonth() + 1, |
| "月", |
| date.getDate(), |
| "日", |
| ].join(""); |
| } |
| const fragment = document.createDocumentFragment(); |
| let x, y; |
| for (let i = 0; i < rows; i++) { |
| y = setting.beginY + (setting.intervalY + setting.height) * i; |
| for (let j = 0; j < cols; j++) { |
| x = setting.beginX + (setting.width + setting.intervalX) * j; |
| const element = document.createElement("div"); |
| element.id = "watermark" + i + j; |
| |
| element.style.MozTransform = |
| "rotate(-" + setting.angle + "deg)"; |
| element.style.msTransform = "rotate(-" + setting.angle + "deg)"; |
| element.style.OTransform = "rotate(-" + setting.angle + "deg)"; |
| element.style.transform = "rotate(-" + setting.angle + "deg)"; |
| element.style.position = "absolute"; |
| element.style.left = x + "px"; |
| element.style.top = y + "px"; |
| element.style.overflow = "hidden"; |
| element.style.zIndex = "9999"; |
| element.style.pointerEvents = "none"; |
| element.style.opacity = setting.opacity; |
| element.style.fontSize = setting.fontsize; |
| element.style.fontFamily = setting.fontFamily; |
| element.style.color = "#aaa"; |
| element.style.textAlign = "center"; |
| element.style.width = setting.width + "px"; |
| element.style.height = setting.height + "px"; |
| element.style.display = "block"; |
| element.innerHTML = setting.text; |
| fragment.appendChild(element); |
| } |
| } |
| document.body.appendChild(fragment); |
| }, |
| }; |
| })(); |
| watermark.build(setting); |
复制

超链接:图片水印