前端js生成水印

 JavaScript  2022-02-08  admin  974  1314

前端js生成水印

image.png

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta name="viewport"
          content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no">
    <title>前端js生成水印</title>

    <style>
        html,
        body {
            /*height: 100%;*/
            /*overflow: hidden;*/
            overflow-x: hidden;
        }
    </style>
</head>
<body>
<div style="height:2200px;background-color:#799ec2;">

</div>
</body>
<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script>

    watermark();

    function watermark(settings) {
        //默认设置
        var defaultSettings = {
            watermarl_element: "body",
            watermark_txt: "http://code.cent123.com<br>123",
            watermark_img: '',
            watermark_x: 20, //水印起始位置x轴坐标
            watermark_y: 20, //水印起始位置Y轴坐标
            watermark_rows: 9, //水印行数
            watermark_cols: 10, //水印列数
            watermark_x_space: 50, //水印x轴间隔
            watermark_y_space: 30, //水印y轴间隔
            watermark_color: '#000', //水印字体颜色
            watermark_alpha: 0.4, //水印透明度
            watermark_fontsize: '15px', //水印字体大小
            watermark_font: '微软雅黑', //水印字体
            watermark_width: 200, //水印宽度
            watermark_height: 80, //水印长度
            watermark_angle: 15 //水印倾斜度数
        };
        //采用配置项替换默认值,作用类似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];
            }
        }

        var oTemp = document.createDocumentFragment();
        var maskElement = document.getElementById(defaultSettings.watermarl_element) || document.body;

        //获取页面最大宽度
        var page_width = Math.max(maskElement.scrollWidth, maskElement.clientWidth);

        //获取页面最大高度
        var page_height = Math.max(maskElement.scrollHeight, maskElement.clientHeight);

        //水印数量自适应元素区域尺寸
        defaultSettings.watermark_cols = Math.ceil(page_width / (defaultSettings.watermark_x_space + defaultSettings
            .watermark_width));
        defaultSettings.watermark_rows = Math.ceil(page_height / (defaultSettings.watermark_y_space + defaultSettings
            .watermark_height));
        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 mask_img = document.createElement('img');
                mask_div.id = 'mask_div' + i + j;
                mask_div.className = 'mask_div';
                mask_img.className = 'mask_img';
                //mask_div.appendChild(document.createTextNode(defaultSettings.watermark_txt));
                mask_div.innerHTML = (defaultSettings.watermark_txt);
                mask_img.src = defaultSettings.watermark_img;
                mask_img.style.width = "150px";
                mask_img.style.height = "50px";

                // 空白图片会有占位,判断src为空时移除img标签  不为空时添加img
                if (defaultSettings.watermark_img == "") {
                    mask_div.remove(mask_img);
                } else {
                    mask_div.append(mask_img);
                }
                //设置水印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.pointerEvents = 'none'; //pointer-events:none  让水印不遮挡页面的点击事件
                //mask_div.style.border="solid #eee 1px";          //兼容IE9以下的透明度设置                mask_div.style.filter="alpha(opacity=50)";
                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";
                oTemp.appendChild(mask_div);
            }
            ;
        }
        ;
        maskElement.appendChild(oTemp);

        var remove = function (settings) {
            maskElement.removeChild(oTemp);
        }
    }
</script>
</html>


如果文章对您有帮助,点击下方的广告,支持一下作者吧!

转载必须注明出处:

前端js生成水印 —— code.cent123.com

相关推荐


image操作类

image操作类classImage { /*缩略图相关常量定义*/ constTHUMB_SCALING=1;//常量,标识缩略图等比例缩放类型 constTHUMB_FILLED=2;//常量,标识缩略图缩放后填充类型 constTHUMB_CENTER=3;//常量,标识缩略图居中裁剪类型 constTHUMB_NORTHWEST=4;//常量,标识缩略图左上角裁剪类型 c

ScreenToGif 是一款开源的录屏、摄像头录像、画板录制工具,自带有一个视频编辑器,并能最终导出视频文件,或者 GIF 动画的 Windows 软件,身材小巧,单可执行文件

ScreenToGif 是一款开源的录屏、摄像头录像、画板录制工具,还带有一个视频编辑器,并能最终导出视频文件,或者 GIF 动画的 Windows 软件,身材小巧,单可执行文件,支持中文。这是一个功能非常丰富的工具,除了可以录制屏幕以外,还能使用本机摄像头进行视频录制,以及一个可以录制绘画过程的白板工具。ScreenToGif 支持区域、窗口、全屏录制,FPS 范围在 1~60 之间,可自定义。

php 生成透明png图片

php 生成透明png图片getDatePic(); functiongetDatePic() { //4.添加文字水印 $font_size=90; $font_angle=0; $font_x=0; $font_y=90-90/6; $font_file=&#39;font/ygyxsziti2.0.ttf&#39;;//字体文件路径 $text=&#39;centP

PHP生成图片文字水印

PHP生成图片文字水印//待处理的图片 $src_img=&#39;images/b3.jpg&#39;; //获取图片信息 $src_info=getimagesize($src_img); list($src_width,$src_height)=$src_info; $src_im=imagecreatefromjpeg($src_img); //生成文字颜色 $font_