使用css做水印效果

/*
 * @description添加水印
 * @param {Obj} settings水印配置参数
 */
  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:100,
		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; 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);
}

使用:

    waterMark({
        waterMarkContent:'我是水印内容',
        waterMarkId:'userTable'//需要做水印的元素的id
    });

也可以结合后台传过来的数据作为水印的内容:

        @RequestMapping(value = "/getShuiYinContent", method = RequestMethod.POST)
	public void getShuiYinContent(HttpServletRequest request, HttpServletResponse response) throws IOException {
		JSONArray arr = new JSONArray();
		response.setCharacterEncoding("UTF-8");
		response.addHeader("Access-Control-Allow-Origin", "*");
		PrintWriter pw = response.getWriter();
		String userName = getCurrentUser(request.getSession()).getRealName();
		arr.add(userName);
		pw.print(arr);
		pw.close();
	}
  $.ajax({
		type: 'post',				
		url:"${baseUrl}/user/getShuiYinContent",
		async:true,
		dataType: 'json',
		success: function(data){		
                waterMark({
                    waterMarkContent : data,
                    waterMarkId : 'userTable'//需要做水印的元素的id
                });
		},
		error: function(data){
			
		}
	});




  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值