大家来找茬是一款经典的游戏,在限定时间内,找出左右两幅图的不同之处,以最快找出不同之处最多的玩家为优胜者。游戏规则极为普及、操作简单、考验玩家的分析力观察力、适合不同性别不同年龄段的玩家,实乃办公室、宿舍杀手。
小程序日历 思路分析 要实现一个日历,就需要先知道几个值: 当月有多少天 当月第一天星期几 根据常识我们得知,每月最多31天,最少28天,日历一排7个格子,则会有5排,但若是该月第一天为星期六,则会产生六排格子才对。 小程序没有DOM操作概念,故不能动态的往当月第一天的插入多少个空格子,只能通过在前面加入空格子的循环来控制,具体参考 wxml 文件。 日历模板引入 日历模板面板支持 手势左右滑动; 提供跳转至今天方法jumpToToday; 设置日期待办事项标记 setTodoLabels; 删除指定日期待办事项标记 deleteTodoLabels; 清空所有日期待办事项标记 clearTodoLabels; 提供 template 模板引入 引入wxml及wxss // example.wxml <import src="../../template/calendar/index.wxml"/> <view class="calendar-wrap"> <template is="calendar" data="{{...calendar}}" /> </view> /* example.wxss */ @import '../../template/calendar/index.wxss'; 日历组件初始化 import initCalendar, { getSelectedDay, jumpToToday, setTodoLabels, deleteTodoLabels, clearTodoLabels } from '../../template/calendar/index'; const conf = { onShow: function() { initCalendar({ // multi: true, // 是否开启多选, // disablePastDay: true, // 是否禁选过去日期 /** * 选择日期后执行的事件 * @param { object } currentSelect 当前点击的日期 * @param { array } allSelectedDays 选择的所有日期(当mulit为true时,才有allSelectedDays参数) */ afterTapDay: (currentSelect, allSelectedDays) => { console.log('==============================='); console.log('当前点击的日期', currentSelect); console.log('当前点击的日期是否有事件标记: ', currentSelect.hasTodo || false); allSelectedDays && console.log('选择的所有日期', allSelectedDays); console.log('getSelectedDay方法', getSelectedDay()); }, /** * 日期点击事件(此事件会完全接管点击事件) * @param { object } currentSelect 当前点击的日期 * @param { object } event 日期点击事件对象 */ // onTapDay(currentSelect, event) { // console.log(currentSelect); // console.log(event); // }, /** * 日历初次渲染完成后触发事件,如设置事件标记 */ afterCalendarRender() { setTodoLabels({ pos: 'bottom', dotColor: '#40', days: [{ year: 2018, month: 5, day: 12, }, { year: 2018, month: 5, day: 15, }], }); }, }); }, deleteTodo() { // 指定需要删除待办标识的日期 deleteTodoLabels([{ year: 2018, month: 5, day: 12, }, { year: 2018, month: 5, day: 15, }]); // clearTodoLabels(); }, /** * 跳转至今天 */ jump() { jumpToToday(); }, }; Page(conf);
##1.介绍几个组件 1.1 scroll-view 组件 这里写图片描述 注意:使用竖向滚动时,需要给一个固定高度,通过 WXSS 设置 height。 1.2 image组件 这里写图片描述 注意:mode有12种模式,其中3种是缩放模式,9种是裁剪模式。 1.3 Icon组件 这里写图片描述 iconType: [ 'success', 'info', 'warn', 'waiting', 'safe_success', 'safe_warn', 'success_circle', 'success_no_circle', 'waiting_circle', 'circle', 'download', 'info_circle', 'cancel', 'search', 'clear' ] 2.列表的上拉加载和下拉刷新的实现 ##2.1先来张效果图 这里写图片描述 ##2.2逻辑很简单,直接上代码 2.2.1 detail.wxml 布局文件 <loading hidden="{{hidden}}" bindchange="loadingChange"> 加载中... </loading> <scroll-view scroll-y="true" style="height: 100%;" bindscrolltolower="loadMore" bindscrolltoupper="refesh"> <view wx:if="{{hasRefesh}}" style="display: flex;flex-direction: row;align-items: center;align-self: center;justify-content: center;"> <icon type="waiting" size="45"/><text>刷新中...</text></view> <view wx:else style="display:none" ><text></text></view> <view class="lll" wx:for="{{list}}" wx:for-item="item" bindtap="bindViewTap" data-title="{{item.title}}" > <image style=" width: 50px;height: 50px;margin: 20rpx;" src="{{item.firstImg}}" ></image> <view class="eee" > <view style="margin:5px;font-size:8px"> 标题:{{item.title}}</view> <view style="margin:5px;color:red;font-size:6px"> 来源:{{item.source}}</view> </view> </view> <view class="tips1"> <view wx:if="{{hasMore}}" style="display: flex;flex-direction: row;align-items: center;align-self: center;justify-content: center;"> <icon type="waiting" size="45"/><text>玩命的加载中...</text></view> <view wx:else><text>没有更多内容了</text></view>### </view>### </scroll-view>### ###2.2.1 detail.js逻辑代码文件 var network_util = require('../../utils/network_util.js'); var json_util = require('../../utils/json_util.js'); Page({ data:{ // text:"这是一个页面" list:[], dd:'', hidden:false, page: 1, size: 20, hasMore:true, hasRefesh:false }, onLoad:function(options){ var that = this; var url = 'http://v.juhe.cn/weixin/query?key=f16af393a63364b729fd81ed9fdd4b7d&pno=1&ps=10'; network_util._get(url, function(res){ that.setData({ list:res.data.result.list, hidden: true, }); },function(res){ console.log(res); }); }, onReady:function(){ // 页面渲染完成 }, onShow:function(){ // 页面显示 }, onHide:function(){ // 页面隐藏 }, onUnload:function(){ // 页面关闭 }, //点击事件处理 bindViewTap: function(e) { console.log(e.currentTarget.dataset.title); }, //加载更多 loadMore: function(e) { var that = this; that.setData({ hasRefesh:true,}); if (!this.data.hasMore) return var url = 'http://v.juhe.cn/weixin/query?key=f16af393a63364b729fd81ed9fdd4b7d&pno=' ( that.data.page) '&ps=10'; network_util._get(url, function(res){ that.setData({ list: that.data.list.concat(res.data.result.list), hidden: true, hasRefesh:false, }); },function(res){ console.log(res); }) }, //刷新处理 refesh: function(e) { var that = this; that.setData({ hasRefesh:true, }); var url = 'http://v.juhe.cn/weixin/query?key=f16af393a63364b729fd81ed9fdd4b7d&pno=1&ps=10'; network_util._get(url, function(res){ that.setData({ list:res.data.result.list, hidden: true, page:1,### 有刷新:假, }); },函数(res){ console.log(res); }) }, })
微信小程序城市选择器 没有加搜索,请自行添加搜索 1、安装 git clone git@github.com:chenjinxinlove/citySelect.git cd citySelect/ npm install 是基于gulp,需要安装依赖,支持es6语法 dist设置为微信小程序目录,src开发目录,添加IDE认识微信的文件,css基于sass image 2、npm run dev 启动 3、处理城市列表的js脚本在/node/process.js node process 执行