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)寫好,但是他并沒有寫出來,希望官方的文檔能夠盡快的完善起來
實(shí)現(xiàn)這樣的功能,首先是一個(gè)slider的用法,這個(gè)官方文檔是用這個(gè)來給大家做輪播圖的。
首先我們不能設(shè)置自動(dòng)播放ok了(直接不復(fù)制就ok了)
第二我們需要能夠捕獲到滾動(dòng)到哪一頁的索引,這個(gè)值需要用來設(shè)置下面的當(dāng)前tab(監(jiān)聽slider的change 方法)
第三我們需要通過外部js去設(shè)置slider的當(dāng)前頁面,譬如我們點(diǎn)擊第二個(gè)tab,我們需要把顯示的index 設(shè)置為1(index是從0開始的)官方文檔目前并沒有給出這塊的解釋
那么下面我們通過源碼挖掘,我們知道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}}頁</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?huì)遇到有同學(xué)問這塊的東西,所以就索性寫一個(gè),給大家參考使用。
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(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í)慣了用代碼編程,一下子過度到可視化編程,有一個(gè)思路上的轉(zhuǎn)變2022-08-08借助script進(jìn)行Http跨域請(qǐng)求:JSONP實(shí)現(xiàn)原理及代碼
script元素的src屬性能設(shè)置URL并發(fā)起HTTP GET請(qǐng)求實(shí)現(xiàn)腳本操作HTTP可以跨域通信而不受限與同源策略,接下來為大家詳細(xì)介紹下Http跨域請(qǐng)求實(shí)現(xiàn),感興趣的你可以參考下哈2013-03-03Javascript 使用function定義構(gòu)造函數(shù)
Javascript并不像Java、C#等語言那樣支持真正的類。但是在js中可以定義偽類。做到這一點(diǎn)的工具就是構(gòu)造函數(shù)和原型對(duì)象。首先介紹js中的構(gòu)造函數(shù)。2010-02-02使用Javascript和DOM Interfaces來處理HTML
使用Javascript和DOM Interfaces來處理HTML...2006-10-10Electron 使用 Nodemon 配置自動(dòng)重啟的方法
在Electron開發(fā)過程中,每次代碼修改后需手動(dòng)重新啟動(dòng)應(yīng)用,這一過程可以通過引入Nodemon工具自動(dòng)化,Nodemon能夠監(jiān)測文件變化并自動(dòng)重啟服務(wù)器,本文給大家介紹Electron 使用 Nodemon 配置自動(dòng)重啟,感興趣的朋友一起看看吧2024-09-09js生成隨機(jī)數(shù)(指定范圍)的實(shí)例代碼
下面小編就為大家?guī)硪黄猨s生成隨機(jī)數(shù)(指定范圍)的實(shí)例代碼。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-07-07