js页面添加水印

使用javaScript给网页制作背景水印 今天工作中遇到一个需求,给网页的背景添加上水印,这个东西对于我这种前端css渣渣来说还是有点难度的,哈哈,然后没办法,我在网上找了很多方法,尝试了很多次,最终找到了一个便于理解的方法,现在分享给大家。 阅读详情

//调用

waterMark({
waterMarkContent:'水印内容',
waterMarkId:'ttBody'//div元素的id
});

//主方法
function waterMark(markElement) {
$('#' + markElement.waterMarkId).find('.markElement').remove();
var settings = {
waterMarkId:"t1",
waterMarkContent:"水印内容",
waterMarkX:-10,
waterMarkY:40,
waterMarkRows:10,
waterMarkCols:20,
waterMarkXSpace:0,
waterMarkYSpace:0,
waterMarkColor:'#B0C4DE',
waterMarkAlpha:0.3,
waterMarkFontSize:'25px',
waterMarkFont:'微软雅黑',
waterMarkWidth:120,
waterMarkHeight:100,
waterMarkAngle:15
};
if(arguments.length === 1 && typeof arguments[0] === "object" ) {
var src = arguments[0]||{};
for(key in src) {
if(src[key]&&settings[key] && src[key] === settings[key])
continue;
else if(src[key])
settings[key] = src[key];
}
}
var obj = document.getElementById(settings.waterMarkId);
var tmpObj = document.createDocumentFragment();
var pageWidth = obj.offsetWidth;
var pageHeight = obj.offsetHeight ;
if (settings.waterMarkCols == 0 || (parseInt(settings.waterMarkX + settings.waterMarkWidth *settings.waterMarkCols + settings.waterMarkXSpace * (settings.waterMarkCols - 1)) > pageWidth)) {
settings.waterMarkCols = parseInt((pageWidth-settings.waterMarkX+settings.waterMarkXSpace) / (settings.waterMarkWidth + settings.waterMarkXSpace));
settings.waterMarkXSpace = parseInt((pageWidth - settings.waterMarkX - settings.waterMarkWidth * settings.waterMarkCols) / (settings.waterMarkCols - 1));
}
if (settings.waterMarkRows == 0 || (parseInt(settings.waterMarkY + settings.waterMarkHeight * settings.waterMarkRows + settings.waterMarkYSpace * (settings.waterMarkRows - 1)) > pageHeight)) {
settings.waterMarkRows = parseInt((settings.waterMarkYSpace + pageHeight - settings.waterMarkY) / (settings.waterMarkHeight + settings.waterMarkYSpace));
settings.waterMarkYSpace = parseInt(((pageHeight - settings.waterMarkY) - settings.waterMarkHeight * settings.waterMarkRows) / (settings.waterMarkRows - 1));
}
var x;
var y;
settings.waterMarkRows = settings.waterMarkRows == 0 ? 6 : settings.waterMarkRows;
for (var i = 0; i < settings.waterMarkRows-1; i++) {
y = settings.waterMarkY + (settings.waterMarkYSpace + settings.waterMarkHeight) * i;
y = isNaN(y) ? 40 : y;
for (var j = 0; j < settings.waterMarkCols; j++) {
x = settings.waterMarkX + (settings.waterMarkWidth + settings.waterMarkXSpace) * j;
var markElement = document.createElement('div');
markElement.id = 'markElement' + i + j;
markElement.appendChild(document.createTextNode(settings.waterMarkContent));
//设置水印div倾斜显示
markElement.style.webkitTransform = "rotate(-" + settings.waterMarkAngle + "deg)";
markElement.style.MozTransform = "rotate(-" + settings.waterMarkAngle + "deg)";
markElement.style.msTransform = "rotate(-" + settings.waterMarkAngle + "deg)";
markElement.style.OTransform = "rotate(-" + settings.waterMarkAngle + "deg)";
markElement.style.transform = "rotate(-" + settings.waterMarkAngle + "deg)";
markElement.style.visibility = "";
markElement.style.position = "absolute";
markElement.style.left = x + 'px';
markElement.style.top = y + 'px';
markElement.style.overflow = "hidden";
markElement.style.zIndex = "10";
markElement.style.opacity = settings.waterMarkAlpha;
markElement.style.fontSize = settings.waterMarkFontSize;
markElement.style.fontFamily = settings.waterMarkFont;
markElement.style.color = settings.waterMarkColor;
markElement.style.textAlign = "center";
markElement.style.width = settings.waterMarkWidth + 'px';
markElement.style.height = settings.waterMarkHeight + 'px';
markElement.style.display = "block";
markElement.style.filter = "alpha(opacity="+ settings.waterMarkAlpha*100 +")";
markElement.setAttribute("class","markElement");
tmpObj.appendChild(markElement);
};
};
obj.appendChild(tmpObj);
}

前端vue基于html2canva jspdf 实现前端页面加水印 并导出页面PDF view class="exportPdfBtn" @click="downKcReport()">导出PDF//如果将水印列数设置为0,或水印列数设置过大,超过页面最大宽度,则重新计算水印列数和水印x轴间隔。watermark_fontsize: '14px', //水印字体大小。watermark_y_space: 102, //水印y轴间隔。watermark_x_space: 80, //水印x轴间隔。watermark_font: '微软雅黑', //水印字体。 阅读详情

相关推荐

JS 添加背景水印(适用于 PC 端和移动端)

各位读者,由于本篇幅度过长,为了避免影响阅读体验,下面我就大概概括了整理了《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门即可获取!83)][外链图片转存中…(img-NTFfV4Aj-1712037318983)]《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门即可获取!

2401_84010784的博客 956

使用js给页面添加水印

1:、使用canvas绘制出水印的内容。2.、转换成base64格式的图片。3、最后给他添加到页面元素中。

Welcome to my csdn! 1941

SAP CO模块实战:成本中心会计分割结构配置全流程(OKES事务码详解)

本文详细解析了SAP CO模块中成本中心会计分割结构的配置全流程,重点讲解了OKES事务码的实战操作。内容涵盖分割结构的概念理解、配置前的次级成本要素与作业类型主数据准备,并通过步骤拆解演示了如何定义分割结构、规则与版本,以及如何将配置关联到成本中心并执行分割。最后提供了常见问题排查与优化建议,旨在帮助顾问及财务人员掌握成本精确分摊的关键配置,确保期末成本核算的准确性。

embedding5hiker的博客 805

js 给图片添加水印

1、把图片或者图片文件转成image元素。2、把转成的image转成canvas。3、在生成的canvas中添加水印。

weixin_41277748的博客 4359

Simulink与CANape联动教程:模型调试阶段如何快速标定参数观测信号

本文详细介绍了如何通过Simulink与CANape联动,实现模型参数的实时标定与信号观测,从而避免反复编译,提升开发效率。核心在于正确配置Simulink中的标定量与观测量,生成A2L描述文件,并利用XCP协议建立通信,为新能源汽车与自动驾驶系统的快速原型开发提供高效解决方案。

weixin_29006187的博客 378

【时空数据分析#06】实战:基于Python与ArcGIS的NDVI长期趋势制图与分级

本文详细介绍了基于Python与ArcGIS进行NDVI长期趋势制图与分级分析的完整工作流。通过整合MODIS卫星数据,利用ArcGIS进行空间处理与栅格转换,结合Python进行时序统计与趋势计算,最终生成直观的植被变化趋势分级图,为生态评估与环境监测提供可靠的空间分析工具。

lilh34434的博客 477

使用JS给页面添加水印效果

原文:https://www.cnblogs.com/Miracle-ZLZ/p/9340249.html 此方法可以给整个页面或某个div添加水印效果。 1、普通使用方式: $(document).ready(function() { var watermark_txt = "测试效果" + getDate(); watermark({"watermarl...

默存 6290

OpenLayers源码解析1 Map.js

Map.js 父类:./PluggableMap/PluggableMap 引用:5个模块 ./renderer/Composite.js ./PluggableMap.js ./obj.js ./control.js(控件) ./interaction.js(交互) 主要功能:核心组件,渲染地图 必要参数: view layers target controls和interactions要是未指定,使用默认值 方法:createRenderer()? /** * @module ol/Map */ i

qq_45005996的博客 1898

js为页面元素添加水印

  近期有需求为页面部分区域添加上水印,通过在网上找到了js为页面添加水印的方法,后来经过自己的改进,可以实现为页面部分元素添加水印,最终效果如下图:   代码如下: function water...

u011927449的博客 922

深入博通PEX89000内部:那颗ARM CPU和Synthetic Mode到底能玩出什么花样?

本文深入解析博通PEX89000系列PCIe交换芯片内置的ARM CPU与Synthetic Mode技术,揭示其在AI计算和数据中心的智能潜能。通过ARM Cortex CPU的实时控制和Synthetic Mode的自治网络功能,PEX89000实现了GPU集群的动态拓扑重组和资源池化,大幅提升AI训练效率。文章还探讨了该技术在软件定义数据平面和弹性AI架构中的创新应用。

weixin_30776273的博客 212

Android11车机系统海外项目资源包RRO方案优化

本文介绍了汽车设置应用如何通过Android RRO(运行时资源叠加)方案实现多车型差异化资源管理。针对不同车型(国内/海外、轿车/SUV)和配置(方向盘、轮毂等),采用产品变体(productFlavors)构建不同APK版本,并通过JSON配置文件动态启用对应资源包。系统根据车辆下线配置自动匹配适用的资源叠加包,解决了硬编码判断带来的维护问题。该方案实现了资源的高效复用,同时支持灵活配置多种车型组合,为汽车行业多车型共平台开发提供了可扩展的技术实现。

shusuanly的博客 469

80 行 JS 代码实现页面添加水印:文字水印、多行文字水印、图片水印、文字&图片水印

水印技术调研显示,水印在保护版权、信息标识和安全保护方面具有重要作用。通过CSS、JavaScript或第三方库,可以实现页面水印功能。过多或显眼的水印可能影响用户体验,而性能和兼容性也是考虑的因素。综合评估水印的利弊,可结合实际需求谨慎选择适合的实现方式。如果需求有更复杂的水印,可以按步骤去改即可。

guoqkmiss的博客 2169

Hadoop在大数据领域的电商数据分析案例

随着电商行业的迅猛发展,每天都会产生海量的数据,如用户浏览记录、购买行为、商品信息等。如何从这些数据中提取有价值的信息,为电商企业的决策提供支持,成为了电商企业面临的重要问题。Hadoop作为一个开源的分布式计算平台,具有高可靠性、高扩展性和高效性等特点,能够很好地处理大数据。本文的目的就是通过实际案例,详细介绍Hadoop在电商数据分析中的应用,范围涵盖了从数据采集、存储到分析的整个流程。本文首先介绍背景信息,让读者了解Hadoop在电商数据分析中的重要性和应用场景。

Java大师兄的博客 1178

[js]wp页面及图片添加水印

在wordpress实现添加自定义全站水印及图片水印

iwaspure的博客 623

第十五章数据管理成熟度评估【6’】(DAMA-CDGA 2022年以后历年模拟题真题汇总,基本包含所有考点。)

第十五章数据管理成熟度评估【6’】(DAMA-CDGA 2022年以后历年模拟题真题汇总,基本包含所有考点。)

JasonH2021的博客 405

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

h5页面利用js添加水印

转自:h5页面利用js添加水印_zz_chst的博客-优快云博客_js添加水印最近遇到一个需求,给所有页面加水印(登录人+登录时间),不影响其他点击等功能的使用,目的是防止信息外漏,当时就在想:这年头,PS就不说人人都能使用,谁手机还没个涂鸦功能,防不了,但是就是这么个需求,那就实现吧,不逼逼了,直接上:具体实现思路:在页面底部加一个大的div,给这个div添加背景图,背景图?从哪来?canvas实现吧!思路有了,直接上代码:(function waterMa...https://blog.csdn.ne

chance_66的博客 714

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

vue 原生JS实现给页面添加水印

vue 原生JS实现给页面添加水印。

DarlingYL的博客 936

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

vue项目 - 给页面添加水印

项目中需要个打印页面的功能 ,页面中需要水印 代码实现: 1.创建文件夹 watermark.js文件 注:可以自己设置属性 /** 水印添加方法 */ const setWatermark = (str1, str2) => { const id = '1.23452384164.123412415' if (document.getElementById(id) !== null) { document.body.removeChild(document.g

weixin_55042716的博客 2276

JS添加水印(自适应页面)

本文实现网页上添加水印,并Resize页面大小后,重新生成合适的水印。 创建watermark.js文件 let watermark = {} let setWatermark = (str) => { let id = '1.23452384164.123412416'; if (document.getElementById(id) !== null) { document.body.removeChild(document.getElementById(id));

sinat_36141399的博客 1812

前端页面添加水印

【代码】前端页面添加水印。

JJ_Blue_Sea_Sky的博客 139

js vue 页面添加水印

vue 微信页面添加水印 this.$nextTick(function() { watermark({ watermark_txt: "<div>" + '123' + "</div><div>" + '456' + "...

diewei7214的博客 1056

JS为页面添加水印效果

<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>水印</title> <style> #water-div{pointer-events:none;position:fixed;top:0;left:0;right:0;bottom:0;} .mask_div{pointer-events:none...

rhx_1989的专栏 1448

js中给页面添加水印方法

调用方法时传递的参数数量可以自行设置: watermark('参数1','参数2','参数3'); function watermark(t1, t2, t3) { var maxWidth = document.documentElement.clientWidth; var maxHeight = document.documentElement.clientHeight; // 间隔宽度 var intervalWidth = 2

不吃草的程序猿的博客 1625

JavaScript给html页面添加水印

js页面添加水印

m0_63873004的博客 1022
上一篇: JS实现 PHP 函数 (base64加解密)
下一篇: 国家信息安全等级保护三级认证(三级等保设置以及注意点)
masterphp
博客等级 码龄5年 247粉丝 75原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值