nodejs
<template>
<div class="watermark-container">
<canvas ref="watermarkCanvas" class="watermark-canvas"></canvas>
<div class="content">
<!-- 这里是您的页面内容 -->
<slot></slot>
</div>
</div>
</template>
<script>
export default {
mounted() {
this.drawWatermark();
window.addEventListener('scroll', this.drawWatermark);
window.addEventListener('resize', this.drawWatermark);
},
beforeDestroy() {
window.removeEventListener('scroll', this.drawWatermark);
window.removeEventListener('resize', this.drawWatermark);
},
methods: {
drawWatermark() {
const canvas = this.$refs.watermarkCanvas;
const context = canvas.getContext('2d');
context.clearRect(0, 0, canvas.width, canvas.height);
// 设置水印样式
context.font = '20px Arial';
context.fillStyle = 'rgba(0, 0, 0, 0.1)';
context.rotate((-20 * Math.PI) / 180);
const text = 'Your Watermark Text';
// 在画布上绘制水印
for (let i = 0; i < window.innerWidth; i += 200) {
for (let j = 0; j < window.innerHeight; j += 100) {
context.fillText(text, i, j);
}
}
},
},
};
</script>
<style>
.watermark-container {
position: relative;
}
.watermark-canvas {
position: absolute;
top: 0;
left: 0;
pointer-events: none;
z-index: 1000;
}
.content {
position: relative;
z-index: 1;
}
</style>
cdn<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script type="text/javascript" src="//repo.bfw.wiki/bfwrepo/js/vue@2.6.1-dev.js"></script>
</head>
<body>
<div id="app">
<watermark>
<div>
<!-- 这里是您的页面内容 -->
<h1>Hello, World!</h1>
</div>
</watermark>
</div>
<script>
// 定义水印组件
Vue.component('watermark', {
mounted() {
this.drawWatermark();
window.addEventListener('scroll', this.drawWatermark);
window.addEventListener('resize', this.drawWatermark);
},
beforeDestroy() {
window.removeEventListener('scroll', this.drawWatermark);
window.removeEventListener('resize', this.drawWatermark);
},
methods: {
drawWatermark() {
const canvas = this.$refs.watermarkCanvas;
const context = canvas.getContext('2d');
context.clearRect(0, 0, canvas.width, canvas.height);
// 设置水印样式
context.font = '20px Arial';
context.fillStyle = 'rgba(0, 0, 0, 0.1)';
context.rotate((-20 * Math.PI) / 180);
const text = 'Your Watermark Text';
// 在画布上绘制水印
for (let i = 0; i < window.innerWidth; i += 200) {
for (let j = 0; j < window.innerHeight; j += 100) {
context.fillText(text, i, j);
}
}
},
},
template: `
<div class="watermark-container">
<canvas ref="watermarkCanvas" class="watermark-canvas"></canvas>
<div class="content">
<slot></slot>
</div>
</div>
`
});
new Vue({
el: '#app'
});
</script>
<style>
.watermark-container {
position: relative;
}
.watermark-canvas {
position: absolute;
top: 0;
left: 0;
pointer-events: none;
z-index: 1000;
}
.content {
position: relative;
z-index: 1;
}
</style>
</body>
</html>
网友回复
如何修改别人发给我的微信笔记内容?
fbx、obj、glb三维格式模型如何在浏览器中通过three相互转换格式?
python如何实现基于http隧道加密的正向代理服务?
有没有有专门针对 UI 界面截图进行智能标记(Set-of-Mark, SoM) 的开源库和工具?
如何用python实现Set-of-Mark (SoM) 技术?
python如何截取windows指定应用的窗口截图,不用管窗口是不是在最前面?
linux能不能给rm删除命令增加回收站功能,可恢复被删文件?
bfwsoa如何在命令行中执行控制器动作器方法?
RAG(检索增强生成)和 KG(知识图谱)有啥不同?
KVM硬件是啥?


