要开发微信小程序以前,须要作一些准备工做,首先进入https://mp.weixin.qq.com/debu...html
而后再进入https://mp.weixin.qq.com/debu...,接下来就解压源码包和安装微信开发工具,安装好开发软件以后,在桌面能够看到
而后点击进入须要手机微信扫码确认登陆,扫码完以后选择本地小程序项目web
选择添加项目以后json
若是想要学习一下微信小程序,暂时不发布的,就能够点击无AppID,若是后期要发布就去官网申请小程序账号,会给你发一个AppID,项目名称你就随意取一个,项目目录就进入刚刚咱们下载解压后的源码包,而后就会进入微信开发的界面了小程序
了解完这个开发界面以后,咱们就能够进行简单的微信小程序开发了微信小程序
首先来讲下小程序的三个全局文件:
app.js:小程序脚本,声明全局变量和监听处理小程序的生命周期函数
app.json:全局配置文件,如小程序有多少个页面,窗口标题颜色内容,导航条配置,窗口颜色等等,注意:此页不可添加任何注释
app.wxss:存放公共样式
另外还有两个文件,一个是utils这个文件里面主要是放一些通用工具类,重点是pages这个文件,他是存放全部页面的文件夹,小程序页面主要是由三个文件构成,wxml,wxss,js,json,
pages里面的文件你是能够删除,而后创建属于本身的文件名称,目前pages中默认两个文件index和logs你能够删除,可是若是你新创建你的新页面文件,得在app.json中声明,这里要注意一下,在app.json中的pages数组中,第一个声明的页面就是微信小程序会进入的首页数组
若是要改变某页面顶部导航样式,要在当前页面的json文件中修改,例如,要修改index页面的顶部导航,则在index.json中设置微信
{ "navigationBarTitleText": "首页", "navigationBarBackgroundColor": "black", "navigationBarTextStyle": "#fff" }
若是要修改所有页面的顶部导航,则要在app.json中修改微信开发
"window": { "backgroundTextStyle": "light", "navigationBarBackgroundColor": "#fff", "navigationBarTitleText": "WeChat", "navigationBarTextStyle": "black" } }
若是在index.json中也设置了顶部导航,则优先级别是index.json,app.json里面设置顶部导航是默认样式
index页面设置顶部导航,结果以下:app
首先微信小程序中有个navigator标签,你能够把他理解成web中的a标签
在wxml文件中:xss
<!-- 跳转到新页面 --> <navigator url="../test/test">navigator跳转</navigator> <!-- 跳转到当前页面 --> <navigator url="../test/test" open-type="redirect">redirect跳转</navigator>
固然除了能够在wxml中直接写跳转,也能够用另一种方法写跳转
在wxml中:
<text bindtap="navigatorFunc">navigator跳转</text> <text bindtap="enterTest">redirect跳转</text>
在js文件中:
enterTest:function(){ wx.redirectTo({ url: '../test/test', }) }, navigatorFunc:function(){ wx.navigateTo({ url: '../test/test', }) },
在wxml中:
<swiper indicator-dots="{{indicatorDots}}" autoplay="{{autoplay}}" interval="{{interval}}" duration="{{duration}}"> <block wx:for="{{imgUrls}}"> <swiper-item> <navigator url="{{item.link}}" hover-class="navigator-hover"> <image src="{{item.url}}" class="slide-image"/> </navigator> </swiper-item> </block> </swiper>
swiper不能放在任何元素内部,不然轮播会出错
在wxss中:
.slide-image{ width: 100%; }
设置图片宽度铺满整个屏幕
在js中:
data: { imgUrls: [ { link: '/pages/index/index', url: 'http://www.wallcoo.com/holiday/2015%20New%20Year%2001/images/2015_celebrating_wallpaper_164701524.jpg' }, { link: '/pages/logs/logs', url: 'http://www.wallcoo.com/holiday/2015%20New%20Year%2001/images/2015_celebrating_wallpaper_164701516.jpg' }, { link: '/pages/test/test', url: 'http://www.wallcoo.com/holiday/2015%20New%20Year%2001/images/2015_celebrating_wallpaper_164701517.jpg' } ], // 是否须要底部轮播小点 indicatorDots: true, // 是否自动播放 autoplay: true, // 自动播放时间间隔 interval: 5000, // 滑动动画时间 duration: 1000, },
其中link为跳转的连接,URL为图片的地址,可是这个图片地址不能是本地地址,必须是线上图片地址或者base64为图片
运行效果以下:
在app.json中添加:
"tabBar": { "color": "#000", "selectedColor": "#1296db", "borderStyle": "white", "list": [ { "selectedIconPath": "images/1-1.png", "iconPath": "images/1.png", "pagePath": "pages/index/index", "text": "首页" }, { "selectedIconPath": "images/1-1.png", "iconPath": "images/1.png", "pagePath": "pages/logs/logs", "text": "日志" }, { "selectedIconPath": "images/1-1.png", "iconPath": "images/1.png", "pagePath": "pages/test/test", "text": "测试" } ] }
selectedIconPath为选中时底下图标,iconPath为未选中底下图标,pagePath为点击时切换页面路径,text为顶部文字内容,color为底部文字颜色,selectedColor文字选中颜色,注意:底部导航切换按钮不能超过五个
运行截图:
这里要注意一点,当你的页面路径已经弄成底部导航切换时,其余页面要进入此页面路径切换代码就不能用普通的切换了,正确代码以下:
在js中:
wx.switchTab({ url: 'pages/test/test', })
或者在wxml中:
<navigator url="/pages/index/index" open-type="switchTab">跳转按钮</navigator>
以上两个是等价的
在wxml中:
<!-- 表单 --> <form bindsubmit="formSubmit" bindreset="formReset"> <view class="group"> <view class="title">用户名:</view> <view class="cont"> <input type="text" name="username" placeholder="请输入用户名"/> </view> <view class="clear"></view> </view> <view class="group"> <view class="title">性别:</view> <view class="cont"> <radio-group name="gender"> <label><radio value="1"/>男</label> <label><radio value="0"/>女</label> </radio-group> </view> <view class="clear"></view> </view> <view class="group"> <view class="title">food:</view> <view class="cont"> <checkbox-group name="hobby"> <label><checkbox value="0"/>蛋糕</label> <label><checkbox value="1"/>牛排</label> <label><checkbox value="1"/>排骨头</label> </checkbox-group> </view> <view class="clear"></view> </view> <view class="group"> <view class="title">赞成:</view> <view class="cont"> <switch name="isagree"/> </view> <view class="clear"></view> </view> <view class="group"> <button form-type="submit">提交表单</button> <button form-type="reset">清空表单</button> </view> </form>
在wxss中:
.clear{ clear: both; } .title{ float: left; width: 100px; text-align: right; } .cont{ float: left; } input{ border:1px solid gainsboro; } .group{ margin-top:20px; }
在js中:
// 提交表单函数 formSubmit:function(e){ console.log(e); console.log("表单已经提交!"); console.log("用户名:"+e.detail.value.username); console.log("性别:" + (e.detail.value.gender==1?"男":"女")); }, // 清空表单函数 formReset:function(e){ console.log("表单已经清空!"); },
效果以下:
注意:formSubmit为表单提交后执行的函数,e.detail.value中是表单提交上来的数据,这里要注意,存放数据的标签必定要有name属性值才能获取数据
1.模态框
在wxml中:
<view class="modalBox"> <button bindtap="modalFunc">modal模态框</button> <button bindtap="createModal">动态建立模态框</button> </view> <!-- 提示框 --> <modal title="提示" confirm-text="确认" cancel-text="取消" hidden="{{modalHidden}}" mask bindconfirm="confirmFunc" bindcancel="cancelFunc"> 是否确认提交? </modal>
在js中:
data: { //false显示,true为隐藏 modalHidden:true }, // 模态框出现 modalFunc:function(){ // 显示提示框 this.setData({ modalHidden: false }); }, // 动态建立模态框 createModal:function(){ wx.showModal({ title: '动态建立模态框', content: '本框测试用的哈', success: function (res) { if (res.confirm) { console.log('用户点击肯定') } else if (res.cancel) { console.log('用户点击取消') } } }) }, // 确认函数 confirmFunc:function(){ console.log("点击了确认!"); // 关闭提示框 this.setData({ modalHidden: true }); }, // 取消函数 cancelFunc:function(){ console.log("点击了取消!"); // 关闭提示框 this.setData({ modalHidden: true }); },
运行结果以下:
2.提示框
在wxml中:
<view class="modalBox"> <button bindtap="toastFunc">toast提示框</button> <button bindtap="createToast">动态建立toast提示框</button> </view> <!-- 提示框 --> <toast hidden="{{toastHidden}}">提交成功</toast>
在js中:
data: { //false显示,true为隐藏 toastHidden:true }, // 提示框出现 toastFunc:function(){ // 显示提示框 this.setData({ toastHidden: false }); // 两秒后提示框消失 var that = this; setTimeout(function(){ that.setData({ toastHidden: true }); },2000); }, // 动态建立提示框 createToast:function(){ wx.showToast({ title: '设置成功', }) },
截图效果以下:
以上这些都是微信小程序里面比较基础的内容,之后若是有新的发现会再次更新本篇文章。