<view class="movie-container">
<!-- 导航栏 -->
<view >
<scroll-view scroll-x="true" class="navbar" scroll-left="{{navScrollLeft}}" scroll-with-animation="{{true}}">
<block wx:for="{{navbarTitle}}" wx:key="index">
<view class="navbar-item {{navbarActiveIndex == index? 'navbar-item-active' : ''}}" data-navbar-index="{{index}}" catchtap="onNavBarTap">
<text>{{item}}</text>
</view>
</block>
</scroll-view>
</view>
<!-- swiper-item -->
<view class="movie-content-wrapper">
<swiper current="{{navbarActiveIndex}}" bindanimationfinish="onBindAnimationFinish">
<swiper-item wx:for="{{navbarTitle1}}" wx:for-item="item" wx:key="{{item.id}}" >
<scroll-view scroll-y="{{true}}">
<view wx:for="{{item.navbarTitle2}}" wx:for-item="items" wx:key="{{items.id}}">
{{items.name}}
</view>
</scroll-view>
</swiper-item>
</swiper>
</view>
</view>
.movie-container{
display: flex;
flex-direction: column;
}
.navbar{
display: flex;
position: absolute;
left:;
top:;
z-index:;
width: 100%;
height: 120rpx;
flex-direction: row;
text-align: center;
color: #A8A8A8;
font-size: 15px;
box-sizing: border-box;
background-color: #FFF; overflow: hidden;
line-height: 80rpx;
white-space: nowrap; }
.navbar-item{
width: 25%;
display: inline-block;
text-align: center;
padding: 26rpx 0px;
height:60rpx;
}
.navbar-item-active{
transition: all 0.3s;
border-bottom: 6rpx solid #3aadd9;
color: #3aadd9;
} .movie-content-wrapper{
padding-top: 150rpx;
}
Page({

  /**
* 页面的初始数据
*/
data: {
navbarActiveIndex: 0,
navScrollLeft: 0,
navbarTitle: [
"1",
"2",
"3",
"4",
"5",
"6",
"7"
],
navbarTitle1: [
{ id: 0, navbarTitle2: [{ id: 0, name: "1" }, { id: 1, name: "2" },]},
{ id: 1, navbarTitle2: [{ id: 0, name: "3" }, { id: 1, name: "33" },] },
{ id: 2, navbarTitle2: [{ id: 0, name: "4" }, { id: 1, name: "44" },] },
{ id: 3, navbarTitle2: [{ id: 0, name: "5" }, { id: 1, name: "55" },] },
{ id: 4, navbarTitle2: [{ id: 0, name: "6" }, { id: 1, name: "66" },] },
{ id: 5, navbarTitle2: [{ id: 0, name: "7" }, { id: 1, name: "77" },] }, ]
},
onLoad: function() {
wx.getSystemInfo({
success: (res) => {
this.setData({
pixelRatio: res.pixelRatio,
windowHeight: res.windowHeight,
windowWidth: res.windowWidth
})
},
})
},
/**
* 点击导航栏
*/
onNavBarTap: function(event) {
// 获取点击的navbar的index
let navbarTapIndex = event.currentTarget.dataset.navbarIndex
// 设置data属性中的navbarActiveIndex为当前点击的navbar
var singleNavWidth = this.data.windowWidth / 5;
//tab选项居中
this.setData({
navScrollLeft: (navbarTapIndex - 2) * singleNavWidth
})
if (this.data.navbarActiveIndex == navbarTapIndex) {
return false;
} else {
this.setData({
navbarActiveIndex: navbarTapIndex
})
}
// this.setData({
// navbarActiveIndex: navbarTapIndex
// })
}, /**
*
*/
onBindAnimationFinish: function({
detail
}) {
// 设置data属性中的navbarActiveIndex为当前点击的navbar
let navbarTapIndex = detail.current;
var singleNavWidth = this.data.windowWidth / 5;
//tab选项居中
this.setData({
navScrollLeft: (navbarTapIndex - 2) * singleNavWidth
})
if (this.data.navbarActiveIndex == navbarTapIndex) {
return false;
} else {
this.setData({
navbarActiveIndex: detail.current
})
} }
})

其实是参考网上诸位大神的一些代码自己通过修改而来的,能够从别人的代码进行修改以及学习变成自己所收获的一些知识也是本人的荣幸,很感谢百度博客的一些分享!!

微信小程序之自定义导航栏(可实现动态添加)以及swiper(swiper-item)实现自动切换,导航标题也跟着切换的更多相关文章

  1. 微信小程序 修改(自定义) 单选/复选按钮样式 checkbox/radio样式自定义

    参考文章: 微信小程序 修改(自定义) 单选/复选按钮样式 checkbox/radio样式自定义

  2. 微信小程序中自定义modal

    微信小程序中自定义modal .wxml <modal hidden="{{hidden}}" title="这里是title" confirm-text ...

  3. 微信小程序:自定义组件

    为什么要学习自定义组件? 1.用上我自己的单词abc,我希望在页面中展示椭圆形的图片, 2.打开手机淘宝,假如现在要做一个企业级项目,里面有很多页面,首页存在导航模块,点击天猫,进入第二个页面,而第二 ...

  4. 微信小程序之自定义toast弹窗

    微信小程序里面的自带弹窗icon只有两种,success和loading.有时候用户输入错误的时候想加入一个提醒图标,也可以使用wx.showToast中的image来添加图片达到使用自定义图标的目的 ...

  5. 微信小程序之自定义select下拉选项框组件

    知识点:组件,animation,获取当前点击元素的索引与内容 微信小程序中没有select下拉选项框,所以只有自定义.自定义的话,可以选择模板的方式,也可以选择组件的方式来创建. 这次我选择了组件, ...

  6. 【微信小程序】自定义模态框实例

    原文链接:https://mp.weixin.qq.com/s/23wPVFUGY-lsTiQBtUdhXA 1 概述 由于官方API提供的显示模态弹窗,只能简单地显示文字内容,不能对对话框内容进行自 ...

  7. 微信小程序实现左侧滑栏

    前言 一直想给项目中的小程序设置侧滑栏,将退出按钮放到侧滑中,但是小程序没有提供相应的控件和API,因此只能自己手动实现,网上很多大神造的轮子很不错,本文就在是站在巨人的肩膀上实现. 效果 先看看效果 ...

  8. 微信小程序之自定义组件

    在微信小程序项目中 肯定会存在很多功能和样式上相似的部分 面对这种情况 只是单单的ctrl+c ctrl+v 就显得很low了,而且也不便于后期维护那么这时候 使用微信小程序中的自定义组件功能就很合适 ...

  9. 微信小程序之自定义组件的应用

    小程序支持自定义组件,下面是一个简单的购物车组件,实现的效果如图: 效果图 创建组件 在根目录创建components目录,然后创建计数组件 count 如图: 组件内容 <!--compone ...

  10. 【微信】微信小程序 应用内的页面跳转在添加了tab以后就跳转不成功的问题解决

    在微信小程序中,本来应用页面内绑定在按钮上跳转页面可以成功,但是将页面添加在tab以后就不能实现跳转了 原本代码如下: //事件处理函数 bindViewTap: function() { wx.na ...

随机推荐

  1. rs485一主多从的连接方式及通信注意事项

    rs485的通信方式看似比较简单,其实通信软件的处理还是有需要注意的. 下图是主机向从机发送信息的示意图,其中485的线都是手牵手相连的,因此主机向下发的时候,其实各个从机都有在接收数据的,只是,从机 ...

  2. 自动化发送邮件之SMTP

    一.思路 1.若是QQ邮箱需要在设置-账户里面开启服务 2.在python中smtplib库是专门用来处理邮件 3.自动化邮件发送实操 a.要处理的邮件主题,寄件人,收件人,邮件正文,附件, b.邮件 ...

  3. C1010 unexpected end of file while looking for precompiled header. Did you forget to add '#include "stdafx.h"' to your source

    提示说是预编译出现问题,提示添加头文件stdafx.h,但是添加了也会继续有其他错误解决方法: 在菜单Project->Properties(或者直接快捷键Alt+F7)->C/C++-& ...

  4. java之大文件分段上传、断点续传

    文件上传是最古老的互联网操作之一,20多年来几乎没有怎么变化,还是操作麻烦.缺乏交互.用户体验差. 一.前端代码 英国程序员Remy Sharp总结了这些新的接口 ,本文在他的基础之上,讨论在前端采用 ...

  5. 使用merge-graphql-schemas 进行graphql schema 以及resovler 合并

    merge-graphql-schemas 是一个方便的工具,可以进行schema 以及resovler 的合并处理 一个schema 合并参考demo schema 定义 // ./graphql/ ...

  6. zabbix显示 get value from agent failed:cannot connetct to xxxx:10050:[4] interrupted system call

    在阿里云上部署的两台云主机,从server上 agent.ping不通agent10050端口,在agent上使用firewalld-cmd 添加了10050端口还不行,关闭了防火墙和selinux也 ...

  7. Centos 不重启 修改ulimit参数

    1. 查看limits.conf文件 cat /etc/security/limits.conf 2. 打开编辑limits.conf文件 sudo vim /etc/security/limits. ...

  8. Linux 系统管理——文件系统与LVM、磁盘配额实例

    1.为主机增加80G SCSI 接口硬盘 2.划分三个各20G的主分区 3.将三个主分区转换为物理卷(pvcreate),扫描系统中的物理卷 4.使用两个物理卷创建卷组,名字为myvg,查看卷组大小 ...

  9. 71: libreoj #10151 区间dp

    $des$ https://loj.ac/problem/10151 $sol$ 区间dp $f_{i, j}$ 表示区间 $[l, r]$ 合并的最大值 枚举中间点 $k$ $f_{i, j} =m ...

  10. 钟长者P71解题报告

    T1 [题目描述] 给你N个字符串,你每次可以选择其中一个字符串的一段前缀进行翻转,但是你必须保证这个前缀的长度是偶数.你可以进行无限次这样的操作,并且如果两个字符串变得相同的时候,你就可以把这两个字 ...