发布网友 发布时间:2022-04-22 00:07
共3个回答
懂视网 时间:2022-05-14 16:32
本篇文章给大家带来的内容是关于网页水印SDK的实现方法介绍(代码示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。在网站浏览中,常常需要网页水印,以便防止用户截图或录屏暴露敏感信息后,追踪用户来源。如我们常用的钉钉软件,聊天背景就会有你的名字。那么如何实现网页水印效果呢?
网页水印SDK,实现思路
1.能更具获取到的当前用户信息,如名字,昵称,ID等,生成水印
2.生成一个Canvas,覆盖整个窗口,并且不影响其他元素
3.可以修改字体间距,大小,颜色
4.不依赖Jquery
5.需要防止用户手动删除这个Canvas
实现分析
初始参数
size: 字体大小 color: 字体颜色 id: canvasId text: 文本内容 density: 间距 clarity: 清晰度 supportTip: Canvas不支持的文字提示
根据id生成Canvas,画布大小为window.screen大小,若存在原有老的Canvas,清除并重新生成。
画布固定定位在可视窗口,z-index为-1
let body = document.getElementsByTagName('body'); let canvas = document.createElement('canvas'); canvas.style.cssText= 'position: fixed;width: 100%;height: 100%;left:0;top:0;z-index: -1;'; body[0].appendChild(canvas);
let canvas = document.getElementById(this.params.id); let cxt = canvas.getContext('2d'); let times = window.screen.width * this.params.clarity / this.params.density;//横向文字填充次数 let heightTimes = window.screen.height * this.params.clarity * 1.5/ this.params.density; //纵向文字填充次数 cxt.rotate(-15*Math.PI/180); //倾斜画布 for(let i = 0; i < times; i++) { for(let j = 0; j < heightTimes; j++) { cxt.fillStyle = this.params.color; cxt.font = this.params.size + ' Arial'; cxt.fillText(this.params.text, this.params.density*i, j*this.params.density); } }
使用定时器,定时检查指纹是否存在
let self = this; window.setInterval(function(){ if (!document.getElementById(self.params.id)) { self._init(); } }, 1000);
使用glup编译
var gulp = require('gulp'), uglify = require("gulp-uglify"), babel = require("gulp-babel"); gulp.task('minify', function () { return gulp.src('./src/index.js') // 要压缩的js文件 .pipe(babel()) .pipe(uglify()) .pipe(gulp.dest('./dist')); //压缩后的路径 });
热心网友 时间:2022-05-14 13:40
网页图片中添加水印有两种方法:
一、给每一张需要上传的网站用ps软件手动添加水印。
二、网站系统后台设置自动添加水印,例如织梦网站系统后台设置水印的步骤是:系统----系统基本参数----附件设置-----图集是否使用水印(小图也会受影响),选择是
网站系统后台大部分都有,需要设置水印,可按照自己网站的后台设置。
热心网友 时间:2022-05-14 14:58
从传统意义上讲,水印是用来鉴别真假的,因为他们的存在并不影响印刷在该页上内容的清晰度。后来把水印的概念引入数字时代。在页面制作时利用这个技巧,在页面上就可以做出一个半透明的标志,它就像的悬浮在页面上一样。尽管这很麻烦,但能产生非常漂亮的效果。这里有几种在主页上产生水印效果的方法。例如,如果访问者使用的是IE浏览器,只需用<BODY background=graphic/g.gif bgprgperties=fixed就可产生水印效果。但这对Navigator不适用,它会自动地将图片平铺显示。为了兼顾不同的浏览器,必须使用动态HTML来实现这个功能。GeoCities采用服务器端来检测访问者使用的浏览器,并针对不同的浏览器(IE或Navigate)采用不同的实现方法。下面是一种单一的客户端脚本,它能在上述两种浏览器上工作,甚至还可以给用户更大的选择余地。第一步,创建或设计水印图案。它可以是支持任何HTML语言的图像格式,尽管图像的尺寸是准确的,还必须将它的尺寸提供给脚本。同时还需花时间从页面的整体上来考虑水印的设计。水印是否设计为透明的?是否要和背景色协调?应该有多大?建议这一步一定要细心,以免遮蔽页面或扰乱访问者的注意力。第二步,确定把水印放在不支持DHTML浏览器的何处(比如说底部)。然后在<DIV标记中嵌入属性id=watermark,stytle=position:absolute。第三步,在包含水印的<DIV容器之后添加该脚本,这样就可以实现水印效果。较好的位置是放在结束的</BODY标记前。这样就可以在不同的浏览器的网页中添加水印效果了,注意其中对水印效果的宽度位置和像素等就需要设计者根据需要来进行设计。