通过js给网页加上水印背景实例


Posted in Javascript onJune 17, 2019

水印方法

export function watermark(settings) {
//默认设置
let defaultSettings={
watermark_txt:"text",
watermark_x:20,//水印起始位置x轴坐标
watermark_y:20,//水印起始位置Y轴坐标
watermark_rows:20,//水印行数
watermark_cols:20,//水印列数
watermark_x_space:100,//水印x轴间隔
watermark_y_space:50,//水印y轴间隔
watermark_color:'#aaa',//水印字体颜色
watermark_alpha:0.4,//水印透明度
watermark_fontsize:'15px',//水印字体大小
watermark_font:'微软雅黑',//水印字体
watermark_width:210,//水印宽度
watermark_height:80,//水印长度
watermark_angle:15//水印倾斜度数
};
Object.assign(defaultSettings, settings);
let oTemp = document.createDocumentFragment();
//获取页面最大宽度
let p_width = Math.max(document.body.scrollWidth,document.body.clientWidth);
let cutWidth = p_width*0.0150;
let page_width=p_width-cutWidth;
//获取页面最大高度
let page_height = Math.max(document.body.scrollHeight,document.body.clientHeight)+450;
// let page_height = document.body.scrollHeight+document.body.scrollTop;
//如果将水印列数设置为0,或水印列数设置过大,超过页面最大宽度,则重新计算水印列数和水印x轴间隔
if (defaultSettings.watermark_cols === 0 || (parseInt(defaultSettings.watermark_x + defaultSettings.watermark_width *defaultSettings.watermark_cols + defaultSettings.watermark_x_space * (defaultSettings.watermark_cols - 1)) > page_width)) {
defaultSettings.watermark_cols = parseInt((page_width-defaultSettings.watermark_x+defaultSettings.watermark_x_space) / (defaultSettings.watermark_width + defaultSettings.watermark_x_space));
defaultSettings.watermark_x_space = parseInt((page_width - defaultSettings.watermark_x - defaultSettings.watermark_width * defaultSettings.watermark_cols) / (defaultSettings.watermark_cols - 1));
}
//如果将水印行数设置为0,或水印行数设置过大,超过页面最大长度,则重新计算水印行数和水印y轴间隔
if (defaultSettings.watermark_rows === 0 || (parseInt(defaultSettings.watermark_y + defaultSettings.watermark_height * defaultSettings.watermark_rows + defaultSettings.watermark_y_space * (defaultSettings.watermark_rows - 1)) > page_height)) {
defaultSettings.watermark_rows = parseInt((defaultSettings.watermark_y_space + page_height - defaultSettings.watermark_y) / (defaultSettings.watermark_height + defaultSettings.watermark_y_space));
defaultSettings.watermark_y_space = parseInt(((page_height - defaultSettings.watermark_y) - defaultSettings.watermark_height * defaultSettings.watermark_rows) / (defaultSettings.watermark_rows - 1));
}
let x;
let y;
for (let i = 0; i < defaultSettings.watermark_rows; i++) {
y = defaultSettings.watermark_y + (defaultSettings.watermark_y_space + defaultSettings.watermark_height) * i;
for (let j = 0; j < defaultSettings.watermark_cols; j++) {
x = defaultSettings.watermark_x + (defaultSettings.watermark_width + defaultSettings.watermark_x_space) * j;
let mask_div = document.createElement('div');
mask_div.id = 'mask_div' + i + j;
mask_div.className = 'mask_div';
mask_div.appendChild(document.createTextNode(defaultSettings.watermark_txt));
//设置水印div倾斜显示
mask_div.style.webkitTransform = "rotate(-" + defaultSettings.watermark_angle + "deg)";
mask_div.style.MozTransform = "rotate(-" + defaultSettings.watermark_angle + "deg)";
mask_div.style.msTransform = "rotate(-" + defaultSettings.watermark_angle + "deg)";
mask_div.style.OTransform = "rotate(-" + defaultSettings.watermark_angle + "deg)";
mask_div.style.transform = "rotate(-" + defaultSettings.watermark_angle + "deg)";
mask_div.style.visibility = "";
mask_div.style.position = "absolute";
mask_div.style.left = x + 'px';
mask_div.style.top = y + 'px';
mask_div.style.overflow = "hidden";
mask_div.style.zIndex = "9999";
mask_div.style.pointerEvents='none';//pointer-events:none 让水印不遮挡页面的点击事件
mask_div.style.opacity = defaultSettings.watermark_alpha;
mask_div.style.fontSize = defaultSettings.watermark_fontsize;
mask_div.style.fontFamily = defaultSettings.watermark_font;
mask_div.style.color = defaultSettings.watermark_color;
mask_div.style.textAlign = "center";
mask_div.style.width = defaultSettings.watermark_width + 'px';
mask_div.style.height = defaultSettings.watermark_height + 'px';
mask_div.style.display = "block";
oTemp.appendChild(mask_div);
};
};
document.body.appendChild(oTemp);
}

使用方法

import { watermark } from './../common/watermark';
watermark({watermark_txt: '你要添加的水印'});

效果演示

通过js给网页加上水印背景实例

源码地址

https://github.com/artdong/antd-admin

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
关于使用runtimeStyle属性问题讨论文章
Mar 08 Javascript
判断脚本加载是否完成的方法
May 26 Javascript
如何在指定的地方插入html内容和文本内容
Dec 23 Javascript
浅析js设置控件的readonly与enabled属性问题
Dec 25 Javascript
JS中如何实现复选框全选功能
Dec 19 Javascript
vue.js从安装到搭建过程详解
Mar 17 Javascript
动态统计当前输入内容的字节、字符数的实例详解
Oct 27 Javascript
JavaScript 日期时间选择器一些小结
Apr 02 Javascript
node.js遍历目录的方法示例
Aug 01 Javascript
基于js实现数组相邻元素上移下移
May 19 Javascript
vue3.0搭配.net core实现文件上传组件
Oct 29 Javascript
JavaScript this关键字的深入详解
Jan 14 Javascript
JavaScript 扩展运算符用法实例小结【基于ES6】
Jun 17 #Javascript
通过实例解析js简易模块加载器
Jun 17 #Javascript
如何从头实现一个node.js的koa框架
Jun 17 #Javascript
javascript定时器的简单应用示例【控制方块移动】
Jun 17 #Javascript
深入解析koa之异步回调处理
Jun 17 #Javascript
JS中数据结构与算法---排序算法(Sort Algorithm)实例详解
Jun 17 #Javascript
详解element-ui设置下拉选择切换必填和非必填
Jun 17 #Javascript
You might like
如何使用php输出时间格式
2013/08/31 PHP
浅析get与post的一些特殊情况
2014/07/28 PHP
Redis使用Eval多个键值自增的操作实例
2016/11/04 PHP
thinkPHP5框架auth权限控制类与用法示例
2018/06/12 PHP
PHP call_user_func和call_user_func_array函数的简单理解与应用分析
2019/11/25 PHP
表格 隔行换色升级版
2009/11/07 Javascript
js+html+css实现鼠标移动div实例
2013/01/30 Javascript
捕获浏览器关闭、刷新事件不同情况下的处理方法
2013/06/02 Javascript
基于jquery实现的文字淡入淡出效果
2013/11/14 Javascript
javascript中new关键字详解
2015/12/14 Javascript
微信小程序 location API实例详解
2016/10/02 Javascript
实现easyui的datagrid导出为excel的示例代码
2016/11/10 Javascript
详解JS-- 浮点数运算处理
2016/11/28 Javascript
nodejs根据ip数组在百度地图中进行定位
2017/03/06 NodeJs
Bootstrap fileinput文件上传组件使用详解
2017/06/06 Javascript
angularjs2中父子组件的数据传递的实例代码
2017/07/05 Javascript
seajs中模块依赖的加载处理实例分析
2017/10/10 Javascript
vue实现未登录跳转到登录页面的方法
2018/07/17 Javascript
Node.js中Koa2在控制台输出请求日志的方法示例
2019/05/02 Javascript
Vue学习之axios的使用方法实例分析
2020/01/06 Javascript
简单介绍Python中的decode()方法的使用
2015/05/18 Python
python for 循环获取index索引的方法
2019/02/01 Python
python调用自定义函数的实例操作
2019/06/26 Python
Python TCP通信客户端服务端代码实例
2019/11/21 Python
Anaconda3中的Jupyter notebook添加目录插件的实现
2020/05/18 Python
python:HDF和CSV存储优劣对比分析
2020/06/08 Python
Python urllib3软件包的使用说明
2020/11/18 Python
美国时尚孕妇装品牌:A Pea in the Pod
2017/07/16 全球购物
编码转换,怎样实现将GB2312编码的字符串转换为ISO-8859-1编码的字符串
2014/01/07 面试题
优秀电子工程系毕业生求职信
2014/05/24 职场文书
医学生求职信
2014/07/01 职场文书
解放思想大讨论活动心得体会
2014/09/11 职场文书
2016新年慰问信范文
2015/03/25 职场文书
2015年村计划生育工作总结
2015/04/28 职场文书
2015年小学数学教师个人工作总结
2015/05/25 职场文书
创业计划书之美容店
2019/09/16 职场文书