我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Javascript如何设置水印叠堆

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Javascript如何设置水印叠堆

这篇文章主要讲解了“Javascript如何设置水印叠堆”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Javascript如何设置水印叠堆”吧!

Javascript设置水印叠堆的方法:1、通过javascript创建页面元素p,并在p元素中创建文本节点,展示水印内容;2、设置p元素样式,将其zIndex设置一个较高的值,并设置透明度,实现浮在页面的水印效果即可。

Javascript如何设置水印叠堆

本文操作环境:windows7系统、javascript1.8.5版、Dell G3电脑。

Javascript怎么设置水印叠堆?

水印铺满:html+javascript实现动态页面水印

1.基本原理

  • 页面加载后,通过javascript创建页面元素p,并在p元素中创建文本节点,展示水印内容

  • 设置p元素样式,将其zIndex设置一个较高的值,并设置透明度,实现浮在页面的水印效果

其核心逻辑如下所示

var mask_p = document.createElement('p');
    mask_p.id = 'mask_p1';
    mask_p.appendChild(document.createTextNode("test"));
    mask_p.style.position = "absolute";
    mask_p.style.left =  '20px';
    mask_p.style.top =  '20px';
    mask_p.style.overflow = "hidden";
    mask_p.style.zIndex = "9999";
    mask_p.style.opacity = 0.3;
  document.body.appendChild(mask_p);

2.继续完善

上述示例只在页面某处展示了一个水印,实际应用中往往需要在页面中铺满水印

在满足这种需求同时,下述代码将各种属性以配置方式提供给使用者,可根据需要灵活调用

function watermark(settings) {

    //默认设置
    var defaultSettings={
        watermark_txt:"text",
        watermark_x:20,//水印起始位置x轴坐标
        watermark_y:20,//水印起始位置Y轴坐标
        watermark_rows:20,//水印行数
        watermark_cols:20,//水印列数
        watermark_x_space:100,//水印x轴间隔
        watermark_y_space:50,//水印y轴间隔
        watermark_color:'#000000',//水印字体颜色
        watermark_alpha:0.3,//水印透明度
        watermark_fontsize:'18px',//水印字体大小
        watermark_font:'微软雅黑',//水印字体
        watermark_width:120,//水印宽度
        watermark_height:80,//水印长度
        watermark_angle:15//水印倾斜度数
    };
    //采用配置项替换默认值,作用类似jquery.extend
    if(arguments.length===1&&typeof arguments[0] ==="object" )
    {
        var class="lazy" data-src=arguments[0]||{};
        for(key in class="lazy" data-src)
        {
            if(class="lazy" data-src[key]&&defaultSettings[key]&&class="lazy" data-src[key]===defaultSettings[key])
                continue;
            else if(class="lazy" data-src[key])
                defaultSettings[key]=class="lazy" data-src[key];
        }
    }

    var oTemp = document.createDocumentFragment();

    //获取页面最大宽度
    var page_width = Math.max(document.body.scrollWidth,document.body.clientWidth);
    //获取页面最大长度
    var page_height = Math.max(document.body.scrollHeight,document.body.clientHeight);

    //如果将水印列数设置为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_p = document.createElement('p');
            mask_p.id = 'mask_p' + i + j;
            mask_p.appendChild(document.createTextNode(defaultSettings.watermark_txt));
            //设置水印p倾斜显示
            mask_p.style.webkitTransform = "rotate(-" + defaultSettings.watermark_angle + "deg)";
            mask_p.style.MozTransform = "rotate(-" + defaultSettings.watermark_angle + "deg)";
            mask_p.style.msTransform = "rotate(-" + defaultSettings.watermark_angle + "deg)";
            mask_p.style.OTransform = "rotate(-" + defaultSettings.watermark_angle + "deg)";
            mask_p.style.transform = "rotate(-" + defaultSettings.watermark_angle + "deg)";
            mask_p.style.visibility = "";
            mask_p.style.position = "absolute";
            mask_p.style.left = x + 'px';
            mask_p.style.top = y + 'px';
            mask_p.style.overflow = "hidden";
            mask_p.style.zIndex = "9999";
            //mask_p.style.border="solid #eee 1px";
            mask_p.style.opacity = defaultSettings.watermark_alpha;
            mask_p.style.fontSize = defaultSettings.watermark_fontsize;
            mask_p.style.fontFamily = defaultSettings.watermark_font;
            mask_p.style.color = defaultSettings.watermark_color;
            mask_p.style.textAlign = "center";
            mask_p.style.width = defaultSettings.watermark_width + 'px';
            mask_p.style.height = defaultSettings.watermark_height + 'px';
            mask_p.style.display = "block";
            oTemp.appendChild(mask_p);
        };
    };
    document.body.appendChild(oTemp);
}

3.调用方式

watermark({ watermark_txt: "测试水印" })//传入动态水印内容

//onload时触发水印绘制
window.onload=function(){
watermark({ watermark_txt: "测试水印" });
};

//onresize时触发水印绘制
window.onresize = function () {
 watermark({ watermark_txt: "测试水印",watermark_width:50 }) 
};

感谢各位的阅读,以上就是“Javascript如何设置水印叠堆”的内容了,经过本文的学习后,相信大家对Javascript如何设置水印叠堆这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Javascript如何设置水印叠堆

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

电脑在打印的时候应该如何设置水印

这篇文章将为大家详细讲解有关电脑在打印的时候应该如何设置水印,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。具体操作:1.点击“控制面板”,找到“硬件和声音”下的“查看设备和打印机”,然后找到打印机的图标并
2023-06-27

调试JavaScript代码如何打印调用堆栈

小编给大家分享一下调试JavaScript代码如何打印调用堆栈,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!打印调用堆栈可以通过调试面板查看当前代码的调用堆栈,也
2023-06-27

linux如何设置堆栈大小

在Linux中,可以使用以下方法来设置堆栈大小:使用ulimit命令:ulimit命令用于设置或显示用户进程资源限制。可以使用以下命令来设置堆栈大小为5MB:ulimit -s 5120其中,-s参数用于设置堆栈大小,单位为KB。使用s
linux如何设置堆栈大小
2023-10-28

qt如何设置堆栈大小

在Qt中,可以通过设置QThread类的堆栈大小来控制线程的堆栈大小。可以使用`QThread::setStackSize()`函数来设置堆栈大小。该函数接受一个参数,表示以字节为单位的堆栈大小。以下是一个设置线程堆栈大小为1MB的示例:
qt如何设置堆栈大小
2023-10-28

java堆栈大小如何设置

在Java虚拟机中,堆和栈是两种不同的内存区域。堆用于存储对象实例和数组,而栈用于存储方法调用和局部变量。要设置Java堆的大小,可以使用以下参数:-Xms:设置堆的初始大小-Xmx:设置堆的最大大小其中,可以是以K、M、G等为单
java堆栈大小如何设置
2023-10-28

win10如何设置窗口不重叠

要设置窗口不重叠,可以按照以下步骤操作:1. 右键点击任务栏上的空白处,选择“任务栏设置”。2. 在任务栏设置窗口中,找到“任务栏”选项卡。3. 在“任务栏”选项卡中,找到“任务栏上的按钮”一栏,将其从默认值“始终合并,不重叠”改为“从不合
2023-08-26

jvm如何设置堆内存参数

JVM的堆内存参数可以通过设置JAVA_OPTS环境变量来进行配置。具体设置堆内存参数的步骤如下:打开命令行窗口,并进入JVM的安装目录。找到并编辑JVM的配置文件,通常是位于bin目录下的一个以".conf"为扩展名的文件(比如"jav
jvm如何设置堆内存参数
2024-02-29

如何设置jvm堆内存大小

要设置JVM堆内存大小,可以使用以下方法之一:通过命令行参数设置:可以通过在启动Java应用程序时使用-Xms和-Xmx参数来设置初始堆大小(-Xms)和最大堆大小(-Xmx)。例如,要将初始堆大小设置为512MB,最大堆大小设置为1024
如何设置jvm堆内存大小
2024-02-29

win11任务栏不折叠如何设置

本篇内容介绍了“win11任务栏不折叠如何设置”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!win11任务栏不折叠设置的方法:1、我们需要下
2023-06-30

水星路由器如何设置

本文小编为大家详细介绍“水星路由器如何设置”,内容详细,步骤清晰,细节处理妥当,希望这篇“水星路由器如何设置”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。1、首先在连接上路由器的电脑或手机浏览器地址栏中输入192
2023-07-02

ie如何设置javascript

这篇文章将为大家详细讲解有关ie如何设置javascript,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。JavaScript可以做什么1.可以使网页具有交互性,例如响应用户点击,给用户提供更好的体验。2
2023-06-14

javascript如何设置cookie

这篇文章给大家分享的是有关javascript如何设置cookie的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。在javascript中,可以使用document对象的cookie属性来设置、读取或删除cooki
2023-06-14

javascript如何设置css

这篇文章给大家分享的是有关javascript如何设置css的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。JavaScript是什么JavaScript是一种直译式的脚本语言,其解释器被称为JavaScript引
2023-06-14

html中如何设置水平居中

这篇文章将为大家详细讲解有关html中如何设置水平居中,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。设置水平居中1)固定宽度 大多数的网站目前都是固定宽度的代码如下:#container { width:
2023-06-27

chrome如何设置javascript

这篇文章给大家分享的是有关chrome如何设置javascript的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。chrome设置javascript的方法:首先打开Google Chrome;然后点击右上角选择设
2023-06-14

编程热搜

目录