前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >获取点击的区域范围

获取点击的区域范围

作者头像
tianyawhl
发布2022-11-14 16:43:55
1.2K0
发布2022-11-14 16:43:55
举报
文章被收录于专栏:前端之攻略前端之攻略

点击的元素在哪个像素范围

父组件

代码语言:javascript
复制
  <div>
     <div>外部</div>
     <TestRef ref="testRef"></TestRef>
  </div>

import TestRef from "@/components/TestRef.vue";

  mounted() {
    let obj = {leftRef:"",rightRef:""}
    console.log("外部mounted")
    console.log(this.$refs.testRef.$refs.leftRef)
    let element = this.$refs.testRef.$refs.leftRef
    console.log(element.getBoundingClientRect())
    let arr = []
    let scrollLeft = document.documentElement.scrollLeft
    let scrollTop = document.documentElement.scrollTop
    for(let key in obj){
      let element = this.$refs.testRef.$refs[key]
      let rect = element.getBoundingClientRect()
      let temObj={flag:key,rect: [rect.left+scrollLeft,rect.right+scrollLeft,rect.top+scrollTop,rect.bottom+scrollTop]}
      arr.push(temObj)
    }
    console.log(arr)
    this.$store.commit("saveCurrentPageRectInfo",arr)
    console.log(document.documentElement.scrollLeft)
    console.log(document.documentElement.scrollTop)
    
    setTimeout(() => {
      // console.log(document.body.scrollTop) // 这个一直为0
      // console.log(document.documentElement.scrollTop)//需要用这个
    }, 2000);
    
  },

子组件 TestRef.vue

代码语言:javascript
复制
<div style="margin-left:50px;">
   <div class="left" ref="leftRef">
      left
      <el-button @click="handleClick">点击</el-button>
   </div>
   <div class="right" ref="rightRef" style="margin-left:2000px">
      right
      <el-button @click="handleClick" size="small">
        点击
      </el-button>
   </div>
   
</div> 

handleClick(e){
  console.log(e)
  console.log(e.pageX)
  console.log(e.pageY)
  console.log(this.$store.state.currentPageRectInfo)
  let arr = this.$store.state.currentPageRectInfo
  for(let i=0;i<arr.length;i++){
       if((e.pageX>arr[i].rect[0] && e.pageX<arr[i].rect[1]) && 
          (e.pageY>arr[i].rect[2] && e.pageY<arr[i].rect[3])){
            console.log(arr[i].flag)
       }
  }
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-11-06,如有侵权请联系 cloudcommunity@tencent.com 删除

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档