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实现图片翻页效果
Dec 23 Javascript
JS+JSP checkBox 全选具体实现
Jan 02 Javascript
JavaScript中连接操作Oracle数据库实例
Apr 02 Javascript
基于javascript代码实现通过点击图片显示原图片
Nov 29 Javascript
jQuery获取DOM节点实例分析(2种方式)
Dec 15 Javascript
JS多物体实现缓冲运动效果示例
Dec 20 Javascript
vue 注册组件的使用详解
May 05 Javascript
解决vue中虚拟dom,无法实时更新的问题
Sep 15 Javascript
关于Vue项目跨平台运行问题的解决方法
Sep 18 Javascript
详解vue微信网页授权最终解决方案
Jun 16 Javascript
详解利用eventemitter2实现Vue组件通信
Nov 04 Javascript
vue实现下载文件流完整前后端代码
Nov 17 Vue.js
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
yii2实现根据时间搜索的方法
2016/05/25 PHP
php解决DOM乱码的方法示例代码
2016/11/20 PHP
PHP中include和require的区别实例分析
2017/05/07 PHP
游戏人文件夹程序 ver 3.0
2006/07/14 Javascript
利用JS重写Cognos右键菜单的实现代码
2010/04/11 Javascript
javascript 实用的文字链提示框效果
2010/06/30 Javascript
深入理解javascript中return的作用
2013/12/30 Javascript
用JavaScript和jQuery实现瀑布流
2017/03/19 Javascript
详解node中创建服务进程
2017/05/09 Javascript
vue 项目中使用Loading组件的示例代码
2018/08/31 Javascript
关于layui flow loading占位图的实现方法
2019/09/21 Javascript
vue el-table实现自定义表头
2019/12/11 Javascript
vue实现可移动的悬浮按钮
2021/03/04 Vue.js
Python编程中time模块的一些关键用法解析
2016/01/19 Python
在Python web中实现验证码图片代码分享
2017/11/09 Python
python http接口自动化脚本详解
2018/01/02 Python
python实现百万答题自动百度搜索答案
2018/01/16 Python
python链接oracle数据库以及数据库的增删改查实例
2018/01/30 Python
kali中python版本的切换方法
2019/07/11 Python
python3 求约数的实例
2019/12/05 Python
python实现tail -f 功能
2020/01/17 Python
详解Python IO口多路复用
2020/06/17 Python
python 基于pygame实现俄罗斯方块
2021/03/02 Python
css3中background新增的4个新的相关属性用法介绍
2013/09/26 HTML / CSS
全球知名鞋履品牌授权零售商:Journeys
2016/09/17 全球购物
英国豪华真皮和布艺沙发销售网站:Darlings of Chelsea
2018/01/05 全球购物
在什么时候需要使用"常引用"
2015/12/31 面试题
生物技术研究生自荐信
2013/11/12 职场文书
大学生职业生涯规划方案
2014/01/03 职场文书
集中整治工作方案
2014/05/01 职场文书
批评与自我批评发言稿
2014/10/15 职场文书
2014年生活老师工作总结
2014/12/23 职场文书
2015上半年个人工作总结
2015/07/27 职场文书
如何利用STAR法则制作留学文书?
2019/08/26 职场文书
Python机器学习实战之k-近邻算法的实现
2021/11/27 Python
win10搭建配置ftp服务器的方法
2022/08/05 Servers