当前位置:首页 > VUE

vue实现网页水印

2026-02-25 16:17:59VUE

Vue 实现网页水印的方法

在 Vue 中实现网页水印可以通过多种方式,以下是几种常见的方法:

使用 CSS 背景图

通过 CSS 的 background-image 属性可以添加水印效果。这种方法简单,适合静态水印。

<template>
  <div class="watermark">
    <!-- 页面内容 -->
  </div>
</template>

<style>
.watermark {
  background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="200" height="100" opacity="0.2"><text x="10" y="50" font-family="Arial" font-size="20" fill="gray">Watermark</text></svg>');
  background-repeat: repeat;
}
</style>

使用 Canvas 动态生成水印

Canvas 可以动态生成水印,适合需要动态调整水印内容或样式的场景。

vue实现网页水印

<template>
  <div ref="watermarkContainer">
    <!-- 页面内容 -->
  </div>
</template>

<script>
export default {
  mounted() {
    this.addWatermark();
  },
  methods: {
    addWatermark() {
      const container = this.$refs.watermarkContainer;
      const canvas = document.createElement('canvas');
      canvas.width = 200;
      canvas.height = 100;
      const ctx = canvas.getContext('2d');
      ctx.font = '20px Arial';
      ctx.fillStyle = 'rgba(128, 128, 128, 0.2)';
      ctx.fillText('Watermark', 10, 50);

      const watermarkUrl = canvas.toDataURL('image/png');
      container.style.backgroundImage = `url(${watermarkUrl})`;
      container.style.backgroundRepeat = 'repeat';
    }
  }
};
</script>

使用第三方库

如果需要更复杂的水印功能(如防删除、动态位置调整等),可以使用第三方库如 vue-watermark

安装库:

vue实现网页水印

npm install vue-watermark

使用示例:

<template>
  <vue-watermark :text="watermarkText" :opacity="0.2" :fontSize="20">
    <!-- 页面内容 -->
  </vue-watermark>
</template>

<script>
import VueWatermark from 'vue-watermark';

export default {
  components: { VueWatermark },
  data() {
    return {
      watermarkText: 'Confidential'
    };
  }
};
</script>

防止水印被删除

为了防止水印被用户通过开发者工具删除,可以监听 DOM 变化或使用 MutationObserver。

mounted() {
  this.addWatermark();
  this.protectWatermark();
},
methods: {
  protectWatermark() {
    const observer = new MutationObserver((mutations) => {
      mutations.forEach((mutation) => {
        if (mutation.removedNodes.length > 0) {
          this.addWatermark();
        }
      });
    });
    observer.observe(document.body, { childList: true, subtree: true });
  }
}

注意事项

  • 水印的透明度(opacity)通常设置为 0.1 到 0.3,避免影响页面内容阅读。
  • 动态生成的水印可以通过调整 canvas 的尺寸和文字位置来适应不同需求。
  • 防删除机制可能会影响页面性能,需谨慎使用。

标签: 水印网页
分享给朋友:

相关文章

vue网页无法实现

vue网页无法实现

常见原因分析 网络连接问题 检查网络是否正常,确保能访问外部资源。如果是本地开发环境,确认代理配置是否正确,避免因网络问题导致资源加载失败。 依赖未正确安装 运行npm install或yarn i…

Css如何制作百度网页

Css如何制作百度网页

制作一个类似百度的网页界面需要结合HTML结构和CSS样式设计。以下是关键实现步骤和代码示例: HTML基础结构 <!DOCTYPE html> <html> <he…

h5实现网页跳转

h5实现网页跳转

H5实现网页跳转的方法 在HTML5中,可以通过多种方式实现网页跳转。以下是几种常见的方法: 使用<a>标签 通过超链接标签实现跳转是最传统的方式: <a href="h…

vue实现网页功能

vue实现网页功能

Vue 实现网页功能的核心方法 创建 Vue 项目 使用 Vue CLI 或 Vite 快速初始化项目。Vue CLI 适合传统项目,Vite 适合现代轻量级应用。 npm init vue@lat…

vue框架实现网页

vue框架实现网页

Vue框架实现网页的基本步骤 Vue.js是一个渐进式JavaScript框架,用于构建用户界面。以下是使用Vue框架实现网页的核心步骤。 安装Vue.js 通过CDN引入Vue.js是最简单的方…

用vue实现网页

用vue实现网页

Vue.js 网页开发基础步骤 安装 Vue.js 开发环境 通过 npm 或 yarn 安装 Vue CLI(命令行工具),用于快速初始化项目。 npm install -g @vue/cl…