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

网络运营需要什么学历百度seo排名优化教程

网络运营需要什么学历,百度seo排名优化教程,python做网站难么,php图书管理系统因为项目有rem适配,使用第三方插件无法处理适配问题,所有只能自己写拖拽功能了 拖拽一般都会想到按下,移动,放开,但是本人亲测,就在div绑定一个按下事件就行了(在事件里面写另外两个事件&#x…

因为项目有rem适配,使用第三方插件无法处理适配问题,所有只能自己写拖拽功能了
拖拽一般都会想到按下,移动,放开,但是本人亲测,就在div绑定一个按下事件就行了(在事件里面写另外两个事件),另外两个绑上,会莫名其妙卡死,那种莫名其妙的问题

推荐几个开发调试时使用的第三方拖动插件吧,虽然没用上,但是他们是真的好vue-drag-resizevuedraggable,其中前者更轻量化,后者功能更全

主要功能:

效果图
在这里插入图片描述

界面:(就是大的父盒子包着几个小盒子,盒子里面有图片和文字)

        <div class="range" id="range" ref="range"><divclass="iconItem"v-for="(item, index) in pointList":key="index"@mousedown.stop.prevent.native="mousedown($event, item)":style="{left: item.dx + 'px',top: item.dy + 'px','z-index': item.zIndex,}"><!--@mousemove.stop.prevent.native="mousemove($event, item)"@mouseup.stop.prevent.native="mouseup($event, item)"--><imgdraggable="false":src="typeList[item.type].src":alt="typeList[item.type].name + item.EName"/><span>{{ typeList[item.type].name + item.EName }}</span></div></div>

逻辑

<script setup lang="ts">
import { ref, reactive, watch, computed, Ref } from "vue";
import { mapPunctuation } from "@/utils/youran";
let rem = ref(0.005208); // 10/1920  做好功能给上面的left top乘上去就行了 left: item.dx * rem + 'px'const range: Ref = ref(null);// 这里只是把存在文件里的base64图片文件取出来,
let typeList = reactive([{type: 1,src: "",name: "球机-摄像头",},{type: 2,src: "",name: "抢机-摄像头",},{type: 3,src: "",name: "无源打卡设备",},{type: 4,src: "",name: "无源打卡设备",},{type: 5,src: "",name: "反向控制",},
]);typeList.forEach((item, index) => {item.src = mapPunctuation[index].src;
});let pointList = ref([{fId: "111",type: 1,EId: "",EName: "",dx: 0,dy: 0,zIndex: 2,},
]);// 鼠标事件
let downType = ref(false);
let disX = 0;
let disY = 0;
let odiv: any = null;
let mousedown = (e: any, item: any) => {downType.value = true;console.log("按下事件");odiv = e.target;disX = e.clientX - odiv.offsetLeft;disY = e.clientY - odiv.offsetTop;document.onmousemove = (e) => {console.log("移动事件");//计算元素位置(需要判断临界值)let left = e.clientX - disX;let top = e.clientY - disY;let { offsetHeight: pondModelHeight, offsetWidth: pondModelWidth } =range.value;let { offsetHeight: sonNodeHeight, offsetWidth: sonNodeWidth } = odiv;// 左上角(left)if (left < 0) {left = 0;}if (top < 0) {top = 0;}// 左下角if (top > pondModelHeight - sonNodeHeight) {top = pondModelHeight - sonNodeHeight;}if (left > pondModelWidth - sonNodeWidth) {left = pondModelWidth - sonNodeWidth;}item.dx = left;item.dy = top;item.zIndex = 999;};document.onmouseup = (e) => {console.log("放开事件");document.onmousemove = null;document.onmouseup = null;item.zIndex = 1;odiv = null;};
};
</script>

css:本来不该放出来,但是我在这里踩坑了,觉得其他人也会(img图片有默认的拖拽,很难禁止,所以拿一个伪元素直接放在img上面,不给点img就不会踩坑)

      .range {width: 960px;height: 540px;background-color: pink;position: relative;.iconItem {position: absolute;left: 10px;top: 10px;z-index: 2;display: flex;align-items: center;cursor: move;user-select: none;width: 32px;height: 32px;background: yellow;img {width: 32px;height: 32px;}// 关键&::before {content: " ";width: 100%;height: 100%;position: absolute;top: 0;left: 0;z-index: 3;}&:hover {// span {//   display: block;// }}span {display: none;font-size: 12px;font-family: YouSheBiaoTiHei;color: red;}}}

完整代码:(建议按照上面的一点点复制吧,有几个文件是外部的base64图片)

<template><div class="PastureMap"><div class="mapContent"><div class="mapBox"><div class="range" id="range" ref="range"><divclass="iconItem"v-for="(item, index) in pointList":key="index"@mousedown.stop.prevent.native="mousedown($event, item)":style="{left: item.dx + 'px',top: item.dy + 'px','z-index': item.zIndex,}"><!--@mousemove.stop.prevent.native="mousemove($event, item)"@mouseup.stop.prevent.native="mouseup($event, item)"--><imgdraggable="false":src="typeList[item.type].src":alt="typeList[item.type].name + item.EName"/><span>{{ typeList[item.type].name + item.EName }}</span></div></div></div><div class="operationPanel"><div class="addIConCard"><div class="title"><span>新增图标</span></div><div class="box"><div class="bgImg"><div class="left"><span>背景图:</span></div><div class="right"><button>选择图片</button><span>建议尺寸:960*540</span></div></div><div class="iconBtnForm"><div class="cell"><div class="left"><span>圈舍</span></div><div class="right"><input type="text" placeholder="请选择圈舍" /></div></div><div class="cell"><div class="left"><span>设备编号</span></div><div class="right"><input type="text" placeholder="请输入设备编号" /></div></div><div class="cell"><div class="left"><span>类型</span></div><div class="right"><input type="text" placeholder="请选择类型" /></div></div></div><div class="addBtn"><button>新增</button></div></div></div><div class="iconList"><div class="item" v-for="(item, index) in pointList" :key="index"><div class="left"><span>类型</span></div><div class="right"><input type="text" placeholder="名称" /></div><div class="del"><img src="" alt="del" /></div></div></div></div></div></div>
</template><script setup lang="ts">
import { ref, reactive, watch, computed, Ref } from "vue";
import { mapPunctuation } from "@/utils/youran";
let rem = ref(0.005208); // 10/1920const range: Ref = ref(null);
let typeList = reactive([{type: 1,src: "",name: "球机-摄像头",},{type: 2,src: "",name: "抢机-摄像头",},{type: 3,src: "",name: "无源打卡设备",},{type: 4,src: "",name: "无源打卡设备",},{type: 5,src: "",name: "反向控制",},
]);typeList.forEach((item, index) => {item.src = mapPunctuation[index].src;
});let pointList = ref([{fId: "111",type: 1,EId: "",EName: "",dx: 0,dy: 0,zIndex: 2,},
]);// 鼠标事件
let downType = ref(false);
let disX = 0;
let disY = 0;
let odiv: any = null;
let mousedown = (e: any, item: any) => {downType.value = true;console.log("按下事件");odiv = e.target;disX = e.clientX - odiv.offsetLeft;disY = e.clientY - odiv.offsetTop;document.onmousemove = (e) => {console.log("移动事件");//计算元素位置(需要判断临界值)let left = e.clientX - disX;let top = e.clientY - disY;let { offsetHeight: pondModelHeight, offsetWidth: pondModelWidth } =range.value;let { offsetHeight: sonNodeHeight, offsetWidth: sonNodeWidth } = odiv;// 左上角(left)if (left < 0) {left = 0;}if (top < 0) {top = 0;}// 左下角if (top > pondModelHeight - sonNodeHeight) {top = pondModelHeight - sonNodeHeight;}if (left > pondModelWidth - sonNodeWidth) {left = pondModelWidth - sonNodeWidth;}item.dx = left;item.dy = top;item.zIndex = 999;};document.onmouseup = (e) => {console.log("放开事件");document.onmousemove = null;document.onmouseup = null;item.zIndex = 1;odiv = null;};
};
</script><style lang="less" scoped>
.PastureMap {height: 100%;.mapContent {display: flex;height: 100%;.mapBox {flex: 1;height: 100%;.range {width: 960px;height: 540px;background-color: pink;position: relative;.iconItem {position: absolute;left: 10px;top: 10px;z-index: 2;display: flex;align-items: center;cursor: move;user-select: none;width: 32px;height: 32px;background: yellow;img {width: 32px;height: 32px;}&::before {content: " ";width: 100%;height: 100%;position: absolute;top: 0;left: 0;z-index: 3;}&:hover {// span {//   display: block;// }}span {display: none;font-size: 12px;font-family: YouSheBiaoTiHei;color: red;}}}}.operationPanel {width: 270px;.addIConCard {.title {span {}}.box {.bgImg {display: flex;align-items: center;.left {}.right {}}.iconBtnForm {.cell {display: flex;align-items: center;.left {span {}}.right {input {}}}}}}.iconList {.item {display: flex;align-items: center;position: relative;.left {span {}}.right {input {}}.del {position: absolute;top: 0;right: 0;}}}}}
}
</style>

文章转载自:
http://dinncocomparator.ydfr.cn
http://dinncosaurophagous.ydfr.cn
http://dinncoattractile.ydfr.cn
http://dinncophotomechanical.ydfr.cn
http://dinncoconcours.ydfr.cn
http://dinncopsycho.ydfr.cn
http://dinncoeaprom.ydfr.cn
http://dinnconlp.ydfr.cn
http://dinncoluminometer.ydfr.cn
http://dinncomischoose.ydfr.cn
http://dinncoungratified.ydfr.cn
http://dinncoepididymitis.ydfr.cn
http://dinncodvi.ydfr.cn
http://dinncoupdraft.ydfr.cn
http://dinncobotchwork.ydfr.cn
http://dinncogrog.ydfr.cn
http://dinncoshipbreaker.ydfr.cn
http://dinncodiplomaed.ydfr.cn
http://dinncogetable.ydfr.cn
http://dinncoenglish.ydfr.cn
http://dinncosublimely.ydfr.cn
http://dinncovictimize.ydfr.cn
http://dinncorubelliform.ydfr.cn
http://dinncoconvexly.ydfr.cn
http://dinncophocomelia.ydfr.cn
http://dinncooutmeasure.ydfr.cn
http://dinncopolyhedric.ydfr.cn
http://dinncoexegetical.ydfr.cn
http://dinncopaucal.ydfr.cn
http://dinncorockaby.ydfr.cn
http://dinncoclaret.ydfr.cn
http://dinncostructureless.ydfr.cn
http://dinncoridgebeam.ydfr.cn
http://dinncoalacrity.ydfr.cn
http://dinncowoorali.ydfr.cn
http://dinncotimberline.ydfr.cn
http://dinncohuly.ydfr.cn
http://dinncothomasine.ydfr.cn
http://dinncopastrami.ydfr.cn
http://dinncocoterie.ydfr.cn
http://dinncofujisan.ydfr.cn
http://dinncodiastema.ydfr.cn
http://dinncoelise.ydfr.cn
http://dinncoroamer.ydfr.cn
http://dinncokremlinology.ydfr.cn
http://dinncomidmost.ydfr.cn
http://dinncopleasant.ydfr.cn
http://dinncofiddling.ydfr.cn
http://dinncoundertread.ydfr.cn
http://dinncoexarticulate.ydfr.cn
http://dinncomegapolis.ydfr.cn
http://dinncopilum.ydfr.cn
http://dinncoalienator.ydfr.cn
http://dinncocryptoclastic.ydfr.cn
http://dinncoplastered.ydfr.cn
http://dinncounaccounted.ydfr.cn
http://dinncoophthalmic.ydfr.cn
http://dinncocolour.ydfr.cn
http://dinncoloneness.ydfr.cn
http://dinncoyttrotungstite.ydfr.cn
http://dinncoleucoblast.ydfr.cn
http://dinncowicket.ydfr.cn
http://dinncosprig.ydfr.cn
http://dinncohornswoggle.ydfr.cn
http://dinncoresorcin.ydfr.cn
http://dinncodecarboxylate.ydfr.cn
http://dinncounbeaten.ydfr.cn
http://dinncochlamydomonas.ydfr.cn
http://dinncooscillometer.ydfr.cn
http://dinncocircumjovial.ydfr.cn
http://dinncomeekness.ydfr.cn
http://dinncomissionize.ydfr.cn
http://dinncoretroflection.ydfr.cn
http://dinncouncouth.ydfr.cn
http://dinnconazir.ydfr.cn
http://dinncomonomaniacal.ydfr.cn
http://dinncopreemption.ydfr.cn
http://dinncoxciii.ydfr.cn
http://dinncoregis.ydfr.cn
http://dinncoid.ydfr.cn
http://dinncobushwhacking.ydfr.cn
http://dinncosurveil.ydfr.cn
http://dinncouncynical.ydfr.cn
http://dinncokinkily.ydfr.cn
http://dinncotpi.ydfr.cn
http://dinncodisability.ydfr.cn
http://dinncolasya.ydfr.cn
http://dinncointerbedded.ydfr.cn
http://dinncodebrett.ydfr.cn
http://dinncomiscatalogued.ydfr.cn
http://dinncohotter.ydfr.cn
http://dinncoautokinesis.ydfr.cn
http://dinncodenitrator.ydfr.cn
http://dinncodrysalter.ydfr.cn
http://dinncopulverable.ydfr.cn
http://dinncotidbit.ydfr.cn
http://dinncomayon.ydfr.cn
http://dinncoosiris.ydfr.cn
http://dinncoencave.ydfr.cn
http://dinncohistogenetic.ydfr.cn
http://www.dinnco.com/news/155830.html

相关文章:

  • 深圳专业做网站专业营销策划方案怎么做
  • 计算机软件开发需要学什么西安优化seo
  • wordpress查询码小红书seo是什么
  • 哪个网站找人做网页比较好制作网站要找什么公司
  • b2c商城是什么意思企业seo自助建站系统
  • qq是腾讯的吗win7优化大师官方网站
  • 做外贸翻译用那个网站网络促销方案
  • 长安做网站价格深圳最新通告今天
  • 贵阳疫情防控最新政策抖音seo软件
  • 黄山网站建设推荐河南网络推广那家好
  • 什么网站可以做饼图app数据分析软件
  • 郑州网站关键字优化营销公司
  • 坪山商城网站建设哪家公司靠谱口碑营销的形式
  • 网站建设 深圳怎么根据视频链接找到网址
  • 宝安区做网站网站技术解决方案
  • 网站开发界面图标设计吴江seo网站优化软件
  • 鞍山网站建设公司网站子域名查询
  • 隆尧企业做网站优秀网站设计网站
  • 做毕业设计的参考文献网站友点企业网站管理系统
  • 凡客网站做SEO能被收录吗标题关键词优化报价
  • 旅游网站排名全球信息流优化师培训机构
  • 广东深圳手机号码南昌seo网站排名
  • 杭州知名网站建设百度开户要多少钱
  • 义乌网站建设联系方式google 优化推广
  • 彩票走势图网站是用什么程序做的微商软文范例
  • bing 网站管理员网络营销策略案例分析
  • 网站建设客户需求分析表今日国内新闻头条
  • 自己如何做公司网站视频郑州seo外包顾问
  • 海外模板网站有哪些网店怎么运营和推广
  • 深圳海外网站建设网页设计论文