weex slider实现滑动底部导航功能


Posted in Javascript onAugust 28, 2017

本文实例为大家分享了weex slider实现滑动底部导航功能的具体代码,供大家参考,具体内容如下

先看效果图

weex slider实现滑动底部导航功能

这里主要是使用了weex 的 slider 实现了可以滑动的底部导航框架

这里最主要的几个方法,如果光是看weex的官方文档,可能很痛苦,因为有一些功能虽然代码里已经写好,但是他并没有写出来,希望官方的文档能够尽快的完善起来

实现这样的功能,首先是一个slider的用法,这个官方文档是用这个来给大家做轮播图的。

首先我们不能设置自动播放ok了(直接不复制就ok了)
第二我们需要能够捕获到滚动到哪一页的索引,这个值需要用来设置下面的当前tab(监听slider的change 方法)
第三我们需要通过外部js去设置slider的当前页面,譬如我们点击第二个tab,我们需要把显示的index 设置为1(index是从0开始的)官方文档目前并没有给出这块的解释

那么下面我们通过源码挖掘,我们知道slider其实可以有一个属性 :index
这个就是当前的索引了,那么我们需要设置这个索引,只要去改变这个对应得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>

因为常常会遇到有同学问这块的东西,所以就索性写一个,给大家参考使用。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jQuery 在光标定位的地方插入文字的插件
May 10 Javascript
js将long日期格式转换为标准日期格式实现思路
Apr 07 Javascript
我的Node.js学习之路(一)
Jul 06 Javascript
Json对象和字符串互相转换json数据拼接和JSON使用方式详细介绍(小结)
Oct 25 Javascript
简单实现JS计算器功能
Dec 21 Javascript
Angular.JS中指令ng-if的注意事项小结
Jun 21 Javascript
JavaScript脚本语言是什么_动力节点Java学院整理
Jun 26 Javascript
Vue CLI 3搭建vue+vuex最全分析(推荐)
Sep 27 Javascript
15个顶级开源JavaScript框架和库
Oct 10 Javascript
使用 Angular RouteReuseStrategy 缓存(路由)组件的实例代码
Nov 01 Javascript
PHP 502bad gateway原因及解决方案
Nov 13 Javascript
node.js通过Sequelize 连接MySQL的方法
Dec 28 Javascript
js使用原型对象(prototype)需要注意的地方
Aug 28 #Javascript
vue2.0移除或更改的一些东西(移除index key)
Aug 28 #Javascript
详解基于Angular4+ server render(服务端渲染)开发教程
Aug 28 #Javascript
JS实现图片手风琴效果
Apr 17 #Javascript
vue服务端渲染的实例代码
Aug 28 #Javascript
jQuery 1.9版本以上的浏览器判断方法代码分享
Aug 28 #jQuery
使用react-router4.0实现重定向和404功能的方法
Aug 28 #Javascript
You might like
mysql5详细安装教程
2007/01/15 PHP
ThinkPHP CURD方法之field方法详解
2014/06/18 PHP
使用php完成常见的文件上传功能(推荐)
2017/01/13 PHP
PHP编程实现计算抽奖概率算法完整实例
2017/08/09 PHP
PHP的mysqli_stmt_init()函数讲解
2019/01/24 PHP
jQuery 表单验证扩展(三)
2010/10/20 Javascript
JavaScript中判断原生函数检查function是否是原生代码
2014/09/09 Javascript
javascript实现全局匹配并替换的方法
2015/04/27 Javascript
微信小程序 textarea 组件详解及简单实例
2017/01/10 Javascript
微信小程序中子页面向父页面传值实例详解
2017/03/20 Javascript
vue分类筛选filter方法简单实例
2017/03/30 Javascript
运用jQuery写的验证表单(实例讲解)
2017/07/06 jQuery
vue中component组件的props使用详解
2017/09/04 Javascript
JS的函数调用栈stack size的计算方法
2018/06/24 Javascript
详解vue2.0+axios+mock+axios-mock+adapter实现登陆
2018/07/19 Javascript
vue全局自定义指令-元素拖拽的实现代码
2019/04/14 Javascript
基于mpvue小程序使用echarts画折线图的方法示例
2019/04/24 Javascript
使用JS实现动态时钟
2020/03/12 Javascript
[02:36]DOTA2亚洲邀请赛小组赛精彩集锦:奇迹哥卡尔秀翻全场
2017/03/28 DOTA
[51:07]VGJ.S vs Pain 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
在django中使用自定义标签实现分页功能
2017/07/04 Python
centos 安装python3.6环境并配置虚拟环境的详细教程
2018/02/22 Python
pyqt实现.ui文件批量转换为对应.py文件脚本
2019/06/19 Python
face++与python实现人脸识别签到(考勤)功能
2019/08/28 Python
Python FTP文件定时自动下载实现过程解析
2019/11/12 Python
Python tkinter制作单机五子棋游戏
2020/09/14 Python
python 如何用urllib与服务端交互(发送和接收数据)
2021/03/04 Python
美国时尚孕妇装品牌:A Pea in the Pod
2017/07/16 全球购物
意大利简约的休闲品牌:Aspesi
2018/02/08 全球购物
商务邀请函范文
2014/01/14 职场文书
小学校园之星事迹材料
2014/05/16 职场文书
广场舞大赛策划方案
2014/05/31 职场文书
中药学专业毕业生推荐信
2014/07/10 职场文书
中学生打架检讨书
2014/10/13 职场文书
一年级班主任工作总结2014
2014/11/08 职场文书
浅谈Redis的几个过期策略
2021/05/27 Redis