当前位置:首页 > 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制作响应网页

响应式网页设计基础 使用CSS制作响应式网页的核心是让页面能够根据不同设备的屏幕尺寸自动调整布局和样式。主要通过媒体查询(Media Queries)、弹性布局(Flexbox)和网格布局(Grid)…

用css制作淘宝网页

用css制作淘宝网页

页面布局设计 淘宝网页通常采用响应式布局,确保在不同设备上都能良好显示。主要结构包括顶部导航栏、搜索栏、轮播图、商品分类展示和页脚。 使用CSS的Flexbox或Grid布局可以快速实现这些结构。F…

Vue实现网页全屏

Vue实现网页全屏

Vue实现网页全屏的方法 在Vue中实现网页全屏功能可以通过浏览器的全屏API来实现。以下是几种常见的实现方式: 使用原生JavaScript全屏API 浏览器提供了requestFullscree…

Vue实现网页截图

Vue实现网页截图

Vue实现网页截图的方法 使用html2canvas库 安装html2canvas库,该库可以将DOM元素转换为canvas图像。 npm install html2canvas 在Vue组件中引入…

vue三d网页实现

vue三d网页实现

Vue 3D网页实现方法 使用Three.js库 Three.js是一个基于WebGL的3D图形库,适合在Vue项目中创建3D场景。安装Three.js后,可以在Vue组件中初始化场景、相机和渲染器。…

vue是实现网页的

vue是实现网页的

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