vue監(jiān)聽滾動事件 實現(xiàn)某元素吸頂或者固定位置顯示

最近寫了一個VUE的web app項目瑰钮,需要實現(xiàn)某個部位吸頂?shù)男Ч疤病<矗撁嫱匣瑒永饲矗瑒偤玫竭_該部位時开睡,該部分,固定在頂部顯示苟耻。

image.png

1篇恒、監(jiān)聽滾動事件

利用VUE寫一個在控制臺打印當前的scrollTop,

首先,在mounted鉤子中給window添加一個滾動滾動監(jiān)聽事件凶杖,

mounted () {
  window.addEventListener('scroll', this.handleScroll)
},

然后在方法中胁艰,添加這個handleScroll方法

handleScroll () {
  let scrollTop = window.pageYOffset || document.documentElement.scrollTop || 
  document.body.scrollTop
  console.log(scrollTop)
},

2、監(jiān)聽元素到頂部的距離 并判斷滾動的距離如果大于了元素到頂部的距離時智蝠,設(shè)置searchBar為true,否則就是false

handleScroll () {
  let scrollTop = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop
  let offsetTop = document.querySelector('#searchBar').offsetTop
  this.searchBarFixed = scrollTop > (offsetTop - 44) // 44px是導(dǎo)航標題頭的高度
},
toggle (tabIndex) {
  this.whichTab = tabIndex
  window.location.href = '#searchBar' // 錨點
}

先寫一個該元素固定到頂部的樣式腾么,isFixed(less寫法)

#searchBar{
  .isFixed{
    position:fixed;
    background-color:#fff;
    top:44px; // 44px是導(dǎo)航標題頭的高度
    z-index:999;
  }
}

然后將需要固定的元素的class與searchBar進行綁定,如果searchBar為true時杈湾,就應(yīng)用這個isFixed樣式

<div class="searchBar" id="searchBar">
 <ul>
 <li @click="toggle(1)">產(chǎn)品特色<i class="iconfont icon-jiantouxia"></i></li>
 <li @click="toggle(2)">詳細說明<i class="iconfont icon-jiantouxia"></i></li>
 <li @click="toggle(3)">常見問題<i class="iconfont icon-jiantouxia"></i></li>
 </ul>
<ul v-show="searchBarFixed" class="isFixed">
 <li @click="toggle(1)">產(chǎn)品特色<i class="iconfont icon-jiantouxia"></i></li>
 <li @click="toggle(2)">詳細說明<i class="iconfont icon-jiantouxia"></i></li>
 <li @click="toggle(3)">常見問題<i class="iconfont icon-jiantouxia"></i></li>
 </ul>
</div>

固定后的結(jié)果:

image.png

注意解虱,如果離開該頁面需要移除這個監(jiān)聽的事件,不然會報錯漆撞。

destroyed () {
  window.removeEventListener('scroll', this.handleScroll)
},
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末殴泰,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子叫挟,更是在濱河造成了極大的恐慌艰匙,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,123評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件抹恳,死亡現(xiàn)場離奇詭異员凝,居然都是意外死亡,警方通過查閱死者的電腦和手機奋献,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,031評論 2 384
  • 文/潘曉璐 我一進店門健霹,熙熙樓的掌柜王于貴愁眉苦臉地迎上來旺上,“玉大人,你說我怎么就攤上這事糖埋⌒ǎ” “怎么了?”我有些...
    開封第一講書人閱讀 156,723評論 0 345
  • 文/不壞的土叔 我叫張陵瞳别,是天一觀的道長征候。 經(jīng)常有香客問我,道長祟敛,這世上最難降的妖魔是什么疤坝? 我笑而不...
    開封第一講書人閱讀 56,357評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮馆铁,結(jié)果婚禮上跑揉,老公的妹妹穿的比我還像新娘。我一直安慰自己埠巨,他們只是感情好历谍,可當我...
    茶點故事閱讀 65,412評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著辣垒,像睡著了一般望侈。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上勋桶,一...
    開封第一講書人閱讀 49,760評論 1 289
  • 那天甜无,我揣著相機與錄音,去河邊找鬼哥遮。 笑死岂丘,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的眠饮。 我是一名探鬼主播奥帘,決...
    沈念sama閱讀 38,904評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼仪召!你這毒婦竟也來了寨蹋?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,672評論 0 266
  • 序言:老撾萬榮一對情侶失蹤扔茅,失蹤者是張志新(化名)和其女友劉穎已旧,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體召娜,經(jīng)...
    沈念sama閱讀 44,118評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡运褪,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,456評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片秸讹。...
    茶點故事閱讀 38,599評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡檀咙,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出璃诀,到底是詐尸還是另有隱情弧可,我是刑警寧澤,帶...
    沈念sama閱讀 34,264評論 4 328
  • 正文 年R本政府宣布劣欢,位于F島的核電站棕诵,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏凿将。R本人自食惡果不足惜年鸳,卻給世界環(huán)境...
    茶點故事閱讀 39,857評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望丸相。 院中可真熱鬧,春花似錦彼棍、人聲如沸灭忠。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,731評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽弛作。三九已至,卻和暖如春华匾,著一層夾襖步出監(jiān)牢的瞬間映琳,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,956評論 1 264
  • 我被黑心中介騙來泰國打工蜘拉, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留萨西,地道東北人。 一個月前我還...
    沈念sama閱讀 46,286評論 2 360
  • 正文 我出身青樓旭旭,卻偏偏與公主長得像谎脯,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子持寄,可洞房花燭夜當晚...
    茶點故事閱讀 43,465評論 2 348

推薦閱讀更多精彩內(nèi)容