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 URL参数判断,确定菜单样式
May 31 Javascript
iframe的父子窗口之间的对象相互调用基本用法
Sep 03 Javascript
chrome下jq width()方法取值为0的解决方法
May 26 Javascript
一个php+js实时显示时间问题
Oct 12 Javascript
javascript中对Date类型的常用操作小结
May 19 Javascript
简单实现JavaScript图片切换效果
Nov 28 Javascript
JS中的数组转变成JSON格式字符串的方法
May 09 Javascript
BootStrap中的Fontawesome 图标
May 25 Javascript
详解vue2.0 transition 多个元素嵌套使用过渡
Jun 19 Javascript
javascript实现文件拖拽事件
Mar 29 Javascript
Bootstrap实现模态框效果
Sep 30 Javascript
JavaScript展开运算符和剩余运算符的区别详解
Feb 18 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
萌王史莱姆”萌王性别尴尬!那“萌战”归女组还是男?
2018/12/17 日漫
php去除HTML标签实例
2013/11/06 PHP
php curl post 时出现的问题解决
2014/01/30 PHP
PHP实现使用优酷土豆视频地址获取swf播放器分享地址
2014/06/05 PHP
Ubuntu中启用php的mail()函数并解决发送邮件速度慢问题
2015/03/27 PHP
laravel中的错误与日志用法详解
2016/07/26 PHP
thinkphp自带验证码全面解析
2016/09/18 PHP
PHP有序表查找之二分查找(折半查找)算法示例
2018/02/09 PHP
PHPExcel实现的读取多工作表操作示例
2020/04/14 PHP
laravel中Redis队列监听中断的分析
2020/09/14 PHP
JQuery Dialog的内存泄露问题解决方法
2010/06/18 Javascript
ASP中Sub和Function的区别说明
2020/08/30 Javascript
简介JavaScript中用于处理正切的Math.tan()方法
2015/06/15 Javascript
JS如何实现文本框随文本的长度而增长
2015/07/30 Javascript
jQuery实现无限往下滚动效果代码
2016/04/16 Javascript
Javascript中内建函数reduce的应用详解
2016/10/20 Javascript
关于JavaScript中事件绑定的方法总结
2016/10/26 Javascript
在vue中使用SockJS实现webSocket通信的过程
2018/08/29 Javascript
vue实现路由切换改变title功能
2019/05/28 Javascript
Win7下搭建python开发环境图文教程(安装Python、pip、解释器)
2016/05/17 Python
Python中set与frozenset方法和区别详解
2016/05/23 Python
Python端口扫描简单程序
2016/11/10 Python
轻松理解Python 中的 descriptor
2017/09/15 Python
pytorch对可变长度序列的处理方法详解
2018/12/08 Python
python binascii 进制转换实例
2019/06/12 Python
Python Print实现在输出中插入变量的例子
2019/12/25 Python
tensorboard 可以显示graph,却不能显示scalar的解决方式
2020/02/15 Python
Python使用for生成列表实现过程解析
2020/09/22 Python
沙特阿拉伯排名第一的在线时尚购物应用程序:1Zillion
2020/08/08 全球购物
融资租赁计划书
2014/04/29 职场文书
财务会计专业自荐书
2014/06/30 职场文书
领导班子个人查摆问题对照检查材料
2014/10/02 职场文书
测量员岗位职责
2015/02/14 职场文书
4种非常实用的python内置数据结构
2021/04/28 Python
对象析构函数__del__在Python中何时使用
2022/03/22 Python
详解Python中__new__方法的作用
2022/03/31 Python