短视频平台开发,在上传图片时,自动添加平台的水印
短视频平台开发,在上传图片时,自动添加平台的水印实现的相关代码
1、普通使用方式:
1 | <br>$(document).ready( function () {<br> var watermark_txt = "测试效果" + getDate ();<br> watermark({ "watermarl_element" : "watermark-wrapper" , "watermark_txt" :watermark_txt}); <br>}); |
注:watermark-wrapper是div的id名称。
2、如果项目中有ajax请求,等待所有ajax请求结束后再去加载,这样可以避免div存在滚动条时水印显示不全
1 | <br> $(document).ready( function () {<br> var watermark_txt = "测试效果" + getDate ();<br> $.when($.ajax(), $.ajax()).then( function (){<br> watermark({ "watermarl_element" : "watermark-wrapper" , "watermark_txt" :watermark_txt});<br> });<br> }); |
3、代码
1 | <!DOCTYPE html><br><html><br><head><br> <meta charset= "UTF-8" ><br> <title>页面添加水印</title><br> <script src= "js/jquery.js" ></script><br> <style><br> .watermark-wrapper{<br> height: 1000px;<br> }<br> </style><br></head><br><body><br><div id= "watermark-wrapper" ><br> <br></div><br> <br></body><br><script><br> <br> $(document).ready( function () {<br> var watermark_txt = "测试效果" + getDate ();<br> watermark({ "watermarl_element" : "watermark-wrapper" , "watermark_txt" :watermark_txt});<br> });<br> <br> function watermark(settings) {<br> //默认设置<br> var defaultSettings={<br> watermarl_element:"body",<br> watermark_txt:"",<br> watermark_x:10,//水印起始位置x轴坐标<br> watermark_y:10,//水印起始位置Y轴坐标<br> watermark_rows:2000,//水印行数<br> watermark_cols:2000,//水印列数<br> watermark_x_space:50,//水印x轴间隔<br> watermark_y_space:50,//水印y轴间隔<br> watermark_color:'#d7d7d7',//水印字体颜色<br> watermark_alpha:0.5,//水印透明度<br> watermark_fontsize:'15px',//水印字体大小<br> watermark_font:'微软雅黑',//水印字体<br> watermark_width:500,//水印宽度<br> watermark_height:50,//水印长度<br> watermark_angle:15//水印倾斜度数<br> };<br> //采用配置项替换默认值,作用类似jquery.extend<br> if(arguments.length===1&&typeof arguments[0] ==="object" ) {<br> var src=arguments[0]||{};<br> for(key in src) {<br> if(src[key]&&defaultSettings[key]&&src[key]===defaultSettings[key]){<br> continue;<br> } else if(src[key]){<br> defaultSettings[key]=src[key];<br> }<br> }<br> }<br> <br> var oTemp = document.createDocumentFragment();<br> <br> var maskElement=document.getElementById(defaultSettings.watermarl_element) || document.body;<br> //获取页面最大宽度<br> var page_width = Math.max(maskElement.scrollWidth,maskElement.clientWidth);<br> //获取页面最大高度<br> var page_height = Math.max(maskElement.scrollHeight,maskElement.clientHeight,maskElement.scrollTop);<br> //水印数量自适应元素区域尺寸<br> defaultSettings.watermark_cols=Math.ceil(page_width/(defaultSettings.watermark_x_space+defaultSettings.watermark_width));<br> defaultSettings.watermark_rows=Math.ceil(page_height/(defaultSettings.watermark_y_space+defaultSettings.watermark_height));<br> var x;<br> var y;<br> for (var i = 0; i < defaultSettings.watermark_rows; i++) {<br> y = defaultSettings.watermark_y + (defaultSettings.watermark_y_space + defaultSettings.watermark_height) * i;<br> for (var j = 0; j < defaultSettings.watermark_cols; j++) {<br> x = defaultSettings.watermark_x + (defaultSettings.watermark_width + defaultSettings.watermark_x_space) * j;<br> var mask_div = document.createElement('div');<br> mask_div.id = 'mask_div' + i + j;<br> mask_div.className = 'mask_div';<br> //mask_div.appendChild(document.createTextNode(defaultSettings.watermark_txt));<br> mask_div.innerHTML=(defaultSettings.watermark_txt);<br> //设置水印div倾斜显示<br> mask_div.style.webkitTransform = "rotate(-" + defaultSettings.watermark_angle + "deg)";<br> mask_div.style.MozTransform = "rotate(-" + defaultSettings.watermark_angle + "deg)";<br> mask_div.style.msTransform = "rotate(-" + defaultSettings.watermark_angle + "deg)";<br> mask_div.style.OTransform = "rotate(-" + defaultSettings.watermark_angle + "deg)";<br> mask_div.style.transform = "rotate(-" + defaultSettings.watermark_angle + "deg)";<br> mask_div.style.visibility = "";<br> mask_div.style.position = "absolute";<br> mask_div.style.left = x + 'px';<br> mask_div.style.top = y + 'px';<br> mask_div.style.overflow = "hidden";<br> mask_div.style.zIndex = "1029"; // 9999<br> // pointer-events:none 让水印不遮挡页面的点击事件<br> mask_div.style.pointerEvents='none';<br> // 设置边框<br> // mask_div.style.border="solid #eee 1px";<br> // 兼容IE9以下的透明度设置<br> mask_div.style.filter="alpha(opacity=50)";<br> mask_div.style.opacity = defaultSettings.watermark_alpha;<br> mask_div.style.fontSize = defaultSettings.watermark_fontsize;<br> mask_div.style.fontFamily = defaultSettings.watermark_font;<br> mask_div.style.color = defaultSettings.watermark_color;<br> mask_div.style.textAlign = "center";<br> mask_div.style.width = defaultSettings.watermark_width + 'px';<br> mask_div.style.height = defaultSettings.watermark_height + 'px';<br> mask_div.style.display = "block";<br> oTemp.appendChild(mask_div);<br> };<br> };<br> maskElement.appendChild(oTemp);<br> }<br> <br> function getDate() {<br> var d = new Date();<br> var year = d.getFullYear() >= 10 ? d.getFullYear() : ('0'+d.getFullYear());<br> var month = d.getMonth()+1 >= 10 ? d.getMonth()+1 : ('0'+d.getMonth()+1);<br> var day = d.getDate() >= 10 ? d.getDate() : ('0'+d.getDate());<br> var hour = d.getHours() >= 10 ? d.getHours() : ('0'+d.getHours());<br> var minute = d.getMinutes() >= 10 ? d.getMinutes() : ('0'+d.getMinutes());<br> var second = d.getSeconds() >= 10 ? d.getSeconds() : ('0'+d.getSeconds());<br> return year+"-"+month+"-"+day+" "+hour+":"+minute+":"+second;<br> }<br> <br></script><br></html> |
以上就是短视频平台开发,在上传图片时,自动添加平台的水印实现的相关代码, 更多内容欢迎关注之后的文章
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现