web建站教程
  1. 首页
  2. vuejs
  3. js
  4. 好玩
  5. seo教程
  6. 前端知识
  7. 百度echarts
  8. 更多
    php入门
    nodejs
    mockjs
    reactjs
    mysql
    wordpress
    织梦cms
    帝国cms
    git教程
    IT知识
    模板大全
    休息站

介绍一个水印插件watermark(不遮挡底部元素)

652 ℃
     

下面web建站小编给大家简单介绍一个水印插件watermark,这个插件不遮挡底部元素,下面是实现代码!

实现代码如下:

watermark.load({ watermark_txt: "我是水印,watermark水印插件!" });

watermark代码插件代码

(function(watermark){
  window.watermarkdivs = [];
  // 加载水印
  var loadMark = function(settings) {
  	  var defaultSettings={
  	  	watermark_txt:"text",
  	  	watermark_x:20,//水印起始位置x轴坐标
  	  	watermark_y:20,//水印起始位置Y轴坐标
  	  	watermark_rows:0,//水印行数
  	  	watermark_cols:0,//水印列数
  	  	watermark_x_space:100,//水印x轴间隔
  	  	watermark_y_space:50,//水印y轴间隔
  	  	watermark_color:'#000000',//水印字体颜色
  	  	watermark_alpha:0.5,//水印透明度,要求设置在大于等于0.005
  	  	watermark_fontsize:'18px',//水印字体大小
  	  	watermark_font:'微软雅黑',//水印字体
  	  	watermark_width:150,//水印宽度
  	  	watermark_height:100,//水印长度
  	  	watermark_angle:15,//水印倾斜度数
  	  	watermark_bg_alpha:0.5 //加透明度导致隐形水印无法读取
  	  };
  	  //采用配置项替换默认值,作用类似jquery.extend
  	  if(arguments.length===1&&typeof arguments[0] ==="object" )
  	  {
  	  	var src=arguments[0]||{};
  	  	for(key in src)
  	  	{
  	  	  if(src[key]&&defaultSettings[key]&&src[key]===defaultSettings[key])
  	  	  	continue;
  	  	  else if(src[key])
  	  	  	defaultSettings[key]=src[key];
  	  	}
  	  }
	  
  	  if (window.watermarkdivs && window.watermarkdivs.length > 0) {
  	  	document.body.removeChild(document.getElementById("otdivid"));
  	  	window.watermarkdivs = [];
  	  }
	  
  	  //获取页面最大宽度
  	  var page_width = Math.max(document.body.scrollWidth,document.body.clientWidth);
  	  //获取页面最大长度
  	  var page_height = Math.max(document.body.scrollHeight,document.body.clientHeight);
	  
      // 创建文档碎片
      var oTemp = document.createDocumentFragment();
        //创建水印外壳div
  	  var otdiv = document.getElementById("otdivid");
  	  if(!otdiv){
  	  	otdiv =document.createElement('div');
  	  	otdiv.id="otdivid";
            otdiv.style.pointerEvents = "none";
  	  	document.body.appendChild(otdiv);
  	  }
	  
  	  //如果将水印列数设置为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));
  	  }
  	  
  	  var x;
  	  var y;
  	  for (var i = 0; i < defaultSettings.watermark_rows; i++) {
  	  	y = defaultSettings.watermark_y + (defaultSettings.watermark_y_space + defaultSettings.watermark_height) * i;
  	  	for (var j = 0; j < defaultSettings.watermark_cols; j++) {
  	  	  x = defaultSettings.watermark_x + (defaultSettings.watermark_width + defaultSettings.watermark_x_space) * j;
		  
  	  	  var mask_div = document.createElement('div');
  	  	  var oText=document.createTextNode(defaultSettings.watermark_txt);
  	  	  mask_div.appendChild(oText);
          // 设置一张水印相关属性start
          mask_div.id = 'mask_div' + i + j;
  	  	  //设置水印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.border="solid #eee 1px";
  	  	  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";
          //设置一张水印相关属性end
          //附加到文档碎片中
          otdiv.appendChild(mask_div);
	  
          window.watermarkdivs.push(otdiv); //控制页面大小变化时水印字体
  	  	};
  	  };
  	  //一次性添加到document中
  	  document.body.appendChild(oTemp);
  	};
  
  watermark.load = function(settings) {
  	window.onload = function() {
  		loadMark(settings);
  	};
  	window.onresize = function() {
  		loadMark(settings);
  	};
  };
	
})(window.watermark = {});

wordpress如何在图片上显示喜欢的水印(Image Watermark水印插件)

标签: watermark, 水印插件

上面是“介绍一个水印插件watermark(不遮挡底部元素)”的全面内容,想了解更多关于 js 内容,请继续关注web建站教程。

当前网址:https://ipkd.cn/webs_2800.html

声明:本站提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请发送到邮箱:admin@ipkd.cn,我们会在看到邮件的第一时间内为您处理!

当前位置: 网站首页 > js
本文共计4587个字,预计阅读时长31分钟
生活小工具,收录了80多款小工具
上一篇: 推荐一款免费在线图片处理工具——佐糖图片平台
下一篇: 推荐一款优设网免费可商用字体——优设标题黑体
x 打工人ai神器