vue2双层循环生成动态ref,并跳转到组件内的指定位置

话不用多说,先上一个视频,看看是不是你们需要的效果

vue2双层循环生成动态ref,并跳转到组件内的指定位置

<div class="menu-content"  ref="menu">
				<el-collapse v-model="activeNames">
					<el-collapse-item style="padding: 10px;" v-for="(item,index) in project.list" :title="item.name"
						:name="item.id">
						<div @click="goPageByType(leaf,item.id,leaf.id)" v-for="(leaf,index1) in item.leafList"
							:class="['menu-item',leafId == leaf.id?'menu-item-active':'']" v-if="leaf.id!=-1"
							:ref="`itemRef${item.id}-${leaf.id}`">
							<div class="item-left">
								<img :src="leaf.icon" />
							</div>
							<div class="item-right">
								{{leaf.name}}
							</div>
						</div>
					</el-collapse-item>


				</el-collapse>

			</div>

const menuHtmlRef = this.$refs.menu;
						//遍历去判断,并定位到指定的ref的位置,
						this.project.list.forEach((row, index) => {
							row.leafList.forEach((item, index1) => {
								const refName = `itemRef${row.id}-${item.id}`;
								// 直接访问特定的ref
								this.$nextTick(() => {
									const elements = this.$refs[refName];
									if (elements && elements.length > 0) {
										const str = JSON.stringify(elements[0]._prevClass);
										if (str.search("menu-item-active") != -
											1) { //找到当前要定位的数据
											const offsetTop = elements[0].offsetTop
											menuHtmlRef.scrollTop = offsetTop;
											
										}

									}

								});
							});
						});

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yzhSWJ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值