第五章:微信小程序名片夹详情页开发
今天加了新干货!除了开发日志本身,还回答了一些朋友的问题。
闲话不多说,先看下「名片盒」详情页的效果图:
备注下大致需求:顶部背后是轮播图,二维码按钮弹出模态框信息、点击微信栏、点击存入手机,地址栏需要地图展示,名片分享也是模态框指引。
首先是轮播图,autoplay 自动播放,interval 轮播的时间,duration 切换速度,可以根据自己需求去添加。

  • Delete:是删除按钮,加载进来是隐藏的,需用户点轮播图进去后,轮播图全屏显示才出来。
  • noClickImg 与 ClickImg:切换全屏与非全屏轮播图,绑定了点击事件 changeClick 来切换,只是改变样式即可。
  • Block:图片列表。
  • Number_img:当前轮播 index(currentNumber),与图片 length 集合(cardnum)。

其中 currentNumber:

//轮播图发生改变时改变数字
//初始化数据
Data:{
currentNumber:1
}
slidechange:function(e){
var number = e.detail.current;
this.setData({
currentNumber:number+1
})
},
这里可以看到全屏状态下当关闭按钮被点击后 getBackStyle,把 changeClick 切换到 imgFullScrenn 待命。
再次点击返回原样式,

切换后事件又走回到 getBackStyle 了,灵活运用。

刷新下开发者工具可以看到具体效果如下:
详情页可以看到信息基本都是样式一样,可以使用微信提供的循环 block。
  
下面是详情页里面的个人信息数据,
如果有信息就显示出来,没有数据的不显示,这里使用
//中文信息
               var chinaMessage = res.card.groups[0].fields;
var personMessage= []
               for(var i = 0;i<chinaMessage.length;i++){
                personMessage.push(chinaMessage)
               }
               //为空或者null是不显示判断
              for(var k in personMessage){
                if(personMessage[k].value==null || personMessage[k].value==""){
                personMessage[k]["display"] = "none";
                }else{
                personMessage[k]["display"] = "block";
                }
               }
具体以 json 数据格式来处理,我们需要做的就是给它绑定 display 的值,然后我们调用即可。
微信此版本的 setData 不支持异步更新数据,故而我们在发生真实网络数据请求时一定要在后面加上 forceUpdata(),强制触发视图渲染,否则会出现很多莫名其妙的 bug。
这里说明下:如是服务器真实数据。
可以看到会报错,可能是 js 的执行顺序,依次往下走,此时网络数据还在请求中。
定义一个变量即可。
当然这里的数据都是 push 上来的。
以下是二维码弹出信息。
这是弹出模态框二维码信息,布好局初始化是none状态。那里需要它直接绑定数据即可:

This.setData({
//模态框名字:”显示?隐藏”
})
方法是让它显示。
需要用他的地方调用方法即可。(支持重复调用)
详情页公司位置地图直接调用微信提供的接口实现(群里的 demo 有实现方式)。
可以看下实现的效果:

下一章:微信(小程序)名片盒我的页面开发。
第六章:微信小程序「名片盒」「我」的页面开发
效果图与需求:
用户有多张名片,需要左右切换查看,往下切换是菜单按钮。
这里需求两处滑动,用到了微信提供给我们的滑动组件 swiper,并且进行了嵌套使用,第一层是名片展示与菜单按钮的上下滑动,第二层是名片展示的左右滑动(支持互相嵌套使用的,可以放心使用)。
Vertical 加上就是纵向滑动,去掉即是左右滑动。
整体结构如下所示:
点击事件绑定的是数据切换方式,因为需要支持多次点击切换。
初始化数据是 nextSlide:
再看下 nextSlide 事件。currentSlide 是当前页面的 index,改变它即可完成切换效果,可以看上图初始化数据时设置了 cs 是 0。
因而赋值当前 data.cs+1 即可,再把绑定点击事件 clickNext 切换成 nextSlideAgain。
再看下 nextSlideAgain 事件,执行的减去 1 个索引,实现多次点击切换效果。
具体效果可以看到。
点击个人名片进去编辑名片页面,由于需要带参,故而使用的是 wx.navgateTo。
可以看下效果:
最后上点干货:
我们发出第一篇教程的时候有人就注意到这点了,怎么做真实数据交互,下面大家可以了解下。
首先进去是 MD5 加密,requster 交互层。
怎么引用 MD5.js?当然是模块化 require,被引用的 js 不要忘记 module.exports 出来。
下面是 requester.js 引用 MD5.js。
ApplicationRoot 是服务器地址(配置服务器时在开发设置页面查看 AppID 和 AppSecret,配置服务器域名)。
Require.js 这里 module.exports 是暴露方法出去。
这时候在全局 app.js 里面引入 require.js 映射到全局 global,这个 global 是全局的。
这时候那个页面需要那个页面就直接去接受吧,模块化是不是很好用?
可以完整的看下与后台做数据交互的一个请求实现方式如下:
图一是 requester.js 里面的封装。
图二是需要调用数据的页面渲染。
大家有什么疑问可以多指点,会在下一章说明一些已知疑问。
应该有一些人喜欢 sublime 编辑器,有人问怎么切换高亮,在你的右下角直接切换成 html 即可。
下一章:微信小程序编辑名片页面开发(涉及要点:检索、排序、滑动及页面交互)。
 
 

微信小程序微信公众号“微little程序”,扫码关注:

交流群号:526013379

微信小程序社区:www.xiaochengxu-wx.com

微信小程序实例教程(二)的更多相关文章

  1. 开发一个微信小程序实例教程

    一.注册小程序账号 1.进入微信公众平台(https://mp.weixin.qq.com/),注册小程序账号,根据提示填写对应的信息即可.2.注册成功后进入首页,在 小程序发布流程->小程序开 ...

  2. 微信小程序实例教程(一)

    序言 开始开发应用号之前,先看看官方公布的「小程序」教程吧!(以下内容来自微信官方公布的「小程序」开发指南) 本文档将带你一步步创建完成一个微信小程序,并可以在手机上体验该小程序的实际效果.这个小程序 ...

  3. 微信小程序实例教程(四)

    第八章:微信小程序分组开发与左滑功能实现   先来看看今天的整体思路: 进入分组管理页面 --> 点击新建分组新建 进入到未分组页面基本操作 进入到已建分组里面底部菜单栏操作 --> 从名 ...

  4. 微信小程序实例教程(三)

    第七章:微信小程序编辑名片页面开发   编辑名片有两条路径,分为新增名片流程与修改名片流程. 用户手填新增名片流程:   首先跳转到我们的新增名片页面 1 需要传递用户的当前 userId,wx.na ...

  5. 从零开始的微信小程序入门教程(一)

    之前说要和同事一起开发个微信小程序项目,现在也在界面设计,功能定位等需求上开始实施了.所以在还未正式写项目前,打算在空闲时间学习下小程序.本意是在学习过程中结合实践整理出一个较为入门且不是很厚的教程, ...

  6. 微信小程序开发教程目录

    本系列教程是自己在工作中使用到而记录的,没有顺序之分 如有错误之处,请给与指正,也不希望误导了别人 微信小程序开发教程目录 微信小程序之注册和入门 微信小程序之HTTPS请求 微信小程序开发之选项卡 ...

  7. 微信小程序学习笔记二 数据绑定 + 事件绑定

    微信小程序学习笔记二 1. 小程序特点概述 没有DOM 组件化开发: 具备特定功能效果的代码集合 体积小, 单个压缩包体积不能大于2M, 否则无法上线 小程序的四个重要的文件 *js *.wxml - ...

  8. 微信小程序实例源码大全

    微信小程序实例源码大全下载 微信小应用示例代码(phodal/weapp-quick)源码链接:https://github.com/phodal/weapp-quick 微信小应用地图定位demo( ...

  9. 微信小程序开发教程 #043 - 在小程序开发中使用 npm

    本文介绍了如何在微信小程序开发中使用 npm 中包的功能,大大提高微信小程序的开发效率,同时也是微信小程序系列教程的视频版更新. 微信小程序在发布之初没有对 npm 的支持功能,这也是目前很多前端开发 ...

随机推荐

  1. android:onTouch()和onTouchEvent()的区别?看完这篇文章就知道了

    Android Touch Screen 与传统Click Touch Screen不同,会有一些手势(Gesture),例如Fling,Scroll等等.这些Gesture会使用户体验大大提升. A ...

  2. Puppent 介绍原理及安装

    Puppet原理: Puppet是一个或者多个master,众多client,所有的客户端都定期(默认为30分钟)使用facter工具把 客户端的基本信息,通过https的xmlrpc协议发送给服务器 ...

  3. UIView回调方法(可以在添加子视图等,做一些额外操作)

    didAddSubview didMoveToSuperview willMoveToSuperview didMoveToWindow willMoveToWindow willRemoveSubv ...

  4. mysql 时间字段的一些问题

    MySQl中有多种表示日期和时间的数据类型.其中YEAR表示年份,DATE表示日期,TIME表示时间,DATETIME和TIMESTAMP表示日期和实践.它们的对比如下: YEAR ,字节数为1,取值 ...

  5. VHD进阶:差分VHD备份系统

    VHD进阶:差分VHD备份系统 一.创建虚拟磁盘 方法1:图形界面创建 1.打开磁盘管理器(运行diskmgmt.msc),在“磁盘管理”上点击右键,“创建VHD”,类型选择VHD,动态扩展或者固定大 ...

  6. Mesos架构

    Mesos Architecture 上图显示了 Mesos 的主要组成部分. Mesos 由一个 master daemon 来管理 slave daemon 在每个集群节点上的运行, mesos ...

  7. 转:Loadrunner学习知多少--脚本录制下载操作

    在很多时候我们可能需要对系统进行这样的脚本开发,模拟用户点击一个下载链接,然后弹出下载框,选择保存,用来测试在大量用户下载时服务器的性能.但是现在大家对于这种脚本的处理方式往往是通过关联和C 语言的文 ...

  8. Windows API 之 CreateFile、CreateFileMapping 、MapViewOfFile

    CreateFile Creates or opens a file or I/O device. The most commonly used I/O devices are as follows: ...

  9. MFC乱七八糟笔记

    1.CBitmap------------------------------------------------------------------------------------- 1.类层次 ...

  10. Django: 配置和静态文件

    运行django-admin.py startproject [project-name] 命令会生成一系列文件,在django 1.6版本以后的settings.py文件中有以下语句: # Buil ...