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

這里主要是使用了weex 的 slider 實(shí)現(xiàn)了可以滑動的底部導(dǎo)航框架
這里最主要的幾個方法,如果光是看weex的官方文檔,可能很痛苦,因?yàn)橛幸恍┕δ茈m然代碼里已經(jīng)寫好,但是他并沒有寫出來,希望官方的文檔能夠盡快的完善起來
實(shí)現(xiàn)這樣的功能,首先是一個slider的用法,這個官方文檔是用這個來給大家做輪播圖的。
首先我們不能設(shè)置自動播放ok了(直接不復(fù)制就ok了)
第二我們需要能夠捕獲到滾動到哪一頁的索引,這個值需要用來設(shè)置下面的當(dāng)前tab(監(jiān)聽slider的change 方法)
第三我們需要通過外部js去設(shè)置slider的當(dāng)前頁面,譬如我們點(diǎn)擊第二個tab,我們需要把顯示的index 設(shè)置為1(index是從0開始的)官方文檔目前并沒有給出這塊的解釋
那么下面我們通過源碼挖掘,我們知道slider其實(shí)可以有一個屬性 :index
這個就是當(dāng)前的索引了,那么我們需要設(shè)置這個索引,只要去改變這個對應(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}}頁</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'}">首頁{{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'}">分類</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龅接型瑢W(xué)問這塊的東西,所以就索性寫一個,給大家參考使用。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Atitit.js的鍵盤按鍵事件捆綁and事件調(diào)度
這篇文章主要介紹了Atitit.js的鍵盤按鍵事件捆綁and事件調(diào)度的相關(guān)資料,需要的朋友可以參考下2016-04-04
低代碼從0到1創(chuàng)建小程序項(xiàng)目詳解流程
低代碼作為開發(fā)工具類的產(chǎn)品,需要有從0到1體系化的教程才可以,而且還得有教師進(jìn)行輔助。否則,學(xué)習(xí)低代碼是有難度的,入門很難。因?yàn)榇蠹伊?xí)慣了用代碼編程,一下子過度到可視化編程,有一個思路上的轉(zhuǎn)變2022-08-08
借助script進(jìn)行Http跨域請求:JSONP實(shí)現(xiàn)原理及代碼
script元素的src屬性能設(shè)置URL并發(fā)起HTTP GET請求實(shí)現(xiàn)腳本操作HTTP可以跨域通信而不受限與同源策略,接下來為大家詳細(xì)介紹下Http跨域請求實(shí)現(xiàn),感興趣的你可以參考下哈2013-03-03
Javascript 使用function定義構(gòu)造函數(shù)
Javascript并不像Java、C#等語言那樣支持真正的類。但是在js中可以定義偽類。做到這一點(diǎn)的工具就是構(gòu)造函數(shù)和原型對象。首先介紹js中的構(gòu)造函數(shù)。2010-02-02
使用Javascript和DOM Interfaces來處理HTML
使用Javascript和DOM Interfaces來處理HTML...2006-10-10
js生成隨機(jī)數(shù)(指定范圍)的實(shí)例代碼
下面小編就為大家?guī)硪黄猨s生成隨機(jī)數(shù)(指定范圍)的實(shí)例代碼。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-07-07

