| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- const watermark = {}
- const setWatermark = (str = null, str1 = null) => { // 传入多个str 或者传入一个对象
- const id = '1.23452384164.123412415'
- if (document.getElementById(id) !== null) {
- document.body.removeChild(document.getElementById(id))
- }
- const can = document.createElement('canvas')
- can.width = 420
- can.height = 300
- const cans = can.getContext('2d')
- cans.rotate(-20 * Math.PI / 180)
- cans.font = '22px Vedana'
- cans.fillStyle = '#E7ECF0'
- cans.textAlign = 'left'
- cans.textBaseline = 'Middle'
- cans.fillText(str, can.width / 20, can.height / 1.5)
- cans.fillText(str1, can.width / 20, can.height / 1.3) // 这里渲染多行就可以展示多行,具体效果看上图,这里要调整高度的比例就可以做到换行的效果
- const div = document.createElement('div')
- div.id = id
- div.style.pointerEvents = 'none'
- div.style.top = '80px'
- div.style.left = '150px'
- div.style.position = 'fixed'
- div.style.zIndex = '-100000' // 这里设置层级 设为负值可以在页面下层
- div.style.width = document.documentElement.clientWidth - 100 + 'px'
- div.style.height = document.documentElement.clientHeight - 100 + 'px'
- div.style.background = 'url(' + can.toDataURL('image/png') + ') left top repeat'
- document.body.appendChild(div)
- return id
- }
- // 该方法只允许调用一次
- watermark.set = (str, str1) => { // 这里要把传入的参数传进来
- let id = setWatermark(str, str1)
- setInterval(() => {
- if (document.getElementById(id) === null) {
- id = setWatermark(str, str1)
- }
- }, 500)
- window.onresize = () => {
- setWatermark(str, str1)
- }
- }
- export default watermark
|