当前位置:首页 > 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 可以动态生成水印,适合需要动态调整水印内容或样式的场景。

<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

安装库:

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。

vue实现网页水印

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 的尺寸和文字位置来适应不同需求。
  • 防删除机制可能会影响页面性能,需谨慎使用。

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

相关文章

Css如何制作百度网页

Css如何制作百度网页

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

vue实现网页功能

vue实现网页功能

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

vue实现pdf水印

vue实现pdf水印

添加PDF水印的实现方法 在Vue中实现PDF水印可以通过以下步骤完成,主要依赖第三方库如pdf-lib或pdf.js。 使用pdf-lib库添加水印 安装pdf-lib库: npm instal…

vue页面实现水印

vue页面实现水印

实现Vue页面水印的方法 使用CSS背景图实现水印 在Vue组件中通过CSS添加重复水印背景,适合静态水印。 <template> <div class="watermark-…

vue实现网页预览功能

vue实现网页预览功能

实现网页预览功能的方案 在Vue中实现网页预览功能可以通过多种方式完成,包括使用iframe、第三方库或后端服务生成缩略图。以下是几种常见的方法: 使用iframe嵌入目标网页 通过iframe直接…

vue是实现网页的

vue是实现网页的

Vue 的基本概念 Vue 是一个用于构建用户界面的渐进式 JavaScript 框架,专注于视图层,易于与其他库或现有项目整合。 Vue 的核心功能 响应式数据绑定:数据变化时,视图自动更新。…