我爱编程PHP、前端、iOS、Python每天写500字

微信小程序实战(附源码)

2018-06-30  本文已影响39人  西瓜很甜哟

前言

最近出于个人兴趣以及公司业务涉及到小程序这一块,就去了解了一下小程序。首先以及必须是先去看了一下官方文档,但百看不如一练啊。所以利用空暇时间一点一点的做了这么一个小程序。

目录结构:

|- app.js      公共js文件
|- app.json    公共设置文件
|- app.wxss    公共样式文件
|- pages       项目各个文件所在文件
|   |- index     设置
|  |  |- index.js    设置模块的逻辑文件
|  |  |- index.wxml  设置模块的模板
|  |  |- index.wxss  设置模块的样式文件
|  |  |- map.js         地图
|  |  |- map.wxml
|  |  |- map.wxss
|  |- logs     日志
|  |  |- logs.js       
|  |  |- logs.wxml
|  |  |- logs.wxss
|     |- one   one模块目录
│   │   ├── edit.js      首页第一个item编辑
│   │   ├── edit.json
│   │   ├── edit.wxml
│   │   ├── edit.wxss
│   │   ├── essay.js    详情页
│   │   ├── essay.json
│   │   ├── essay.wxml
│   │   ├── essay.wxss
│   │   ├── index.js  首页
│   │   ├── index.json
│   │   ├── index.wxml
│   │   ├── index.wxss
│   │   ├── story.js    电影故事详情页
│   │   ├── story.json
│   │   ├── story.wxml
│   │   └── story.wxss
│   └── template   公用模板
│       └── common.wxml
├── project.config.json
├── source   图片资源文件

效果展示和实现

2.gif

分析:

<view class='top'>
  <picker mode="date" value="{{selectDate}}" bindchange="bindDateChange" start="2012-10-07" end="{{endDate}}">
    <view><label class='day'>{{Day}}</label> <label class='YM'>{{Month}}.{{Year}}</label></view>
  </picker>
<view wx:if="{{date=='今天'}}" animation="{{animationData}}"  class='weather'>{{weather.city_name}}·{{weather.climate}} {{weather.temperature}}℃</view>
<view wx:else class='weather' animation="{{animationDay}}"  bindtap='showTodayView' style='border:1px solid #F5F5F5;width:30px; text-align:center'>今天</view>
 </view> 
<!-- wxml-->
<!-- category 是判断分类的 -->
<view wx:if="{{item.category==0}}">      
<!-- 点击图片触发showModelView方法,弹出遮罩层 -->
<image bindtap='showModelView' data-id="{{idx}}" class='hp_img' src='{{item.img_url}}' mode='aspectFill'></image>
<label class='hp_author'>{{item.title}}|{{item.pic_info}}</label>
<text class='hp_content'>{{item.forward}}</text>
<label class='text-author'>{{item.words_info}}</label>
<view class='share-view'>
<button class='share-btn' open-type="share" data-id="{{idx}}">分享</button>
<!-- 点击编辑按钮进入编辑页 -->
<button class='edit-btn' bindtap='editText'  data-id="{{idx}}">编辑</button>
</view>
</view>
<!-- 点击图片时弹出遮罩层 -->
<view bindtap='hiddenView' class='model-view' wx:if="{{is_show_view>=0}}">
<label class='model-title'>{{content[is_show_view].volume}}</label>
<image data-url="{{content[is_show_view].download_img_url}}" bindlongpress='saveImg' class='model-img' src='{{content[is_show_view].img_url}}'></image>
<label class='model-author'>{{content[is_show_view].title}}|{{content[is_show_view].pic_info}}</label>
</view>
<!-- js  跳转编辑页 -->
 editText:function(res) {
    var id = res.target.dataset.id,
        img_url = this.data.content[id].img_url,
        forward = this.data.content[id].forward,
        words_info= this.data.content[id].words_info
    wx.navigateTo({
        url: 'edit?img_url='+img_url+'&forward='+forward+'&words_info='+words_info,
    })
    wx.hideTabBar()
  }

var WxParse = require('../../wxParse/wxParse.js');

ONE STORY详情页

ONE STROY、阅读、专栏详情页样式.gif
<!-- js文件 把需要解析的内容传入 -->
  WxParse.wxParse('content', 'html', content, that);   
<!-- wxml  文章内容 -->
<template is="wxParse" data="{{wxParseData:content.nodes}}"/>

说明:1.详情页目前只能查看评论信息,评论没有实现哦。2.查看评论只能手动一直滑动到评论,暂未实现定位到评论区功能。3.如果文章有朗读信息,会显示播放控制信息,全局播放。

音乐模块暂未开发
以上就是仿照one一个做的一个简单小程序,由于小程序的各种......,所以样式和one一个的APP不太一样,但这不是重点。重点是通过动手做一个小程序,可以对小程序组件以及整体开发过程有一个详情点的了解。最后不多做赘述了。代码奉上,虽然还有不少bug。
点击前往GitHub下载代码

上一篇 下一篇

猜你喜欢

热点阅读