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 相关文章推荐
YUI的Tab切换实现代码
Apr 11 Javascript
可编辑下拉框的2种实现方式
Jun 13 Javascript
JS脚本根据手机浏览器类型跳转WAP手机网站(两种方式)
Aug 04 Javascript
浅谈JavaScript 覆盖原型以及更改原型
Aug 31 Javascript
javascript实现简单的可随机变色网页计算器示例
Dec 30 Javascript
Vue引入sass并配置全局变量的方法
Jun 27 Javascript
React Native基础入门之调试React Native应用的一小步
Jul 02 Javascript
Three.js中矩阵和向量的使用教程
Mar 19 Javascript
Vue中跨域及打包部署到nginx跨域设置方法
Aug 26 Javascript
Js图片点击切换轮播实现代码
Jul 27 Javascript
谈谈JavaScript中的函数
Sep 08 Javascript
javascript实现下拉菜单效果
Feb 09 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
ASP和PHP都是可以删除自身的
2007/04/09 PHP
PHP进行批量任务处理不超时的解决方法
2016/07/11 PHP
TP - 比RBAC更好的权限认证方式(Auth类认证)
2021/03/09 PHP
javascript 页面划词搜索JS
2009/09/28 Javascript
javascript 函数及作用域总结介绍
2013/11/12 Javascript
自己使用js/jquery写的一个定制对话框控件
2014/05/02 Javascript
在页面加载完成后通过jquery给多个span赋值
2014/05/21 Javascript
js通过location.search来获取页面传来的参数
2014/09/11 Javascript
javascript实现了照片拖拽点击置顶的照片墙代码
2015/04/03 Javascript
Vue.js 插件开发详解
2017/03/29 Javascript
React学习之事件绑定的几种方法对比
2017/09/24 Javascript
使用webpack-dev-server处理跨域请求的方法
2018/04/18 Javascript
使用proxy实现一个更优雅的vue【推荐】
2018/06/19 Javascript
JavaScript实现简单的隐藏式侧边栏功能示例
2018/08/31 Javascript
微信小程序公用参数与公用方法用法示例
2019/01/09 Javascript
webpack4 SplitChunks实现代码分隔详解
2019/05/23 Javascript
Elasticsearch实现复合查询高亮结果功能
2019/09/10 Javascript
在vue中实现嵌套页面(iframe)
2020/07/30 Javascript
vant 解决tab切换插件标题样式自定义的问题
2020/11/13 Javascript
JS实现点击掉落特效
2021/01/29 Javascript
[01:30]DOTA2上海特锦赛现场采访 Loda倾情献唱
2016/03/25 DOTA
利用Python实现简单的相似图片搜索的教程
2015/04/23 Python
Python实现基于权重的随机数2种方法
2015/04/28 Python
python使用Pycharm创建一个Django项目
2018/03/05 Python
python删除某个字符
2018/03/19 Python
Python实现的括号匹配判断功能示例
2018/08/25 Python
Python 微信爬虫完整实例【单线程与多线程】
2019/07/06 Python
解决运行出现'dict' object has no attribute 'has_key'问题
2020/07/15 Python
html5适合移动应用开发的12大特性
2014/03/19 HTML / CSS
HTML5无刷新改变当前url的代码
2017/03/15 HTML / CSS
自荐信范文
2013/12/10 职场文书
求职信模板标准格式范文
2014/02/23 职场文书
电影建国大业观后感
2015/06/01 职场文书
改进工作作风心得体会
2016/01/23 职场文书
导游词之永泰公主墓
2019/12/04 职场文书
中国古风插画师排行榜:夏达第一,第三是阴阳师姑获鸟皮肤创作者
2022/03/18 国漫