zoukankan      html  css  js  c++  java
  • 跟着慕课网学的第一个微信小程序

    微信小程序的话,虽然很早就出来了,不过自己没有在工作中实际写过,觉得非常的遗憾。
    虽然也可以在github上面找一些小程序来看,不过毕竟不是一步一步自己写的,还是会觉得缺陷感
    这个是我跟着慕课网学的第一个小程序,总算是熟悉了小程序的基本套路
    1.我很早以前就注册过小程序,不过在配后端那里遇到了问题,现在重新写小程序还需要解绑之前过期的小程序,哇,就是要手持身份证挺讨厌的
    2.这个项目很基础啦,不过算是打开写小程序的思路,今天发布的小程序,不过审核时间比较长呢,放了二维码也会没有体验权限啦
    先看下一下我做的小程序的效果

    接着我们看一下代码

    代码很简单主要是用到了swiper组件,然后将数据,写到js文件中,让其渲染页面,flex布局这些我工作中都会用到。

    <swiper style="height:{{height}}px">
      <swiper-item>
        <image src="../img/photo.jpg" mode="widthFix" class="photo"></image>
        <view class="cover-info">
        <text class="cover-name">{{name}}</text>
        <text class="cover-spell">{{spell}}</text>
        <view class="big-circle"></view>
        <view class="medium-circle"></view>
        <view class="small-circle"></view>
        <view class="small1-circle"></view>
          <view class="cover-work">
            <text class="cover-job">{{job}}</text>
            <text class="cover-exp">{{exp}}</text>
          </view>
        </view>
        <view class="navigation">
          遇见我
          <image src="../img/arrow-right.png" class="arrow-right"></image>
        </view>
      </swiper-item>
      <swiper-item>
        <scroll-view scroll-y="true" style="height:{{height}}px">
          <view class="resume"> 
            <view class="section">
              <view class="section-info">
                <view class="section-seq">1</view>
                <view class="section-title">基本资料</view>
              </view>
              <view class=" column col-2">
                <text class="info">姓名:{{name}}</text>
                <text class="info">电话:{{tel}}</text>
              </view>
              <view class=" column col-2">
                <text class="info">性别:{{sex}}</text>
                <text class="info">年龄:{{age}}</text>
              </view>
              <view class=" column col-1">
                <text class="info">邮箱:{{email}}</text>
              </view>
              <view class=" column col-1">
                <text class="info">住址:{{address}}</text>
              </view>
            </view>
            <view class="section">
              <view class="section-info">
                <view class="section-seq">2</view>
                <view class="section-title">主要栏目</view>
              </view>
              <view class="skill" wx:for="{{skill}}" wx:key="item">
                <text class="skill-name">{{item.name}}</text>
                <progress class="process" percent="{{item.percent}}" stroke-width="5"></progress>
              </view>
            </view>
             <view class="section">
               <view class="section-info">
                <view class="section-seq">3</view>
                <view class="section-title">3333</view>
                 </view>
                <view class="education" wx:for="{{education}}" wx:key="item">
                  <view class="school">
                    <image src="../img/icon_school.png" class="icon-school"></image>
                    <text>{{item.school}}</text>
                  </view>
                  <view class="row">
                    <view class="info">
                      <image src="../img/icon_book.png" class="icon-book"></image>
                      <text>{{item.major}}</text>
                    </view>
                    <view class="info">
                      <image src="../img/icon_calendar.png" class="icon-calendar"></image>
                      <text>{{item.major}}</text>
                    </view>
                  </view>
                  <rich-text class="desc">{{item.desc}}</rich-text>
                </view>
            </view>
            <text class="page">1/4</text>
          </view>
        </scroll-view>
      </swiper-item>
      <swiper-item>
        <scroll-view scroll-y="true" style="height:{{height}}px">
        <view class="resume">
         <view class="section">
           <view class="section-info">
            <view class="section-seq">4</view>
            <view class="section-title">experience</view>
          </view>
          <view class="work" wx:for="{{work}}" wx:key="item">
            <view class="company">
              <image src="../img/icon_company.png" class="icon-company"></image>
            <text>{{item.company}}</text>
            </view>
            <view class="row">
              <view class="info">
                <image src="../img/icon_job.png" class="icon-job">
                </image>
                <text>{{item.job}}</text>
              </view>
              <view class="info">
                <image src="../img/icon_calendar.png" class="icon-calendar"></image>
                <text>{{item.major}}</text>
              </view>
            </view>
            <rich-text class="desc">{{item.desc}}</rich-text>
          </view>
          <text class="page">2/4</text>
         </view>
        </view>
        
        </scroll-view>
      </swiper-item>
      <swiper-item>
        <scroll-view scroll-y="true" style="height:{{height}}px">
        <view class="resume">
         <view class="section">
           <view class="section-info">
            <view class="section-seq">5</view>
            <view class="section-title">experience</view>
          </view>
          <view class="project" wx:for="{{project}}" wx:key="item">
            <view class="project-name">
              <image src="../img/icon_computer.png" class="icon-computer"></image>
            <text>{{item.name}}</text>
            </view>
            <rich-text class="desc">{{item.desc}}</rich-text>
          </view>
          <text class="page">3/4</text>
         </view>
        </view>
        
        </scroll-view>
      </swiper-item>
      <swiper-item>
        <scroll-view scroll-y="true" style="height:{{height}}px">
          <view class="resume">
            <view class="section">
              <view class="section-info">
                <view class="section-seq">6</view>
                <view class="section-title">interdouce</view>
              </view>
            </view>
            <view class="project">
              <rich-text class="desc">
                {{introduction}}
              </rich-text>
            </view>
            <text class="page">4/4</text>
          </view>
        </scroll-view>
      </swiper-item>
    </swiper>
    
    
    // pages/index.js
    Page({
    
      /**
       * 页面的初始数据
       */
      data: {
        0,
        height:0,
        name:'dimple',
        spell:'jser_dimple',
        job:'花式跳绳达人',
        exp:'2年半',
        name:'dimple',
        tel:'13265483900',
        sex:'女',
        email:'dimple@qq.com',
        address:'深圳',
        skill:[
          {name:'单腿跳',percent:60},
          {name:'交错跳绳',percent:89},
          {name:'正反跳',percent:45},
          {name:'左右跳',percent:99}
        ],
        education:[
          {
            school:'天字一号花式跳绳大学',
            major:'big跳绳达人',
            year:'2012-2016',
            desc:'让人惊艳的跳绳达人,拥有无语伦比的魅力'
          },
          {
            school:'佛字一号花式跳绳社会研究院',
            major:'顶尖的花式跳绳选手',
            year:'2016-2020',
            desc:'为什么遇见她,时光都停驻,这花式跳绳的魅力'
          }
        ],
        work:[
          {
            company:'花式大大一',
            job:'花式跳绳达人',
            year:'2016-2018',
            desc:'用功的花式达人'
          },
          {
            company:'花式大大二',
            job:'花式超级达人',
            year:'2018-2020',
            desc:'花式达人拥有超越花式达人的魅力'
          },
          {
            company:'花式大大一1',
            job:'花式跳绳达人',
            year:'2016-2018',
            desc:'用功的花式达人'
          },
          {
            company:'花式大大二2',
            job:'花式超级达人',
            year:'2018-2020',
            desc:'花式达人拥有超越花式达人的魅力'
          },
          {
            company:'花式大大一2',
            job:'花式跳绳达人',
            year:'2016-2018',
            desc:'用功的花式达人'
          },
          {
            company:'花式大大二2',
            job:'花式超级达人',
            year:'2018-2020',
            desc:'花式达人拥有超越花式达人的魅力'
          },
        ],
        project:[
          {
            name:'美丽花式跳绳一',
            desc:'展现了高超的花式跳绳技巧'
          },
          {
            name:'美丽花式跳绳二',
            desc:'花式跳绳是生活中的一部分,让人无与伦比的快乐'
          },
          {
            name:'美丽花式跳绳一1',
            desc:'展现了高超的花式跳绳技巧'
          },
          {
            name:'美丽花式跳绳二1',
            desc:'花式跳绳是生活中的一部分,让人无与伦比的快乐'
          },
          {
            name:'美丽花式跳绳一2',
            desc:'展现了高超的花式跳绳技巧'
          },
          {
            name:'美丽花式跳绳二2',
            desc:'花式跳绳是生活中的一部分,让人无与伦比的快乐'
          }
        ],
        introduction:'大家好鸭,我是花式跳绳达人dimple,我很阔爱,很喜欢跳绳鸭~很喜欢交朋友呢,我们有机会一起交流技术鸭~认识你真的好开心鸭~'
      },
    
      /**
       * 生命周期函数--监听页面加载
       */
      onLoad: function (options) {
    
      },
    
      /**
       * 生命周期函数--监听页面初次渲染完成
       */
      onReady: function () {
    
      },
    
      /**
       * 生命周期函数--监听页面显示
       */
      onShow: function () {
        var width = wx.getSystemInfoSync().windowHeight
        var height = wx.getSystemInfoSync().windowHeight
        this.setData({
          width,
          height:height
        })
      },
    
      /**
       * 生命周期函数--监听页面隐藏
       */
      onHide: function () {
    
      },
    
      /**
       * 生命周期函数--监听页面卸载
       */
      onUnload: function () {
    
      },
    
      /**
       * 页面相关事件处理函数--监听用户下拉动作
       */
      onPullDownRefresh: function () {
    
      },
    
      /**
       * 页面上拉触底事件的处理函数
       */
      onReachBottom: function () {
    
      },
    
      /**
       * 用户点击右上角分享
       */
      onShareAppMessage: function () {
    
      }
    })
    
    /* pages/index.wxss */
    .photo{
      display: block;
       90%;
      margin-left: auto;
      margin-right: auto;
      position: fixed;
      bottom: 0;
    }
    .cover-info{
      position: absolute;
      left: 50px;
      top: 30px;
    }
    .cover-name{
      font-size: 30px;
      font-weight: bold;
      display: block;
      letter-spacing: 1px;
    }
    .cover-spell{
      font-size: 20px;
      letter-spacing: 1px;
    }
    .big-circle{
      background-color: rgba(0,165,34,0.7);
       260px;
      height: 260px;
      border-radius: 130px;
      position: absolute;
      left: -200px;
      top: 110px;
    }
    .medium-circle{
      background-color: rgba(0,165,34,0.7);
       160px;
      height: 160px;
      border-radius: 80px;
      position: absolute;
      right: -280px;
      top: 170px;
    }
    .small-circle{
      background-color: rgba(0,165,34,0.7);
       50px;
      height: 50px;
      border-radius: 25px;
      position: absolute;
      left: 60px;
      top: 60px;
    }
    .small1-circle{
      background-color: rgba(0,165,34,0.7);
       80px;
      height: 80px;
      border-radius: 40px;
      position: absolute;
      left: 190px;
      top: 110px;
    }
    .cover-work{
    position: absolute;
    top: 300px;
    left: 180px;
    text-align: center;
    background: rgba(0,0,0,0.2);
    padding: 20px 0;
     100%;
    }
    .cover-job{
      display: block;
      color: #fff;
      font-size: 30px;
      font-weight: bold;
    }
    .cover-exp{
      display: block;
      color: #fff;
      font-size: 20px;
    }
    .navigation{
      position: absolute;
      top: 40px;
      right: 10px;
      font-size: 18px;
    }
    .arrow-right{
       20px;
      height: 20px;
      vertical-align: -3px;
    }
    .resume{
      margin: 0 20px;
     
    }
    .section{
    
    }
    .section-info{
      display: flex;
      border-bottom: 1px solid #333;
      padding-bottom: 5px;
      /* margin: 10px 0; */
      margin-top: 10px;
      margin-bottom: 10px;
    }
    .section-seq{
      background-color: #444;
       22px;
      height: 22px;
      color: #fff;
      text-align: center;
      line-height: 22px;
      font-weight: bold;  
      margin-top: 3px;
    }
    .section-title{
      font-size: 20px;
    }
    .column{
      font-size: 16px;
      border-bottom: dashed 1px #333;
      padding:10px 0;
    }
    .col-2{
      column-count: 2;
    }
    .info{
      display: block;
    }
    .col-1{
      column-count: 1;
    }
    .skill{
      padding: 5px 0;
    }
    .skill-name{
      font-size: 16px;
      display: block;
      margin-bottom: 5px;
    }
    .education,.work,.project{
    border-bottom: dashed 1px #999;
    padding: 10px 0;
    }
    .education:last-of-type{
      border-bottom: none;
    }
    .school,.company,.project-name{
      font-size: 18px;
      margin-bottom: 10px;
    }
    .icon-school{
       26px;
      height: 26px;
      vertical-align: -6px;
      margin-right: 5px;
    }
    .row{
      display: flex;
      justify-content: space-between;
    }
    .info{
      font-size: 16px;
      margin-bottom: 10px;
    }
    .icon-book{
      16px;
      height: 16px;
      vertical-align: -2px;
      margin-right: 3px;
    }
    .icon-calendar{
       17px;
      height: 17px;
      vertical-align: -2px;
      margin-right: 3px;
    }
    .desc{
      color: #999;
      line-height: 1.5;
    }
    .page{
      display: block;
       100%;
      text-align: center;
      font-size: 14px;
      padding-bottom: 15px;
    }
    .work:last-of-type{
      border-bottom: none;
    }
    .icon-company{
       22px;
      height: 22px;
      vertical-align: -4px;
      margin-right: 5px;
    }
    .icon-job{
       18px;
      height: 18px;
      vertical-align: -3px;
      margin-right: 3px;
    }
    .icon-computer{
       26px;
      height: 26px;
      vertical-align: -6px;
      margin-right: 5px;
    }
    .project:last-of-type{
      border-bottom: none;
    }
    

    其实我觉得这样写的小程序没有章法,比如vertical-align:-3px,可能我固有思想是盒子模型吧,老觉得直接这样用很难受
    期待我关注更多的小程序

  • 相关阅读:
    C#及时释放代码
    软件本质是什么?
    WCF学习
    android 更新ui
    ijkplayer视频播放
    androidstudio集成ijkplayer教程
    IJKPlayer问题集锦之不定时更新
    github上十二款最著名的Android播放器开源项目
    让ubuntu支持GBK编码AAAAA
    adb命令--之查看进程及Kill进程
  • 原文地址:https://www.cnblogs.com/smart-girl/p/13280434.html
Copyright © 2011-2022 走看看