Fork me on GitHub

1. 水印图片生成采用svg,这样可以运行时生成名字或其他信息的图片

svg模板

<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="300px" height="160px" viewBox="0 0 300 160">
    <text x="-100" y="-30" fill='#000'  transform = "rotate(-35 240 -200)" fill-opacity='0.03' font-size='40'>I love SVG</text>
</svg>

一定要记得设置透明度(fill-opacity),否则水印会遮挡正文

svg需要转码: https://codepen.io/huashiyiqike/pen/rERBeJ

2. 通过css覆盖在整个页面上

水印元素放到页面大小的容器的最后面

父元素:
position: relative;
水印元素
position: absolute; top: 0; bottom: 0; // 整体覆盖 left: 0; width: 100%; height: 100%; z-index: 100; pointer-events: none; // 对鼠标穿透

3. 通过js拼接svg,并写入模板或者html

js: 
this.watermarkstyle = `background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='200px' height='160px' viewBox='0 0 200 160'%3E %3Ctext x='-100' y='-30' fill='%23000' transform = 'rotate(-35 240 -200)' fill-opacity='0.04' font-size='40'%3E${ this.$store.state.authUser.username }%3C/text%3E %3C/svg%3E ")`

html:
<div class="watermark" :style="watermarkstyle"></div>

 

posted on 2019-07-11 18:16  huashiyiqike  阅读(1162)  评论(0编辑  收藏  举报