navigator导航页面跳转与绑定事件
效果图:
1. 新建一个index页面
主页面分为两块,上面是导航条,下面是轮播图。
导航条:
- <view class='menu'>
- <scroll-view scroll-x>
- <view class='scroll-nav'>
- <navigator url="/pages/baidupage/baidupage" data-navindex='0' bindtap="navNews" class="{{currentTab!=0?'color-black': 'color-green'}}">社会新闻</navigator>
- <navigator url="" data-navindex='1' bindtap="navNews" class="{{currentTab!=1?'color-black': 'color-green'}}">国际新闻</navigator>
- <navigator url="" data-navindex='2' bindtap="navNews">国内新闻</navigator>
- <navigator url="" data-navindex='3' bindtap="navNews">娱乐新闻</navigator>
- <navigator url="" data-navindex='4' bindtap="navNews">体育新闻</navigator>
- <navigator url="" data-navindex='5' bindtap="navNews">综合新闻</navigator>
- </view>
- </scroll-view>
- </view>
scroll-x表示可以横向滚动,导航条内容较长,因此需要横向滚动。
navigator是导航条,
url里面是跳转链接,这个链接页面必须在app.json里面存在。当点击这个导航时会跳转到baidupage的页面,这个页面里面的内容是打开https://wap.baidu.com,一般小程序是没有权限打开百度页面的,这里是模拟,所以关闭了验证,具体原因参考https://blog.csdn.net/qq_32113629/article/details/79483213
bindtap是绑定事件,当点击这个导航时会触发navNews函数,这个函数在Index.js中定义的。
class里面是导航的颜色显示,当在当前tab下面时,字体是绿色,当切换到其他导航时,颜色变为黑色。
轮播图:
- <view>
- <swiper current="{{currentTab}}" bindchange="swiperView">
- <swiper-item>
- <view class="swiper-view1">社会新闻</view>
- </swiper-item>
- <swiper-item>
- <view class="swiper-view2">国际新闻</view>
- </swiper-item>
- </swiper>
- </view>
社会新闻的页面是swiper-view1,为红色。国际新闻的页面是swiper-view2,为绿色,其中currentTab这个变量就是个关键,将导航条和轮播图联系起来。
总的代码:
app.json


- {
- "pages": [
- "pages/index/index",
- "pages/baidupage/baidupage"
- ],
- "window": {
- "backgroundColor": "#F6F6F6",
- "backgroundTextStyle": "light",
- "navigationBarBackgroundColor": "#F00",
- "navigationBarTitleText": "今日头条",
- "navigationBarTextStyle": "white"
- },
- "sitemapLocation": "sitemap97.json"
- }
app.js


- //app.js
- App({
- onLaunch: function () {
- if (!wx.cloud) {
- console.error('请使用 2.2.3 或以上的基础库以使用云能力')
- } else {
- wx.cloud.init({
- // env 参数说明:
- // env 参数决定接下来小程序发起的云开发调用(wx.cloud.xxx)会默认请求到哪个云环境的资源
- // 此处请填入环境 ID, 环境 ID 可打开云控制台查看
- // 如不填则使用默认环境(第一个创建的环境)
- // env: 'my-env-id',
- traceUser: true,
- })
- }
- this.globalData = {}
- }
- })
app.wxss


- /**app.wxss**/
- .container {
- height: 100%;
- box-sizing: border-box;
- }
- page {
- height: 100%;
- }
index.js


- // miniprogram/pages/index/index.js
- Page({
- /**
- * Page initial data
- */
- data: {
- currentTab:0
- },
- //swiper切换操作
- swiperView:function(event){
- // console.log(event)
- var currentIndex = event.detail.current
- this.setData({
- currentTab: currentIndex
- })
- },
- // 新闻点击操作
- navNews:function(event){
- // console.log(event)
- // console.log(event.currentTarget.dataset.navindex)
- var navIndex = event.currentTarget.dataset.navindex
- // 需要修改currentTab变量
- this.setData({
- currentTab:navIndex
- })
- },
- /**
- * Lifecycle function--Called when page load
- */
- onLoad: function (options) {
- },
- /**
- * Lifecycle function--Called when page is initially rendered
- */
- onReady: function () {
- },
- /**
- * Lifecycle function--Called when page show
- */
- onShow: function () {
- },
- /**
- * Lifecycle function--Called when page hide
- */
- onHide: function () {
- },
- /**
- * Lifecycle function--Called when page unload
- */
- onUnload: function () {
- },
- /**
- * Page event handler function--Called when user drop down
- */
- onPullDownRefresh: function () {
- },
- /**
- * Called when page reach bottom
- */
- onReachBottom: function () {
- },
- /**
- * Called when user click on the top right corner to share
- */
- onShareAppMessage: function () {
- }
- })
index.json


- {
- "usingComponents": {}
- }
index.wxml


- <!--miniprogram/pages/index/index.wxml-->
- <view class="container">
- <view class='menu'>
- <scroll-view scroll-x>
- <view class='scroll-nav'>
- <navigator url="/pages/baidupage/baidupage" data-navindex='0' bindtap="navNews" class="{{currentTab!=0?'color-black': 'color-green'}}">社会新闻</navigator>
- <navigator url="" data-navindex='1' bindtap="navNews" class="{{currentTab!=1?'color-black': 'color-green'}}">国际新闻</navigator>
- <navigator url="" data-navindex='2' bindtap="navNews">国内新闻</navigator>
- <navigator url="" data-navindex='3' bindtap="navNews">娱乐新闻</navigator>
- <navigator url="" data-navindex='4' bindtap="navNews">体育新闻</navigator>
- <navigator url="" data-navindex='5' bindtap="navNews">综合新闻</navigator>
- </view>
- </scroll-view>
- </view>
- <view>
- <swiper current="{{currentTab}}" bindchange="swiperView">
- <swiper-item>
- <view class="swiper-view1">社会新闻</view>
- </swiper-item>
- <swiper-item>
- <view class="swiper-view2">国际新闻</view>
- </swiper-item>
- </swiper>
- </view>
- </view>
index.wxss


- /* miniprogram/pages/index/index.wxss */
- .menu{
- background-color: lightcyan;
- }
- .scroll-nav{
- background-color: lightcyan;
- display: flex;
- white-space: nowrap;
- font-size: 30rpx;
- height: 60rpx;
- line-height: 60rpx;
- }
- .scroll-nav navigator{
- font-weight: bold;
- margin: 0 10rpx;
- }
- .swiper-view1{
- width: 100%;
- height: 400rpx;
- background-color: red;
- }
- .swiper-view2{
- width: 100%;
- height: 400rpx;
- background-color: green;
- }
- .color-black{
- color: black;
- }
- .color-green{
- color: green;
- }
baidupage.wxml


- <!--miniprogram/pages/baidupage/baidupage.wxml-->
- <web-view src="https://wap.baidu.com/"></web-view>
OK.
navigator导航页面跳转与绑定事件的更多相关文章
- jquerymobile页面跳转和参数传递
http://blog.csdn.net/chen052210123/article/details/7481578 页面跳转: 页面跳转时pagebeforechange事件会被触发两次,通过$(d ...
- 微信小程序开发:学习笔记[8]——页面跳转及传参
微信小程序开发:学习笔记[8]——页面跳转及传参 页面跳转 一个小程序拥有多个页面,我们可以通过wx.navigateTo推入一个新的页面.在首页使用2次wx.navigateTo后,页面层级会有三层 ...
- jquery html 动态添加元素绑定事件
由于实际的需要,有时需要往网页中动态的插入HTML内容,并在插入的节点中绑定事件处理函数.我们知道,用Javascript向HTML文档中 插入内容,有两种方法, 一种是在写HTML代码写入JS,然后 ...
- react-native-http请求后navigator导航跳转
琢磨react-native有一段时间了.对于我来说,它的确是前端开发工作者的福音,因为我可以利用它来写app的代码,而且基本可以一套代码,多个平台使用. 早就想写一篇随笔记录一下react nati ...
- Android实现页面跳转、ListView及其事件
Android实现页面跳转.ListView及其事件 开发工具:Andorid Studio 1.3 运行环境:Android 4.4 KitKat 工程内容 进入主页面后,使用ListView实现特 ...
- 原创+转发:微信小程序navigator、redirectTo、switchTab几种页面跳转方式
什么是事件? 事件是视图层到逻辑层的通讯方式. 事件可以将用户的行为反馈到逻辑层进行处理. 详解(以常见的tap点击事情为例) 模板.wxml代码: <view id="tapTest ...
- 【Flutter学习】页面跳转之路由及导航
一,概述 移动应用通常通过成为‘屏幕’或者‘页面’的全屏元素显示其内容,在Flutter中,这些元素统称为路由,它们由导航器Navigator组件管理.导航器管理一组路由Route对象,并提供了管理堆 ...
- Flutter 使用Navigator进行局部跳转页面
老孟导读:Navigator组件使用的频率不是很高,但在一些场景下非常适用,比如局部表单多页填写.底部导航一直存在,每个tab各自导航场景. Navigator 是管理路由的控件,通常情况下直接使用N ...
- android 学习第一天 了解事件机制,页面跳转等常用操作
点击时间2种 第一种,通过初始化页面 写入点击事件 protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedI ...
随机推荐
- DarkGreenTrip博客搭建成功
本博客(https://www.cnblogs.com/zhangshuhao1116)自2021年6月19日由 Shu-How Z 搭建成功,2018年搭建过hexo+next.Wordpress ...
- 【题解】Luogu P2889 [USACO07NOV]挤奶的时间Milking Time
Luogu P2889 [USACO07NOV]挤奶的时间Milking Time 题目描述 传送门Bessie is such a hard-working cow. In fact, she is ...
- php 安装 yii 报错: phpunit/phpunit 4.8.32 requires ext-dom *
php 安装 yii 报错: phpunit/phpunit 4.8.32 requires ext-dom * 我的版本是7.0,以7.0为例演示. 先装这两个拓展试试: sudo apt-get ...
- MySQL密码复杂度策略
前言 MySQL5.6.6版本之后增加了密码强度验证插件validate_password,相关参数设置的较为严格.使用了该插件会检查设置的密码是否符合当前设置的强度规则,若不满足则拒绝设置. 本文采 ...
- 什么IP欺骗?
1.什么是IP欺骗? IP欺骗是指创建源地址经过修改的Internet协议(IP) 数据包,目的要么是隐藏发送方的身份,要么是冒充其他计算机系统,或者两者兼具.恶意用户往往采用这项技术对目标设备或周边 ...
- 区分DDD中的Domain, Subdomain, Bounded Context, Problem/Solution Space
区分DDD中的Domain, Subdomain, Bounded Context, Problem/Solution Space 译自: Domain, Subdomain, Bounded Con ...
- flex中Button事件中的e.target
关于flex中的Button事件中的e.target. 今天想在事件中调用模块中的对象通过e.target获取单击的这个Button对象,但是可能是使用var btn:Button = e.targe ...
- Maven安装、配置及基础
简介: Maven是Apache公司的开源项目,是项目构建工具,用来管理依赖. Maven的优点: 同样的代码实现相同的功能,Maven项目没有Jar包,项目大小更小. maven的优点如何实现: 没 ...
- 初入web前端---实习(职场菜鹏)
作为一个大四的准职场新人,顺利的找到了一份自己想从事的工作---web前端开发.
- CentOS-查找删除历史文件
背景:因服务器磁盘空间有限,根据实际情况控制保留指定的几天内的历史文件 find参数说明: /home/tmp 设置查找的目录 -mtime +30 设置修改时间为30天前 ...