效果图:

一、简介

自己的小程序需要实现这样的功能

1.核心思想

swiper 和scroll-view共用两个变量currentTab  navScrollLeft,当点击nav或者滑动swiper时设置两个变量的值为当前的index

二、实现

tab导航栏使用标签,内容使用

1.wxml实现

{{navItem.text}}

class="tab-content">

{{tabItem}}

2.js实现

//index.js

//获取应用实例

const app = getApp()

Page({

data: {

navData:[

{

text: "新闻"

},

{

text: "表白"

},

{

text: "外卖"

},

{

text: "当家教"

},

{

text: "找家教"

},

{

text: "租房子"

},

{

text: "驾校"

}

],

currentTab: 0,

navScrollLeft: 0

},

//事件处理函数

onLoad: function () {

},

switchNav(event){

// 获取当前tab 的id

var cur = event.currentTarget.dataset.current;

//每个tab选项宽度占1/5

var singleNavWidth = this.data.windowWidth / 5;

//tab选项居中

this.setData({

navScrollLeft: (cur - 2) * singleNavWidth

})

// 判断id是否和点击的tab id 一致

if (this.data.currentTab == cur) {

return false;

} else {

this.setData({

currentTab: cur

})

}

},

switchTab(event){

var cur = event.detail.current;

var singleNavWidth = this.data.windowWidth / 5;

this.setData({

currentTab: cur,

navScrollLeft: (cur - 2) * singleNavWidth

});

}

})

3.wxss实现

/**index.wxss**/

page {

width: 100%;

height: 100%;

}

.container {

width: 100%;

height: 100%;

}

.nav {

/* 设置tab-nav宽高度 */

height: 80rpx;

width: 100%;

/* 假如您需要并排放置两个带边框的框,

可通过将 box-sizing 设置为 "border-box"。 */

box-sizing: border-box;

overflow: hidden;

/* 居中 */

line-height: 80rpx;

background:

#f7f7f7;

font-size: 16px;

/* 规定段落中的文本不进行换行: */

white-space: nowrap;

position: fixed;

top: 0;

left: 0;

z-index: 99;

}

.nav-item {

width: 20%;

display: inline-block;

text-align: center;

}

.nav-item.active {

color:

green;

}

.tab-box {

background:

rgb(31, 201, 96);

/* 这里设置成nav的高度 */

padding-top: 80rpx;

height: 100%;

box-sizing: border-box;

}

.tab-content {

/* 裁剪 div 元素中内容的左/右边缘 - 如果溢出元素的内容区域的话: */

overflow-y: scroll;

}

三、参考和总结

此文章参考 https://www.jb51.net/article/169290.htm

解决过程

1.tab的宽度固定为1/5,可以改进成根据tab的内容变化

四、优化

0.效果图

1.每个tab长度自适应 2.先前隔tab点击时

如果当前处于1,点击3时,路径时1-2-3,真机测试后,会直接跳转3,不会影响体验

// *******************************导航栏选择获取id和导航栏的位置**************************************

tabSelect(e) {

console.log("结果:", e);

// 操作新闻数据库

var cur = e.currentTarget.dataset.id;

//tab选项居中

this.setData({

// 每一个tab的id

TabCur: e.currentTarget.dataset.id,

//自适应

scrollLeft: (e.currentTarget.dataset.id) * 60,

})

// 判断id是否和点击的tab id 一致

if (this.data.currentTab == cur) {

return false;

} else {

this.setData({

currentTab: cur

})

}

console.log(e.currentTarget.dataset.id);

console.log(this.data.TabCur);

console.log("横向滚动条位置", this.data.scrollLeft);

},

switchTab(e) {

console.log(e);

var cur = e.detail.current;

this.setData({

TabCur: cur,

scrollLeft: cur * 60,

});

}

到此这篇关于微信小程序tab左右滑动切换功能的实现代码的文章就介绍到这了,更多相关小程序tab滑动切换内容请搜索云海天教程以前的文章或继续浏览下面的相关文章希望大家以后多多支持云海天教程!

微信小程序左右菜单mysql_微信小程序tab左右滑动切换功能的实现代码相关推荐

  1. 微信小程序左右菜单mysql_微信小程序做出外卖菜单点单功能

    这次给大家带来微信小程序做出外卖菜单点单功能,的注意事项有哪些,下面就是实战案例,一起来看一下. 1.功能仅是菜单功能一部分,仅供参考 2.需求描述:右侧菜品部分在滚动的时候,左侧菜品选中分类与右侧第 ...

  2. 微信小程序-tab左右滑动切换

    微信小程序-tab左右滑动切换 一.简介 1.核心思想 二.实现 1.wxml实现 2.js实现 3.wxss实现 三.参考和总结 四.优化 0.效果图 1.每个tab长度自适应 2.先前隔tab点击 ...

  3. 微信公众号自定义菜单跳转小程序

    微信的小程序交给有赞开发,由微信手册,菜单跳小程序需要如下配置: ["type" => "miniprogram","name" =& ...

  4. 微信小程序云开发 mysql_微信小程序云开发数据库

    如在云开发数据库的基础介绍中所说,云开发提供了一个 JSON 数据库,本章将介绍以下内容: 上手:用控制台创建我的第一个集合,插入我的第一条数据 数据类型:了解数据库提供的数据类型 权限控制:控制集合 ...

  5. html页面 tab JS滑动切换,JS+CSS实现滑动切换tab菜单效果

    本文实例讲述了JS+CSS实现滑动切换tab菜单效果.分享给大家供大家参考.具体如下: 这是风格简单的一款JS+CSS滑动门特效代码,当鼠标滑过菜单的时候,二级菜单自动切换,鼠标不需要点击,滑动门效果 ...

  6. 微信小程序怎么取mysql_微信小程序如何加载数据库真实数据?

    微信小程序要加载网站数据库里面的真实数据,有一个硬性的要求,就是你的网站域名必须是https协议才行,要不然你第一步服务器域名配置你都通过不了,小编我也是前不久申请的https://www.100tx ...

  7. 微信小程序开发与mysql_微信小程序云开发之云数据库入门

    微信小程序云开发之云数据库入门 介绍 开发者可以使用云开发开发微信小程序.小游戏,无需搭建服务器,即可使用云端能力. 其基础能力数据库,是一个JSON数据库,作用是无需自建数据库,就可以在微信小程序前 ...

  8. 微信小程序云开发 mysql_微信小程序云开发学习笔记(一)云数据库

    云开发配置的环境:cloud-learning 云开发环境初始化准备 需要: APPID 操作: 在创建项目时,填入APPID并选择不使用云函数 进入到开发者页面,点击左上角的云开发并选择开通 设置云 ...

  9. 微信小程序-06 tab选项卡滑动切换与列表Item(scroll 、 swiper)数据的获取等所用到的都有了

    目录 示例图片 WXML js WXSS 示例图片 WXML <view ><scroll-view scroll-x="true" class="ta ...

  10. android仿抖音上下切换视频,微信小程序仿抖音视频之整屏上下切换功能的实现代码...

    Page({ /** * 页面的初始数据 */ data: { video_list:[ {video_src:}, {video_src:}, {video_src:}, {video_src:}, ...

最新文章

  1. 一文解读:如何从 0 到 1 打造小程序爆款裂变
  2. 环信集成 2---基于环信Demo3.0,实现单聊功能
  3. layui按钮展开、_layui框架,点击某个按钮,让layui的日期插件选中的值清空
  4. C# 声明方法的语法
  5. WIN版的Jenkins Master加入LINUX的SLAVE节点,并作C++程序的集成交付
  6. MFC初探 —— 设置软件开机自启
  7. linux命令逻辑运算:与、或、非、异或
  8. HTML+CSS页面练习——legend第七部分
  9. poj 1502 单源最短路径
  10. ll文件显示为?????_关于shell编程中的文件测试简单的操作实例
  11. 5.3 Transformer意境级讲解
  12. 非常好用的jdk帮助文档jdk1.8中文谷歌翻译
  13. 【资料】avr单片机和stm32区别,avr单片机选型技巧
  14. 【SVP补帧】【教程】尽量不改变电脑设置的压制方案
  15. 《App后台开发运维和架构实践》勘误
  16. C64x的软件优化方法
  17. python中idle环境的退出命令的快捷键_IDLE环境的退出命令是( )。_学小易找答案...
  18. index.highlight.max_analyzed_offset 偏移量设置
  19. SaaS营销网站的组织结构
  20. 分布式文件存储:FastDFS简单使用与原理分析

热门文章

  1. CVPR 2020放榜,录取率降至22%,港中文周博磊发文感慨十年变迁
  2. 在一个字符串中找到第一个只出现一次的字符,并返回它的位置
  3. 【docker】docker持续集成CI/持续部署CD
  4. Jmeter(三十八)while控制器实现ssh三次重连
  5. 用angular中的ng-repeat和ng-show来实现tab选项卡
  6. ios开发--清理缓存
  7. JAVA SE、JAVA EE、JAVA ME的联系与区别
  8. c#控制IE浏览器自动点击等事件WebBrowser,mshtml.IHTMLDocument2 .
  9. IE6/7下不同的inline-block
  10. 开发平台(Platform Builder 和 Embedded Visual C++)简介