html5中如何实现SDK水印
本篇内容主要讲解“html5中如何实现SDK水印”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“html5中如何实现SDK水印”吧!
网页水印SDK,实现思路
1.能更具获取到的当前用户信息,如名字,昵称,ID等,生成水印
2.生成一个Canvas,覆盖整个窗口,并且不影响其他元素
3.可以修改字体间距,大小,颜色
4.不依赖Jquery
5.需要防止用户手动删除这个Canvas
实现分析
初始参数
size:字体大小color:字体颜色id:canvasIdtext:文本内容density:间距clarity:清晰度supportTip:Canvas不支持的文字提示
生成Canvas
根据id生成Canvas,画布大小为window.screen大小,若存在原有老的Canvas,清除并重新生成。
画布固定定位在可视窗口,z-index为-1
letbody=document.getElementsByTagName('body');letcanvas=document.createElement('canvas');canvas.style.cssText='position:fixed;width:100%;height:100%;left:0;top:0;z-index:-1;';body[0].appendChild(canvas);
指纹生成算法
letcanvas=document.getElementById(this.params.id);letcxt=canvas.getContext('2d');lettimes=window.screen.width*this.params.clarity/this.params.density;//横向文字填充次数letheightTimes=window.screen.height*this.params.clarity*1.5/this.params.density;//纵向文字填充次数cxt.rotate(-15*Math.PI/180);//倾斜画布for(leti=0;i<times;i++){for(letj=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);}}
防止用户删除
使用定时器,定时检查指纹是否存在
letself=this;window.setInterval(function(){if(!document.getElementById(self.params.id)){self._init();}},1000);
项目编译
使用glup编译
vargulp=require('gulp'),uglify=require("gulp-uglify"),babel=require("gulp-babel");gulp.task('minify',function(){returngulp.src('./src/index.js')//要压缩的js文件.pipe(babel()).pipe(uglify()).pipe(gulp.dest('./dist'));//压缩后的路径});
到此,相信大家对“html5中如何实现SDK水印”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。