欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

vue3錨點定位兩種實現(xiàn)方式示例

 更新時間:2023年07月12日 11:43:05   作者:Peach_Eiton  
這篇文章主要給大家介紹了關(guān)于vue3錨點定位兩種實現(xiàn)的相關(guān)資料,說到錨點定位,很多人第一時間會想到 a標簽,但是a標簽實現(xiàn)的錨點定位并不是那么的完美,需要的朋友可以參考下

方法1: 利用ref實現(xiàn)錨點定位 前面的廢話文學(xué)

說到錨點定位,很多人第一時間會想到 a標簽。但是a標簽實現(xiàn)的錨點定位并不是那么的完美,特別是在hash模式下。
對我而言,vue3的ref就實在是太完美了。

解決問題的方法

很多情況下,我們會循環(huán)一定格式的數(shù)據(jù)對頁面進行渲染,然后再有錨點定位的需求。那么我們該怎么去做呢?

1. setup函數(shù)內(nèi)定義變量

const eleRefs = ref([]);
const setRef = (el) => {
  if (el) {
    eleRefs.value.push(el);
  }
};
//獲取變量值
console.log(eleRefs.value[0])

2. 動態(tài)獲取ref并存放到eleRefs數(shù)組當(dāng)中

 <template v-for="(item, index) in data.catalogue">
      <div class="part-cont" :id="'part' + item.id" :ref="setRef">
        <div class="part-box">
          <template v-for="(j, k) in item.picUrls" :key="k">
            <img :src="j" alt="">
          </template>
        </div>
        <template v-for="(i, ind) in item.children">
          <div :id="'part' + i.id" :ref="setRef" class="part-box">
            <template v-for="(j, k) in i.picUrls" :key="k">
              <img :src="j" alt="">
            </template>
          </div>
        </template>
      </div>
    </template>

3. 滾動到特定的ref位置

eleRefs.value[0].scrollIntoView({ block: 'start', behavior: 'smooth' });

over

方法2: 利用a標簽實現(xiàn)錨點定位(滾動響應(yīng))

第二次的廢話文學(xué)

小編想了,還是想把a標簽的錨點定位也記錄一下。

無論是PC端、移動端,還是APP、小程序,只要涉及長篇文章/畫冊、tab切換等的都可能會有錨點定位的需求。我們前端就需要做到點擊錨點能定位,滾動頁面能響應(yīng)。

解決問題的方法

1. a標簽 定位到指定位置

// 錨記
	<a href="#site" rel="external nofollow" >點擊此處到目標位置</a>
// 錨記位置
	<div id="site"></div>

2.滾動響應(yīng)

監(jiān)聽滾動事件

let currSite = document.documentElement.scrollTop || document.body.scrollTop // document.documentElement.scrollTop  // 當(dāng)前滾動位置
let windowHeight =window.innerHeight||document.documentElement.clientHeight || document.body.clientHeight  // 視口高度
 // 獲取元素信息
 let ele = document.getElementById('site')
 let eleTop = ele.offsetTop // 元素距頁面頂部高度(頭部)
 let eleHeight = ele.clientHeight  // 元素高度
  let eleBot = eleHeight + eleTop  // 元素底部距頁面頂部高度(尾部)
/* 判斷元素是否在可視區(qū)域:
	1.元素內(nèi)嵌可視區(qū)域(首尾均在可視區(qū)域內(nèi))
	2.元素外嵌可視區(qū)域(首位均在可視區(qū)域外)
	3.元素頭部在可視區(qū)域內(nèi),尾部在可視區(qū)域外
*/
if(eleTop >= currSite &&eleTop < currSite + windowHeight || (eleBot  > currSite &&eleBot < currSite + windowHeight) || (eleTop e < currSite && eleBot > currSite + windowHeight)){
	 // 元素在可視區(qū)域
}else{
	// 元素不在可視區(qū)域
}

over

總結(jié)

到此這篇關(guān)于vue3錨點定位兩種實現(xiàn)方式的文章就介紹到這了,更多相關(guān)vue3錨點定位內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • VUE使用DXFParser組件解析dxf文件生成圖片的操作代碼

    VUE使用DXFParser組件解析dxf文件生成圖片的操作代碼

    這篇文章主要介紹了VUE使用DXFParser組件解析dxf文件生成圖片的操作代碼,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-09-09
  • 基于vue2實現(xiàn)一個日歷組件

    基于vue2實現(xiàn)一個日歷組件

    最近在做一個類似課程表的需求,需要自制一個日歷來支持功能及展現(xiàn),就順便研究一下應(yīng)該怎么開發(fā)日歷組件,下面這篇文章主要給大家介紹了關(guān)于如何基于vue2實現(xiàn)一個日歷組件的相關(guān)資料,需要的朋友可以參考下
    2022-12-12
  • Vue過濾器(filter)實現(xiàn)及應(yīng)用場景詳解

    Vue過濾器(filter)實現(xiàn)及應(yīng)用場景詳解

    在Vue中使用過濾器(Filters)來渲染數(shù)據(jù)是一種很有趣的方式,下面這篇文章主要給大家介紹了關(guān)于Vue過濾器(filter)實現(xiàn)及應(yīng)用場景的相關(guān)資料,需要的朋友可以參考下
    2021-06-06
  • 解決antd datepicker 獲取時間默認少8個小時的問題

    解決antd datepicker 獲取時間默認少8個小時的問題

    這篇文章主要介紹了解決antd datepicker 獲取時間默認少8個小時的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-10-10
  • 如何解決vue-json-editor無法輸入中文、重影問題

    如何解決vue-json-editor無法輸入中文、重影問題

    文章介紹了如何解決vue-json-editor組件無法輸入中文和重影的問題,通過修改源碼并使用vue-json-edit-fix-cn組件來 fix 這兩個問題,同時,文章還提供了如何移除舊的依賴包并安裝新的依賴包的步驟
    2025-01-01
  • vue增加強緩存和版本號的實現(xiàn)方法

    vue增加強緩存和版本號的實現(xiàn)方法

    這篇文章主要介紹了vue增加強緩存和版本號的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • vue中ref引用操作DOM元素的實現(xiàn)

    vue中ref引用操作DOM元素的實現(xiàn)

    本文主要介紹了vue中ref引用操作DOM元素的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-01-01
  • vue中正確使用jsx語法的姿勢分享

    vue中正確使用jsx語法的姿勢分享

    這篇文章主要給大家介紹了關(guān)于vue中正確使用jsx的相關(guān)資料,JSX就是Javascript和XML結(jié)合的一種格式,React發(fā)明了JSX,利用HTML語法來創(chuàng)建虛擬DOM,當(dāng)遇到<,JSX就當(dāng)HTML解析,遇到{就當(dāng)JavaScript解析,需要的朋友可以參考下
    2021-07-07
  • Vue使用el-input自動獲取焦點和二次獲取焦點問題及解決

    Vue使用el-input自動獲取焦點和二次獲取焦點問題及解決

    這篇文章主要介紹了Vue使用el-input自動獲取焦點和二次獲取焦點問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • Vue中保存數(shù)據(jù)到磁盤文件的方法

    Vue中保存數(shù)據(jù)到磁盤文件的方法

    今天小編就為大家分享一篇Vue中保存數(shù)據(jù)到磁盤文件的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-09-09

最新評論