Компонент Watermark в библиотеке Naive UI предназначен для наложения водяного знака на элементы интерфейса, обеспечивая защиту контента или добавление фирменного оформления. Он поддерживает гибкую настройку текста, изображений и стилей отображения, позволяя интегрировать водяной знак в любой блок приложения на Vue 3.
Импорт компонента осуществляется из пакета naive-ui:
import { NWatermark } from 'naive-ui';
Простейший пример применения:
<template>
<n-watermark content="Пример водяного знака">
<div style="width: 400px; height: 200px; background-color: #f5f5f5;">
Основной контент блока
</div>
</n-watermark>
</template>
<div>) остаётся интерактивным
и доступным для пользовательских действий.Watermark позволяет изменять следующие параметры текста:
"16px Arial".-30 для диагонального расположения.{ x: 100, y: 100 }.Пример с настройкой:
<n-watermark
content="Конфиденциально"
:font="'20px Microsoft YaHei'"
fill="rgba(0, 0, 0, 0.15)"
:rotate="-30"
:gap="{ x: 120, y: 120 }"
>
<div style="width: 500px; height: 300px; background-color: #ffffff;">
Документ с водяным знаком
</div>
</n-watermark>
Помимо текста, Watermark поддерживает изображение в качестве водяного знака с помощью свойства image.
<n-watermark
:image="'/path/to/logo.png'"
:width="120"
:height="80"
:gap="{ x: 150, y: 150 }"
:rotate="-20"
>
<div style="width: 600px; height: 400px; background-color: #f0f0f0;">
Контент с графическим водяным знаком
</div>
</n-watermark>
Компонент автоматически повторяет изображение по всей области контейнера.
С помощью реактивных данных можно динамически изменять текст или изображение водяного знака. Это удобно для отображения текущего пользователя, даты или статуса документа.
<template>
<n-watermark :content="watermarkText">
<div style="width: 400px; height: 200px; background-color: #fafafa;">
Динамический контент
</div>
</n-watermark>
</template>
<script setup>
import { ref } from 'vue';
const watermarkText = ref('Пользователь: Иванов');
setTimeout(() => {
watermarkText.value = 'Пользователь: Петров';
}, 5000);
</script>
Для более сложной стилизации можно использовать CSS-переменные, которые Naive UI поддерживает для Watermark:
--n-watermark-font — задаёт шрифт.--n-watermark-color — цвет текста.--n-watermark-opacity — прозрачность.Пример применения CSS-переменных:
<n-watermark content="Секретно" class="custom-watermark">
<div style="width: 500px; height: 300px; background-color: #fff;">
Контент с кастомными стилями
</div>
</n-watermark>
<style scoped>
.custom-watermark {
--n-watermark-font: 18px 'Courier New', monospace;
--n-watermark-color: rgba(255, 0, 0, 0.2);
--n-watermark-opacity: 0.2;
}
</style>
Если водяной знак используется внутри контейнера с прокруткой, важно, чтобы он масштабировался вместе с контентом. Для этого компонент поддерживает свойство z-index и адаптивное позиционирование:
<n-watermark content="Важная информация" :z-index="10">
<div style="width: 100%; height: 600px; overflow: auto; background-color: #eaeaea;">
<div style="height: 1200px;">Длинный прокручиваемый контент</div>
</div>
</n-watermark>
Watermark в Naive UI обеспечивает лёгкую интеграцию защиты контента и фирменного оформления, сочетая текстовые и графические элементы с полной настройкой стилей и адаптивностью к различным контейнерам.