Vuejs2 如何从顶部获取相对于设备屏幕的位置?

Vuejs2 如何从顶部获取相对于设备屏幕的位置?,vuejs2,Vuejs2,我有一个带有b-list-group-item(bootstrap4)的边栏。我想从我点击的每个项目的顶部获取位置 我试图通过document.getElementbyID获得该职位,但没有帮助 MainPage.vue 脚本: toShow(e){ if(this.isShown){ this.isShown = false; } else{ this.isShown = true; /

我有一个带有b-list-group-item(bootstrap4)的边栏。我想从我点击的每个项目的顶部获取位置

我试图通过document.getElementbyID获得该职位,但没有帮助

MainPage.vue

脚本:

toShow(e){
        if(this.isShown){
          this.isShown = false;
        }
        else{
          this.isShown = true;
          // this.top = document.getElementsByClassName('subCategory').style.top;
          // let heightSubcat = document.getElementsByTagName('b-list-group-item').height;
          // alert(heightSubcat);
          // this.top = heightSubcat - e.clientY + 'px';
          alert(window.scrollY + document.querySelector('div').getBoundingClientRect().top);
        }
      }
    }
模板:

<div id="sidebar" class="mobileMenu" :class="[isOpen ? 'open' : 'closed']">
      <b-list-group>
        <b-list-group-item><span>ФИЗ.ЛИЦАМ</span></b-list-group-item>
        <b-list-group-item @click="toShow" class="subCategory"><a>НАЛОГИ</a></b-list-group-item>
        <b-list-group-item @click="toShow" class="subCategory"><a>ШТРАФЫ</a></b-list-group-item>
        <b-list-group-item><span>ЮР.ЛИЦАМ</span></b-list-group-item>
        <b-list-group-item @click="toShow" class="subCategory"><a>НАЛОГИ</a></b-list-group-item>
        <b-list-group-item @click="toShow" class="subCategory"><a>ШТРАФЫ</a></b-list-group-item>
        <b-list-group-item @click="toShow" class="subCategory"><a>СОЦИАЛЬНЫЕ ОТЧИСЛЕНИЯ</a></b-list-group-item>
        <b-list-group-item><span>ИП.КХ</span></b-list-group-item>
        <b-list-group-item @click="toShow" class="subCategory"><a>НАЛОГИ</a></b-list-group-item>
        <b-list-group-item @click="toShow" class="subCategory"><a>ШТРАФЫ</a></b-list-group-item>
        <b-list-group-item @click="toShow" class="subCategory"><a>СОЦИАЛЬНЫЕ ОТЧИСЛЕНИЯ</a></b-list-group-item>
        <b-list-group-item><span>ЕД.СОВОКУПНЫЙ ПЛАТЕЖ</span></b-list-group-item>
        <b-list-group-item @click="toShow" class="subCategory"><a>ЕСП (1 МРП)</a></b-list-group-item>
        <b-list-group-item @click="toShow" class="subCategory"><a>ЕСП (0.5 МРП)</a></b-list-group-item>
      </b-list-group>
    </div>

ФИЗ.ЛИЦАМ
НАЛОГИ
ШТРАФЫ
ЮР.ЛИЦАМ
НАЛОГИ
ШТРАФЫ
СОЦИАЛЬНЫЕ ОТЧИСЛЕНИЯ
ИП.КХ
НАЛОГИ
ШТРАФЫ
СОЦИАЛЬНЫЕ ОТЧИСЛЕНИЯ
ЕД.СОВОКУПНЫЙ ПЛАТЕЖ
ЕСП (1 МРП)
ЕСП (0.5 МРП)

只需使用单击事件的目标:

toShow(e){
    if(this.isShown){
      this.isShown = false;
    }
    else{
      this.isShown = true;
      alert(window.scrollY + e.target.getBoundingClientRect().top);
    }
  }
}

谢谢你,先生!它帮助了我!