午夜剧场伦理_日本一道高清_国产又黄又硬_91黄色网战_女同久久另类69精品国产_妹妹的朋友在线

您的位置:首頁技術(shù)文章
文章詳情頁

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

瀏覽:122日期:2022-06-12 18:41:03
目錄方法1: 利用ref實(shí)現(xiàn)錨點(diǎn)定位 前面的廢話文學(xué)解決問題的方法1. setup函數(shù)內(nèi)定義變量2. 動(dòng)態(tài)獲取ref并存放到eleRefs數(shù)組當(dāng)中3. 滾動(dòng)到特定的ref位置方法2: 利用a標(biāo)簽實(shí)現(xiàn)錨點(diǎn)定位(滾動(dòng)響應(yīng))第二次的廢話文學(xué)解決問題的方法2.滾動(dòng)響應(yīng)總結(jié)方法1: 利用ref實(shí)現(xiàn)錨點(diǎn)定位 前面的廢話文學(xué)

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

解決問題的方法

很多情況下,我們會(huì)循環(huán)一定格式的數(shù)據(jù)對(duì)頁面進(jìn)行渲染,然后再有錨點(diǎn)定位的需求。那么我們?cè)撛趺慈プ瞿兀?/p>1. setup函數(shù)內(nèi)定義變量const eleRefs = ref([]);const setRef = (el) => { if (el) { eleRefs.value.push(el); }};//獲取變量值console.log(eleRefs.value[0])2. 動(dòng)態(tài)獲取ref并存放到eleRefs數(shù)組當(dāng)中 <template v-for='(item, index) in data.catalogue'> <div :id=''part' + item.id' :ref='setRef'><div class='part-box'> <template v-for='(j, k) in item.picUrls' :key='k'> <img :src='https://www.jb51.net/javascript/j'> </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='https://www.jb51.net/javascript/j'> </template> </div></template> </div> </template>3. 滾動(dòng)到特定的ref位置eleRefs.value[0].scrollIntoView({ block: 'start', behavior: 'smooth' });

over

方法2: 利用a標(biāo)簽實(shí)現(xiàn)錨點(diǎn)定位(滾動(dòng)響應(yīng))第二次的廢話文學(xué)

小編想了,還是想把a(bǔ)標(biāo)簽的錨點(diǎn)定位也記錄一下。

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

解決問題的方法

1. a標(biāo)簽 定位到指定位置

// 錨記<a rel='external nofollow' >點(diǎn)擊此處到目標(biāo)位置</a>// 錨記位置<div id='site'></div>2.滾動(dòng)響應(yīng)

監(jiān)聽滾動(dòng)事件

let currSite = document.documentElement.scrollTop || document.body.scrollTop // document.documentElement.scrollTop // 當(dāng)前滾動(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錨點(diǎn)定位兩種實(shí)現(xiàn)方式的文章就介紹到這了,更多相關(guān)vue3錨點(diǎn)定位內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: JavaScript
主站蜘蛛池模板: 午夜黄色在线观看 | 亚洲精品一区二 | 欧洲做受高潮免费看 | 欧美日韩亚洲视频 | 亚洲精品久久久久久国 | 成人精品影院 | 免费成人在线看 | 色狠狠一区二区三区 | 欧美一级啪啪 | 免费在线观看av的网站 | 三级视频在线 | 色多多在线 | 国产精品久久久久免费 | 最近2019中文字幕大全第二页 | 亚洲特级黄色片 | 日本一二三区在线视频 | 女同一区二区三区 | 久久伊人久久 | 神马午夜888 | 日本黄色三级网站 | www.自拍偷拍| 欧美最猛黑人xxxx黑人猛交 | 成年人晚上看的视频 | 亚洲天堂av中文字幕 | 欧美精品一级片 | 欧美日韩字幕 | 精品一区二区三孕妇视频 | 男人的天堂毛片 | 99热免费精品 | 欧美日韩激情在线 | 波多野结衣日韩 | 人人看人人做 | 久久精品日 | 国产综合视频 | 亚洲一区二区视频在线观看 | 人人草网站 | 天天干天天干天天干 | 国产影视一区 | 国产一级理论片 | 欧美在线专区 | 黑人巨大国产9丨视频 |