微信小程序仿今日頭條導(dǎo)航欄滾動(dòng)解析
項(xiàng)目需要,做一個(gè)和今日頭條一樣的導(dǎo)航欄,可以橫行滾動(dòng),幸好再weui里面看到了類似的例子
地址:https://weui.shanliwawa.top/demo/js4.html,使用iscroll-lite.j實(shí)現(xiàn),weui自己封裝了一層,vue中實(shí)現(xiàn)代碼:
<div id="tab-tip" class="container">
<div id="tagnav" class="weui-navigator weui-navigator-wrapper" style="touch-action: none;padding-left:5px">
<ul class="weui-navigator-list first_nav">
<li class v-for="group in groupList">
<a href="javascript:;" rel="external nofollow" :groupId="group.id" @click="loadData(group.id)">{{group.name}}</a>
</li>
</ul>
</div>
</div> 初始化:
mounted() {
setTimeout(function() {
TagNav("#tagnav", {
type: "scrollToNext",
curClassName: "weui-state-active",
index: 0
});
$(".first_nav")
.children(":first")
.find("a")
.addClass("first_border_circle");
$(".first_nav")
.children(":last")
.find("a")
.addClass("end_border_circle");
}, 0);
},
注意:引入weui的css,class="container"這個(gè)一定要有,不然出現(xiàn)定位出現(xiàn)問題。
setimeout等元素渲染完成再初始化。
當(dāng)然做這個(gè)項(xiàng)目的時(shí)候出現(xiàn)了一個(gè)問題,安卓手機(jī)第一次進(jìn)入頁面,非導(dǎo)航欄滑動(dòng)的時(shí)候敏感,導(dǎo)致本來是滑動(dòng),觸發(fā)了click事件,導(dǎo)致跳轉(zhuǎn)
通過查找了許多資料,因?yàn)閕scroll-lite默認(rèn)事件touchend等綁定再window上,不是綁定再我們滾動(dòng)的元素(上面例子:id="tagnav"的div),導(dǎo)致
點(diǎn)擊其他的區(qū)域觸發(fā)了click事件,幸好看到它有配置項(xiàng):bindToWrapper,把這個(gè)值設(shè)定為true解決
因?yàn)閣eui重新封裝了,所以找到,添加:bindToWrapper: true即可解決
self.iScroll = new IScroll(self.el, {
scrollX: true,
scrollY: false,
click: true,
bindToWrapper: true//防止touchend等事件綁定到window,導(dǎo)致滑動(dòng)敏感觸發(fā)
});
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- 微信小程序scroll-view實(shí)現(xiàn)滾動(dòng)到錨點(diǎn)左側(cè)導(dǎo)航欄點(diǎn)餐功能(點(diǎn)擊種類,滾動(dòng)到錨點(diǎn))
- 微信小程序?qū)崿F(xiàn)橫向滾動(dòng)導(dǎo)航欄效果
- 微信小程序tab切換可滑動(dòng)切換導(dǎo)航欄跟隨滾動(dòng)實(shí)現(xiàn)代碼
- 微信小程序頂部可滾動(dòng)導(dǎo)航效果
- 微信小程序點(diǎn)擊滾動(dòng)到指定位置的實(shí)現(xiàn)
- 微信小程序頁面滾動(dòng)到指定位置代碼實(shí)例
- 微信小程序?qū)崿F(xiàn)點(diǎn)擊導(dǎo)航標(biāo)簽滾動(dòng)定位到對(duì)應(yīng)位置
相關(guān)文章
解決Babylon.js中AudioContext was not allowed&nbs
這篇文章主要介紹了解決Babylon.js中AudioContext was not allowed to start異常問題方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-04-04
JavaScript實(shí)現(xiàn)系統(tǒng)防掛機(jī)(無操作彈窗)的示例詳解
在一些學(xué)習(xí)系統(tǒng),或者考試系統(tǒng)中。一旦出現(xiàn)長時(shí)間未操作,就會(huì)判定這個(gè)人不在場(chǎng)。所以就會(huì)進(jìn)行退出系統(tǒng),處于對(duì)安全和系統(tǒng)負(fù)擔(dān)還有業(yè)務(wù)的需求。本文就來用JavaScript做一個(gè)系統(tǒng)防掛機(jī)功能,需要的可以參考一下2023-01-01
javascript currying返回函數(shù)的函數(shù)
currying函數(shù)是一種返回函數(shù)的函數(shù),是閉包最偉大的應(yīng)用之一。有關(guān)閉包更詳細(xì)的定義可參見這里與這里。如下currying函數(shù)的一種定義。2009-11-11
JavaScript利用normalizr實(shí)現(xiàn)復(fù)雜數(shù)據(jù)轉(zhuǎn)換
當(dāng)我們需要進(jìn)行數(shù)據(jù)轉(zhuǎn)換以便拆分和維護(hù)時(shí),可以使用redux作者 Dan Abramov 編寫的normalizr來處理數(shù)據(jù),本文將為大家詳細(xì)講講其用法,感興趣的可以了解一下2022-07-07
javascript實(shí)現(xiàn)密碼驗(yàn)證
這篇文章主要介紹了javascript密碼驗(yàn)證的實(shí)現(xiàn)方法,過程很簡單具有一定的參考價(jià)值,適合初學(xué)者學(xué)習(xí)研究,感興趣的小伙伴們可以參考一下2015-11-11
TypeScript中的類型運(yùn)算符實(shí)現(xiàn)
TypeScript 是一種強(qiáng)類型語言,它通過使用類型運(yùn)算符來強(qiáng)化類型安全性,本文主要介紹了TypeScript中的類型運(yùn)算符實(shí)現(xiàn),感興趣的可以了解一下2023-10-10
詳解微信小程序?qū)崿F(xiàn)跑馬燈效果(附完整代碼)
這篇文章主要介紹了微信小程序跑馬燈效果,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04

