weex slider實(shí)現(xiàn)滑動(dòng)底部導(dǎo)航功能
本文實(shí)例為大家分享了weex slider實(shí)現(xiàn)滑動(dòng)底部導(dǎo)航功能的具體代碼,供大家參考,具體內(nèi)容如下
先看效果圖

這里主要是使用了weex 的 slider 實(shí)現(xiàn)了可以滑動(dòng)的底部導(dǎo)航框架
這里最主要的幾個(gè)方法,如果光是看weex的官方文檔,可能很痛苦,因?yàn)橛幸恍┕δ茈m然代碼里已經(jīng)寫(xiě)好,但是他并沒(méi)有寫(xiě)出來(lái),希望官方的文檔能夠盡快的完善起來(lái)
實(shí)現(xiàn)這樣的功能,首先是一個(gè)slider的用法,這個(gè)官方文檔是用這個(gè)來(lái)給大家做輪播圖的。
首先我們不能設(shè)置自動(dòng)播放ok了(直接不復(fù)制就ok了)
第二我們需要能夠捕獲到滾動(dòng)到哪一頁(yè)的索引,這個(gè)值需要用來(lái)設(shè)置下面的當(dāng)前tab(監(jiān)聽(tīng)slider的change 方法)
第三我們需要通過(guò)外部js去設(shè)置slider的當(dāng)前頁(yè)面,譬如我們點(diǎn)擊第二個(gè)tab,我們需要把顯示的index 設(shè)置為1(index是從0開(kāi)始的)官方文檔目前并沒(méi)有給出這塊的解釋
那么下面我們通過(guò)源碼挖掘,我們知道slider其實(shí)可以有一個(gè)屬性 :index
這個(gè)就是當(dāng)前的索引了,那么我們需要設(shè)置這個(gè)索引,只要去改變這個(gè)對(duì)應(yīng)得index 的值就可以了
那么這里就上代碼了(文中所有的圖片是去assets 文件夾取得圖片,并非本地圖片,所以需要自己放一些圖片到assets目錄)
<template>
<div :style="{height:`${totalheight}px`}">
<slider style="flex:1;" @change="onchange" :index="page">
<div class="frame" v-for="img in imageList">
<image class="image" resize="cover" :src="img.src"></image>
<text class="contenttext">這是第{{page+1}}頁(yè)</text>
</div>
</slider>
<text style="background-color:gray;height:2px;bottom:100px;"/>
<div class="nav">
<div class="link" @click="changepage(0)">
<image id="image1" v-bind:src="src1" class="logo"></image>
<text class="title" :style="{color:page === 0?'#00BBE4':'gray'}">首頁(yè){{pathchanged}}</text>
</div>
<div class="link" @click="changepage(1)">
<image v-bind:src="src2" class="logo"></image>
<text class="title" :style="{color:page === 1?'#00BBE4':'gray'}">分類(lèi)</text>
</div>
<div class="link" @click="changepage(2)">
<image v-bind:src="src3" class="logo"></image>
<text class="title" :style="{color:page === 2?'#00BBE4':'gray'}">我的</text>
</div>
</div>
</div>
</template>
<style scoped>
.image {
width: 750px;
height: 700px;
}
.slider {
width: 750px;
height: 700px;
border-width: 2px;
border-style: solid;
border-color: #41B883;
}
.frame {
width: 750px;
height: 700px;
position: relative;
}
.logo {
position: relative;
width: 45px;
height: 45px;
}
.nav {
position: absolute;
width: 750px;
bottom: 0px;
flex-direction: row;
flex-wrap: nowrap;
justify-content: space-between;
align-items: center;
}
.link {
width: 162.5px;
flex-shrink: 1;
text-align: center;
margin:0 auto;
padding: 3px;
align-items: center;
}
.title {
font-size: 25px;
line-height: 35px;
text-align: center;
top: 5px;
}
.contenttext {
font-size: 32px;
line-height: 35px;
text-align: center;
top: 25px;
color: 38px;
color: red;
}
</style>
<script>
export default {
data () {
return {
page:0,
imageList: [
{ src: 'https://gd2.alicdn.com/bao/uploaded/i2/T14H1LFwBcXXXXXXXX_!!0-item_pic.jpg'},
{ src: 'https://gd1.alicdn.com/bao/uploaded/i1/TB1PXJCJFXXXXciXFXXXXXXXXXX_!!0-item_pic.jpg'},
{ src: 'https://gd3.alicdn.com/bao/uploaded/i3/TB1x6hYLXXXXXazXVXXXXXXXXXX_!!0-item_pic.jpg'}
],
src1: "../../../assets/home_btn_home_s.png",
src2: "../../../assets/home_btn_rent.png",
src3: "../../../assets/cut.png"
}
},
methods:{
onchange(evtValue){
this.page=evtValue.index
},
changepage(page){
this.page=page
}
},
computed: {
totalheight(){
const height = 750/weex.config.env.deviceWidth*weex.config.env.deviceHeight
return height-180
},
pathchanged(){
var self = this
if(self.page === 0){
self.src1 = "../../../assets/home_btn_home_s.png"
self.src2 = "../../../assets/home_btn_rent.png"
self.src3 = "../../../assets/cut.png"
}else if(self.page === 1){
self.src1 = "../../../assets/home_btn_home.png"
self.src2 = "../../../assets/home_btn_rent_s.png"
self.src3 = "../../../assets/cut.png"
}else if(this.page === 2){
self.src1 = "../../../assets/home_btn_home.png"
self.src2 = "../../../assets/home_btn_rent.png"
self.src3 = "../../../assets/cut_on.png"
}
return ''
}
}
}
</script>
因?yàn)槌3?huì)遇到有同學(xué)問(wèn)這塊的東西,所以就索性寫(xiě)一個(gè),給大家參考使用。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
es6中使用map簡(jiǎn)化復(fù)雜條件判斷操作實(shí)例詳解
這篇文章主要介紹了es6中使用map簡(jiǎn)化復(fù)雜條件判斷操作,結(jié)合實(shí)例形式詳細(xì)分析了傳統(tǒng)方法與map簡(jiǎn)化復(fù)雜條件判斷的相關(guān)操作技巧,需要的朋友可以參考下2020-02-02
Bun運(yùn)行時(shí)是新一代高性能JavaScript/TypeScript運(yùn)行時(shí)
Bun由Jarred Sumner創(chuàng)建,是一款新興的JavaScript和TypeScript運(yùn)行時(shí),旨在比Node.js和Deno提供更高性能和快速啟動(dòng),Bun使用Zig語(yǔ)言編寫(xiě),內(nèi)置包管理并支持Node.js大部分API,適用于高并發(fā)API服務(wù)和快速構(gòu)建工具2024-11-11
微信小程序?qū)崿F(xiàn)左側(cè)滑欄過(guò)程解析
這篇文章主要介紹了微信小程序?qū)崿F(xiàn)左側(cè)滑欄過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-08-08
JS實(shí)現(xiàn)的小火箭發(fā)射動(dòng)畫(huà)效果示例
這篇文章主要介紹了JS實(shí)現(xiàn)的小火箭發(fā)射動(dòng)畫(huà)效果,涉及javascript基于時(shí)間函數(shù)的頁(yè)面元素屬性動(dòng)態(tài)變換實(shí)現(xiàn)運(yùn)動(dòng)效果相關(guān)操作技巧,需要的朋友可以參考下2018-12-12
解決Layui中l(wèi)ayer報(bào)錯(cuò)的問(wèn)題
今天小編就為大家分享一篇解決Layui中l(wèi)ayer報(bào)錯(cuò)的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-09-09
解讀請(qǐng)求方式Method和請(qǐng)求類(lèi)型Content-Type
HTTP請(qǐng)求中,Content-Type頭部用于指定請(qǐng)求體或響應(yīng)體的類(lèi)型,常見(jiàn)的有application/x-www-form-urlencoded、multipart/form-data、application/json、text/plain、application/xml等,常用請(qǐng)求方式包括Get、Post、Put、Delete2024-09-09

