首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >vue2 如何实现将dom元素转移到指定节点

vue2 如何实现将dom元素转移到指定节点

作者头像
Miloce
发布2022-09-28 11:18:53
发布2022-09-28 11:18:53
85300
举报
文章被收录于专栏:JoyJoy
运行总次数:0

背景:在写商城页面时,PC端给的设计图纸是按照宽度1920给的,内部内容区域(main)1191px,写死的指定宽度。然后新出了一个页面,类似于12306的这个页面,图片部分,直接占满了屏幕的100vw,内部div的宽度,超出了外部的,因此想到了vue3新出的teleport,vue2如何实现这个功能

新建一个teleport组件

点击查看代码

代码语言:javascript
代码运行次数:0
运行
复制
<script>
	export default {
		name: 'teleport',
		props: {
			/* 移动至哪个标签内,最好使用id */
			to: {
				type: String,
				required: true
			}
		},

		mounted() {
			document.querySelector(this.to).appendChild(this.$el)
		},

		destroyed() {
			document.querySelector(this.to).removeChild(this.$el)
		},

		render() {
			return <div>{this.$scopedSlots.default()}</div>
		}
	}
</script>

从使用页面引入组件 点击查看代码

代码语言:javascript
代码运行次数:0
运行
复制
<template>
  <div class="logisticsInfo">
    <div class="title-box">
      <teleport to="#header__center"> <img src="https://www.cnblogs.com/mengqc1995/assets/logisticsInfoImgs/bg-title.png"
             alt=""
             class="bg-box"></teleport>

    </div>
  </div>
</template>
<script>
import teleport from './components/teleport.vue'
export default {
  name: 'QsMallWebLogisticsInfo',
  components: {
    teleport,
  },
  data() {
    return {}
  },

  mounted() {},

  methods: {},
}
</script>
<style lang="scss" scoped>
.logisticsInfo {
  .title-box {
  }
}
</style>
<style lang="scss">
#header__center {
  .bg-box {
    height: 458px;
    width: 100%;
  }
}
</style>

注意样式不要写在使用属性里 指定转移的节点,通过id的方式,进行绑定 点击查看代码

代码语言:javascript
代码运行次数:0
运行
复制
<div id="header__center"></div>
   <div class="main">
     <router-view ref="mallPage"></router-view>
   </div>
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-05-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 背景:在写商城页面时,PC端给的设计图纸是按照宽度1920给的,内部内容区域(main)1191px,写死的指定宽度。然后新出了一个页面,类似于12306的这个页面,图片部分,直接占满了屏幕的100vw,内部div的宽度,超出了外部的,因此想到了vue3新出的teleport,vue2如何实现这个功能
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档