使用JS在图片上添加水印效果的实现方法
5星 · 超过95%的资源 需积分: 34 177 浏览量
更新于2024-12-03
6
收藏 1KB TXT 举报
"这篇文章主要介绍了如何使用JavaScript通过创建层(layer)来实现在图片上添加水印的效果。通过JavaScript获取图片的位置信息,然后创建一个绝对定位的div元素作为水印层,放置在图片上方,从而实现水印效果。同时,当窗口大小改变时,页面会自动重载以适应新的布局。"
在网页设计中,添加水印是一种常见的需求,它可以用来保护版权或增加品牌标识。本文介绍的方法是利用JavaScript动态生成水印,这相比静态添加水印更加灵活,可以适应不同尺寸的图片和页面布局。
首先,我们分析提供的代码片段。在HTML部分,可以看到存在多个`<img>`标签用于显示图片。每个图片都有一个唯一的ID,例如`MyImage2`、`MyImage3`等,这是为了方便JavaScript访问这些元素。
接着是JavaScript部分:
1. `getDim(el)` 函数:这个函数用于获取指定元素(在这里是图片)相对于文档的左上角的坐标。它通过遍历元素的offsetParent属性,累加offsetLeft和offsetTop值,直到没有父元素为止。返回一个对象,包含x和y两个属性,表示元素的左上角坐标。
2. `createLayer(el)` 函数:这是实现水印的核心函数。它接收一个图片元素作为参数,调用`getDim()`获取图片的位置,然后在文档中插入一个`<div>`元素,设置其样式为绝对定位,z-index设为1(确保水印层位于图片上方),并将其位置设置为与图片相同。`<div>`的内容是水印文本(在示例中为"ˮӡ")。
3. `window.onresize` 事件处理函数:当浏览器窗口大小发生变化时,页面会重新加载,确保水印仍然与图片对齐。
最后,代码中`createLayer()`函数被调用,传入`document.images.MyImage2`作为参数,为这个图片添加水印。其他图片如`MyImage3`、`MyImage4`等,如果需要添加水印,也可以按相同方式调用`createLayer()`。
总结一下,通过这种方式实现图片水印,我们需要:
1. 定义图片元素,并为其分配唯一的ID。
2. 编写JavaScript函数,获取图片的位置信息,并创建一个覆盖在图片上的绝对定位div,作为水印层。
3. 在窗口大小变化时,重新加载页面以保持水印与图片的对齐。
4. 调用`createLayer()`函数,传入图片元素,为每个需要添加水印的图片执行此操作。
这种方法适用于动态生成水印,但需要注意,由于是动态创建,所以水印不会在页面加载时立即可见,可能需要一些时间。另外,这种方法不适用于图片的打印或者右键保存,如果需要防止图片被盗用,还需要结合服务器端的处理。
2021-01-11 上传
2020-12-02 上传
点击了解资源详情
点击了解资源详情
2020-10-29 上传
2019-09-25 上传
点击了解资源详情
点击了解资源详情
fdsss
- 粉丝: 0
- 资源: 6
最新资源
- 西门子PLC工程实例源码第149期:s7-300工业过程控制程序案例.rar
- coco-manager:用于管理COCO数据集的Python脚本
- SagamoreTrade
- assignment:作业1
- discord-disconnect-users-v11:V11中的脚本可断开公会中的所有用户的连接
- 行业文档-设计装置-双轴斜式成槽机.zip
- scofield-blog:学生博客练习
- FtpClient:作为 Android 的cordova 插件实现的ftp 客户端
- SoftwareDevWeb:网络软件开发
- Macarbi:股票和价格跟踪应用程序
- 4-basic-classifiers-IRIS-dataset-Machine-Learning
- Tomcat压缩包,直接解压,打开bin目录的startup文件,不会乱码。
- 临床医学
- 在不安装bijoy软件的情况下以bijoy规则编写孟加拉Unicode
- Java-俩数的和.zip
- load-bid:设置您的负载出价