介绍
这篇文章将为大家详细讲解有关HTML5中如何实现网页水印SDK,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
<强>网页水印SDK,实现思路强>
1。能更具获取到的当前用户信息,如名字,昵称,身份证等,生成水印
2。生成一个画布,覆盖整个窗口,并且不影响其他元素
3。可以修改字体间距,大,小颜色
4。不依赖Jquery
5。需要防止用户手动删除这个帆布
<强>实现分析强>
<强>初始参数强>
大小:,字体大小 颜色:,字体颜色 id: canvasId 文本:文本内容 密度:间距 清晰:清晰度 supportTip:帆布不支持的文字提示
<强>生成画布强>
根据id生成画布,画布大小为窗口。大屏幕小,若存在原有老的画布,清除并重新生成。
画布固定定位在可视窗口,z - index为1
,, let body =, document.getElementsByTagName(& # 39;身体# 39;); ,,,let canvas =, document.createElement(& # 39;帆布# 39;); ,,,canvas.style.cssText=, & # 39;位置:,固定,宽度:,100%;高度:,100%;左:0;:0;z - index:, 1; & # 39;; ,,,身体[0].appendChild(画布);
<强>指纹生成算法强>
, let canvas =, . getelementbyid (this.params.id); ,,,,,let cxt =, canvas.getContext (& # 39; 2 d # 39;); ,,,,,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),,//倾斜画布 ,, ,,,,,,(let 小姐:=,0;,小姐:& lt;,,,我+ +),{ ,,,,,,,,(let j =, 0;, j & lt;, heightTimes;, j + +), { ,,,,,,,,,cxt.fillStyle =, this.params.color; ,,,,,,,,,cxt.font =, this.params.size +, & # 39;, arial # 39;; ,,,,,,,,,cxt.fillText (this.params.text, this.params.density *我,j * this.params.density); ,,,,,,,} ,,,,,}
<>强防止用户删除强>
使用定时器,定时检查指纹是否存在
,, let self =,; ,,,setinterval(函数(){ ,,,if (! . getelementbyid (self.params.id)), { ,,,self._init (); ,,,} ,,,},,1000);
<强>项目编译强>
使用glup编译
,, var gulp =,要求(& # 39;杯# 39;), ,,,,,,,uglify =,要求(“gulp-uglify"), ,,,,,,,babel =,要求(“gulp-babel"); ,,,gulp.task(& # 39;贬低# 39;,,function (), { ,,,,,,,return gulp.src (& # 39;。/src/index.js& # 39;),//,要压缩的js文件 ,,,,,,,.pipe(巴别塔()) ,,,,,,,.pipe(糟蹋()) ,,,,,,,.pipe (gulp.dest (& # 39;。/dist # 39;)),,//压缩后的路径 ,,,});
<强>指纹效果强>
关于“HTML5中如何实现网页水印SDK”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看的到。