当前位置: 首页 > news >正文

信息技术课做网站网络系统建设方案

信息技术课做网站,网络系统建设方案,管理手机网站模板,wordpress 外网无法访问1、演示 2、水印的目的 版权保护#xff1a;水印可以在图片、文档或视频中嵌入作者、品牌或版权所有者的信息#xff0c;以防止未经授权的复制、传播或使用。当其他人使用带有水印的内容时#xff0c;可以追溯到原始作者或版权所有者#xff0c;从而加强版权保护。 身份识…1、演示 2、水印的目的 版权保护水印可以在图片、文档或视频中嵌入作者、品牌或版权所有者的信息以防止未经授权的复制、传播或使用。当其他人使用带有水印的内容时可以追溯到原始作者或版权所有者从而加强版权保护。 身份识别水印可以用作作者或品牌的标识符使观众能够轻松识别内容的来源。这对于在社交媒体上分享内容或在网络上发布作品的个人、摄影师、设计师或公司来说尤为重要。 品牌宣传水印可以帮助提升品牌知名度和曝光度。通过在图片或视频中添加品牌标识品牌可以在内容被分享或传播时获得额外的宣传效果。 内容跟踪通过在内容中添加水印可以跟踪内容的传播和使用情况。这对于了解内容在网络上的传播路径、受众和影响力等信息是有帮助的。 3、实话实说 如果通过我们技术层面要解决这种安全或者是版权之类的问题只能说起一定的作用增加那些不怀好意的人操作难度。 要说能够完全防止住那是不可能的一定是技术手段和非技术手段相结合双管齐下。这样才能确保万无一失。 总之防君子不防小人 4、API介绍MutationObserver MutationObserver API 是 Web API 的一部分用于监视 DOM 树的变化。它允许开发者注册一个回调函数该函数在指定的 DOM 节点或子树发生变化时被调用。MutationObserver 是一个强大的工具可以用于监视并响应 DOM 中的变化而无需使用传统的事件监听器。 主要的组成部分包括 MutationObserver 对象用于观察 DOM 树的变化。通过创建 MutationObserver 的实例并传入一个回调函数可以开始监视指定节点或节点集合的变化。 观察目标要监视的 DOM 节点或节点集合。MutationObserver 可以观察单个节点、节点列表甚至整个文档的变化。 回调函数MutationObserver 注册的回调函数在观察的节点发生变化时被调用。回调函数接收一个 MutationRecord 对象数组作为参数该数组包含描述每个变化的信息。 变化记录MutationRecord描述 DOM 变化的对象。每个 MutationRecord 包含有关变化类型、受影响的节点、以及相关信息的详细信息。 MutationObserver API 的使用场景包括但不限于 监视 DOM 中特定元素的属性变化。监视子节点的添加、移除或替换。监视文本内容的变化。实时监视动态加载的内容变化。 通过 MutationObserver开发者可以更加灵活地监控 DOM 变化实现更加复杂和高效的 DOM 操作和交互。 5、实现逻辑 1、通过手写组件的方式将需要添加水印的内容放入组件内 2、通过props传入不同内容实现自定义水印内容、字体大小、水印之间的间隔等等 3、通过canvas来画出水印文字最后将canvas画出的内容转换为图片 4、通过MutationObserverAPI来监听水印元素被删除、被修改属性的变化 6、代码 1、使用水印组件的代码 templatediv classcontainerWatermark text版权所有123div classitem秘密/div/Watermark/div /templatescript setup import { ref, reactive } from vue import Watermark from /components/Watermark/index.vue /scriptstyle scoped langscss .container {width: 100%;display: flex;justify-content: space-around;.item {width: 300px;height: 300px;text-align: center;line-height: 300px;color: #fff;font-size: 50px;background-color: #266fff;} } /style2、水印组件代码 templatediv classwatermark refparentslot/slot/div /templatescript setup import directive from /directive import { ref, reactive, computed, onMounted, onUnmounted } from vue const parent ref(null) const props defineProps({text: {type: String,required: true,default: watermark,},fontSize: {type: Number,default: 32,},// 水印的间隔gap: {type: Number,default: 20,}, }) const watermarkBg props {return computed(() {const canvas document.createElement(canvas)// 视口分辨率 确保当窗口大小变化时 画出的内容不模糊const devicePixelRatio window.devicePixelRatio || 1const fontSize props.fontSize * devicePixelRatioconst font fontSize px serifconst ctx canvas.getContext(2d)// 获取文字宽度ctx.font fontconst { width } ctx.measureText(props.text)const canvasSize Math.max(100, width) props.gap * devicePixelRatiocanvas.width canvasSizecanvas.height canvasSizectx.translate(canvas.width / 2, canvas.height / 2)ctx.rotate((Math.PI / 180) * -45)ctx.fillStyle rgba(0,0,0,0.3)ctx.font fontctx.textAlign centerctx.textBaseline middlectx.fillText(props.text, 0, 0)return {// 转换为base64格式的图片base64: canvas.toDataURL(),size: canvasSize / devicePixelRatio,}}) } const bg watermarkBg(props)// 重置水印 // 如果把水印删掉了就重新调用这个方法 生成一个新的div // 如果把水印的样式改了重新调用这个方法生成一个新的div // 因此这个函数可能会反复调用 造成多个水印的生成 let div null function resetWatermark() {if (!parent.value) return// 清除div防止生成多个水印if (div) {div.remove()}const { base64, size } bg.valuediv document.createElement(div)div.style.position absolutediv.style.backgroundImage url(${base64})div.style.backgroundSize ${size}px ${size}pxdiv.style.backgroundRepeat repeatdiv.style.zIndex 999// 实现点击穿透div.style.pointerEvents nonediv.style.inset 0parent.value.appendChild(div) }// 生成水印的元素什么时候调用 // 1、onMounted的时候 onMounted(() {// 首次生成水印resetWatermark()// 观察水印元素ob.observe(parent.value, {// 观察父元素上所有的子节点childList: true,// 观察父元素上所有的子节点的子节点subtree: true,// 观察父元素身上的属性变化attributes: true,}) })// 2、当被删除或修改样式的时候 // 这个观察器在当元素发生变化的时候执行 const ob new MutationObserver(entries {for (const entry of entries) {// 处理删除for (const node of entry.removedNodes) {if (node div) {resetWatermark()}}// 处理修改if (entry.target div) {resetWatermark()}} })// 注意细节在页面卸载的时候取消观察 onUnmounted(() {ob.disconnect() }) /scriptstyle scoped langscss .watermark {position: relative; } /style
http://www.dnsts.com.cn/news/205376.html

相关文章:

  • siteground建站教程建网站的宽带多少钱
  • 做网站必须要切图吗山西互联网公司ui设计师招聘网
  • 茶艺馆网站天津装修公司电话
  • 枞阳县建设局网站网页编辑用什么软件好
  • 内蒙古中汇建设有限公司网站网站 建设 流行 数据库
  • 天津专业的做网站与运营的公司嘉兴seo外包服务商
  • 做网站 业务流程图wordpress添加地图
  • 网页设计网站作业asp.net网站管理系统
  • c蔡甸区城乡建设局网站Dedecms手机网站源码
  • 网站建站图片网站建设技术是什么
  • 移动应用开发公司网站模板ui设计就业方向有哪些
  • 方微商城网站开发a站下载
  • 微信网站开发服务动漫设计与制作主修课程有哪些
  • 阿里建站官网关于医疗保障局门户网站建设
  • 汕头网站建设设计做律师网站的网络公司
  • 网上做任务挣钱的网站重庆网站开发服务
  • 网站建设补充合同范本网站开发技术文档格式
  • 四川 网站建设wordpress全文索引
  • 商务网站制作语言基础深圳企业做网站公司哪家好
  • 建站宝盒小程序网站开发PHP留言本电子版实验作品
  • 国内免费自建网站常州哪家网站建设公司专业
  • 北京建设厅网站叫别人做网站要注意什么
  • 兖州网站开发广西建设网行业版
  • html5 网站开发 适配wordpress设置用户访问个数据库
  • 查学校去哪个网站建设网站都要什么
  • 网站如何生成app实训做网站收获
  • 做标签这个网站刷单安全吗个人网站建设 免费
  • 交互设计就业前景seo顾问服
  • 网站建设具备知识技能学校网站的图片轮播怎么做
  • 百度做网站要多久四川专业网站建设公司