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

营销网站建设的因素青岛网站建设公司有哪些

营销网站建设的因素,青岛网站建设公司有哪些,顺德网站建设如何,阿里万网站建设背景说明 鼠标移动到产品服务上时,出现标红的下拉框。 使用纯css的方案实现最简单,但是没什么技术含量,弃之;使用第三方组件库,样式定制麻烦弃之。因此,我们使用vue3直接在页面创建一个dom作为下拉框吧。…

背景说明

鼠标移动到产品服务上时,出现标红的下拉框。

使用纯css的方案实现最简单,但是没什么技术含量,弃之;使用第三方组件库,样式定制麻烦弃之。因此,我们使用vue3直接在页面创建一个dom作为下拉框吧。

技术方案

先写一个下拉框组件

首先,我们先写一个组件,用来展示下拉框内容。组件名称起为 :Select.vue

<template><div class="select-wrap"><span>福利商城</span><span>Saas平台</span><span>活动定制</span></div>
</template>

渲染组件

我们要将这个组件渲染在网页上,操作应该是这样的:

当鼠标移动到产品服务时,将下拉框组件作为一个组件实例渲染在页面的合适位置。

vue3中,渲染一个Vonde,核心逻辑如下:

import { createVNode, h, render, VNode } from 'vue'
import component from "./component.vue"
//1、创造包裹虚拟节点的div元素
const container = document.createElement('div');
//2、创造虚拟节点
vm = createVNode(component)
//3、将虚拟节点创造成真实DOM
render (vm, container)
//4、将渲染的结果放到body下
document.body.appendChild(container.firstElementChild)  

要知道组件渲染的位置,我们必须知道父组件(也就是产品服务的dom位置),我们通过ref来获取父组件的dom信息。

// App.vue
<div ref="select"><span class="name">产品服务</span> 
</div>
<script setup >import { ref } from "vue"const select = ref()
</script>

当鼠标移到产品服务元素上时,渲染下拉框,我们添加个函数

// App.vue
<div ref="select"><span class="name">产品服务</span> 
</div>
<script setup >
import { ref } from "vue"
import Select from "./Select.vue"
const select = ref()
function createDom(){//1、创造包裹虚拟节点的div元素const container = document.createElement('div');//2、创造虚拟节点let vm = createVNode(Select)//3、将虚拟节点创造成真实DOMrender (vm, container)//4、将渲染的结果放到body下document.body.appendChild(container.firstElementChild) 
}
</script>

然后,添加下位置判断

function createDom(){const left = select.value.offsetLeft + "px"const width = select.value.getBoundingClientRect().left + "px"const props = {width,left,}//1、创造包裹虚拟节点的div元素const container = document.createElement('div');//2、创造虚拟节点let vm = createVNode(Select,props)//3、将虚拟节点创造成真实DOMrender (vm, container)//4、将渲染的结果放到body下document.body.appendChild(container.firstElementChild) 
}

其中,prop是传递给Select组件的距离参数,在组件内设置即可。

销毁组件

销毁组件,我们可以使用render渲染一个空对象即可

render (vm, container)

如果需要子组件来销毁自身,我们可以使用父子传值

<template><div class="select-wrap" @mouseleave="beforeUnload"><span>福利商城</span><span>Saas平台</span><span>活动定制</span></div>
</template>
<script   setup>
const emit = defineEmits(['destroy'])
function beforeUnload(){emit('destroy')
}
</script>
```js父组件里,我们需要在props中添加一个onDestroy函数,注意:onDestroy是驼峰式写法```js
function createDom(){const left = select.value.offsetLeft + "px"const width = select.value.getBoundingClientRect().left + "px"const props = {width,left,onDestroy: () => {render(null, container)},}//1、创造包裹虚拟节点的div元素const container = document.createElement('div');//2、创造虚拟节点let vm = createVNode(Select,props)//3、将虚拟节点创造成真实DOMrender (vm, container)//4、将渲染的结果放到body下document.body.appendChild(container.firstElementChild) 
}

这样,就实现了下拉框组件


文章转载自:

http://0u6xFbbs.nqwkn.cn
http://shORBQfx.nqwkn.cn
http://oYPQF39v.nqwkn.cn
http://glmGFQcj.nqwkn.cn
http://tBMo6Jqz.nqwkn.cn
http://WHYXKBBX.nqwkn.cn
http://LsfUs4kW.nqwkn.cn
http://s4wpJWNs.nqwkn.cn
http://fh4ctHQc.nqwkn.cn
http://QANEDTbz.nqwkn.cn
http://70Gjc7Qk.nqwkn.cn
http://hIAHgvoM.nqwkn.cn
http://xSZmTrHS.nqwkn.cn
http://iuWDSGnM.nqwkn.cn
http://E3UkbnQ0.nqwkn.cn
http://JUYC9M6r.nqwkn.cn
http://zInS9VL4.nqwkn.cn
http://3qNo5vS2.nqwkn.cn
http://Z6DNSswy.nqwkn.cn
http://WKfghneD.nqwkn.cn
http://2xKwrn7L.nqwkn.cn
http://oB1DVGsv.nqwkn.cn
http://w3lVMLNt.nqwkn.cn
http://BusYGnSw.nqwkn.cn
http://ATpUMYYd.nqwkn.cn
http://KVgmqAFI.nqwkn.cn
http://fHHzXezm.nqwkn.cn
http://u6g42LyA.nqwkn.cn
http://oCfWdxAp.nqwkn.cn
http://gvD39i5T.nqwkn.cn
http://www.dtcms.com/wzjs/672087.html

相关文章:

  • 网站开发主管招聘国外哪些网站可以兼职做任务
  • 有没有做装修的大型网站而不是平台郑州网络营销网站优化
  • 怎么创建企业邮箱优化大师win7
  • 创建论坛网站需要多少钱记的网站域名
  • 尚云网站建设建设招聘网站需要注册什么证
  • 免费自助创建网站网站建设与管理课程实训
  • 网站建设及编辑岗位职责制作公司网站 黑龙江
  • 网站设置三方交易如何建立自己的摄影网站
  • 用户体验做的好的网站网络课程教学平台
  • 中山工程建设信息网站wordpress网站图片
  • 二级域名做很多网站中国空间站vr全景
  • 昆山企业网站建设网站开发一般用什么开发语言
  • 两学一做学习网站献县做网站价格
  • 长沙网页网站制作视频营销成功的案例
  • 搜索引擎优化网站排名网站建设 今网科技
  • 公司网站是用什么软件做wordpress commentor
  • 青岛网站开发虚拟物品网站制作模板
  • 台州市建设招标投标网站做网站刷东西
  • 企业网站设计概念成都旅游学院
  • 网站推广的工具网站开发 渠道
  • thinkphp 网站模板西安直播网站开发
  • 建设文库网站网站建设费会计处理
  • 无法解析您网站的域名.外贸网站商城
  • 哪些网站做问卷可以赚钱电商网站做互联网金融
  • 网站降权恢复中国经济总量
  • wap卖料建站系统wordpress连接memcached
  • 图片生成链接的网站企业微网站案例
  • 泰安聊城网站建设建站工具cms
  • 做论文常用网站做公司网站要走哪些流程
  • 郑州建设网站黔西南州做网站