【輕松集贊】寫了個涉嫌混淆微信官方服務的小程序

此處輸入圖片的描述
此處輸入圖片的描述

發(fā)生背景:

????隨著現(xiàn)在國內(nèi)的社交軟件用戶群體的不斷擴大闷串,商家打廣告的方式(套路)也越來越多了刨裆,每次走在大街上都可以看到商家打出來廣告牌奥邮,"朋友圈點贊超過30享受六折優(yōu)惠"闻丑。在上一次和女盆友出去萬達吃個晚飯懒构,終于我們也被這個活動誘惑了一下下十兢,作為口袋錢不多又想好好吃一頓的大三狗趣竣,看看望著桌子上一大盆烤魚,還在猶豫要不要點一份小龍蝦的女朋友旱物,還是選擇了拍照發(fā)朋友圈然后挨個去群里叫親朋好友點贊遥缕,麻煩了一堆好友,真是不好意思宵呛。
????吃飽喝足单匣,兩個人扶著腰走在路上炫'腹'、還是女盆友的提醒說宝穗,你不是會小程序嗎封孙,能不能寫一個點贊的小程序來用。哎讽营、還真是虎忌,我自己擼一個也是闊以的,說不定還能給其他人用橱鹏。

程序分解

分析了一下小程序要的功能:

 1. 主要功能:點贊(想要多少贊就要多少贊)  
 2. 微信朋友圈部分功能    

項目結(jié)構(gòu)

感覺這個小程序比較適合想要練手小程序和WeUI的盆友膜蠢,所以細講一點

├── assets 小程序所需的images icon                 
├── pages   頁面目錄          
|   ├── welcome 歡迎頁面      
|   ├── index   內(nèi)容發(fā)布操作頁面
|   ├── mian   '朋友圈' 
├── style   頁面的樣式 及weui
└── app.js  小程序邏輯 全局參數(shù)
└── app.wxss 小程序公共樣式
└── app.json   項目的配置

需要注意的地方:微信朋友圈發(fā)布一張圖片和多張圖片圖片寬高比例不一樣

歡迎頁面Welcome

  • 歡迎頁的動畫我很喜歡,在設計的時候也想了試了比較久莉兰,也許是這一個小程序的最養(yǎng)眼的地方
    此處輸入圖片的描述
    此處輸入圖片的描述

    就這張gif效果顯示最好 麻煩大家想象一下豎屏的畫面
  • 這個氣泡動畫都是由代碼 + svg圖生成 其實只要你想到就非常簡單
    結(jié)構(gòu)部分:
// 我頁面上設置了10氣泡
<view class="container">
  <view class="zan animation {{rotate?'biubiu':''}}" bindtap="onTap"></view>
  <ul class="bg-bubbles {{rotate?'biubiu':''}}">
    <li></li> <li></li>
    <li></li><li></li>
    <li></li><li></li>
    <li></li> <li></li>
    <li></li><li></li>
  </ul>
</view>

部分樣式:

.animation{
  -webkit-animation: rotate 2s linear;
  animation: rotate 2s linear;
}
.biubiu{
  -webkit-transform:rotate(720deg) scale(2,2);
  transform:rotate(720deg) scale(0,0); 
  -webkit-transition:all 2s ease-in-out;
  transition:all 2s ease-in-out;
}

.bg-bubbles {
//整個背景占滿全屏
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
}
.bg-bubbles li {
  position: absolute;
  bottom: -160rpx; // 讓氣泡從頁面底部冒出的效果
  width: 40rpx;
  height: 40rpx;
  /* background-color: rgba(255,255,255,0.15); */
  list-style: none;
  // 使用自定義動畫使氣泡漸現(xiàn)挑围、上升和翻滾
  animation: square 15s infinite;
  transition-timing-function: linear;
  overflow: hidden;
}
li image{
  width: 100%;
  height: 100%;
}
//給每個氣泡通過left 設置在不同的點 這里只展示一個節(jié)點操作
.bg-bubbles li:nth-child(2) {
  left: 20%;
  width: 90rpx;
  height: 90rpx;
//設置不同氣泡的動畫執(zhí)行時間 和出現(xiàn)時間
  animation-delay: 2s;
  animation-duration: 7s;
  background-image: url('svgPath'); //保持圖像的縱橫比并將圖像縮放成將完全覆蓋背景定位區(qū)域
  // 讓每一個氣泡圖片完整展示
  background-size: cover;
}

// 兩個自定義動畫實現(xiàn)頁面顯示動畫效果
@keyframes square {
  0% {
    opacity: 0.5;
    transform: translateY(0rpx) rotate(45deg);
  }
  25% {
    opacity: 0.75;
    transform: translateY(-800rpx) rotate(90deg);
  }
  50% {
    opacity: 1;
    transform: translateY(-1200rpx) rotate(135deg);
  }
  100% {
    opacity: 0;
    transform: translateY(-1000rpx) rotate(180deg);
  }
}

@keyframes rotate{
    //就不貼那么多 占位置
}

再回過頭去看看,只要想清楚了實現(xiàn)起來并沒有那么復雜

welcome頁面的js文件中 頁面跳轉(zhuǎn)可以由點擊和自動跳轉(zhuǎn)糖荒,因為自動跳轉(zhuǎn)設置在頁面onLoad事件的定時器中杉辙,所以在點擊跳轉(zhuǎn)之后,應該將onLoad中的定時器進行清除操作

內(nèi)容發(fā)布頁Index

發(fā)布頁就像正常發(fā)布朋友圈一樣捶朵,說說內(nèi)容蜘矢、圖片狂男、位置基本內(nèi)容不能少
因為我們是點贊小程序,所以可以將點贊和評論操作放在本頁品腹,當然在朋友圈頁面也有提供點贊的按鈕

頁面布局效果和操作:

發(fā)布頁面
發(fā)布頁面

這個頁面大部分使用了WeUI的組件編寫主要用到的組件有:

主要是表單組件岖食,實際上我們這個頁面大部分在做表單處理:
weui-cells 表單
uploader 圖片上傳
slider 滑動按鈕
picker 從底部彈起的滾動選擇器 支持多種選擇器,通過mode分別
button 按鈕

整個頁面可以理解為:將一切你想要在'朋友圈'展示的內(nèi)容設置好 ->通過 wx.setStorageSync()寫入緩存里進行數(shù)據(jù)傳遞到即將展示的內(nèi)容頁面
值得一說:
長按圖片刪除

  deleteTap(e) {
    var imgList = this.data.images;
    const index = e.currentTarget.dataset.item;
    // 通過spilce()對數(shù)組中的元素刪除 通過MVVM模式 再setData 對圖片實現(xiàn)長按刪除
    imgList.splice(index, 1); 
    wx.showModal({
      title: '溫馨提示',
      content: '確定要刪除嗎',
      showCancel: false,
      confirmText: '確定',
      success:(response)=>{
        this.setData({
          images:imgList
        });
      }
    });
  }

朋友圈 Main

使用了一下朋友的手機錄了個屏(不小心暴露了老哥的珍藏表情包) 因為他的昵稱是透明的舞吭,所以在頁面上昵稱那一塊是空缺的

多張
多張

一張圖片時
一張圖片時

完整頁面展示
完整頁面展示

在內(nèi)容頁面中泡垃,值得注意的就是微信朋友圈的圖片的顯示,單張圖和多張圖圖片的顯示寬高比不一樣羡鸥,從效果圖中可以看出蔑穴,在實際實現(xiàn)中可以通過判斷要展示的圖片數(shù)組的長度進行三元運算判斷選擇使用哪一種展示樣式

content_info.images.length >1?'image_item':'image_item3_4'

實現(xiàn):

// 使用了九宮格布局
 <view class="weui-grids images_list">
            <block wx:for="{{content_info.images}}" wx:key="{{index}}">
              <view class="weui-grid {{content_info.images.length >1?'image_item':'image_item3_4'}}" hover-class="weui-grid_active">
                <image data-id="{{index}}" mode="aspectFill" src="{{item.path}}" bindtap="preImgTap" />
              </view>
            </block>
          </view>

微信的WeUI框架中包含了常用的九宮格布局 通過weui-grids 類名使用,我也是再自己手寫完九宮格的樣式以后才無意中在文檔里瞥到了惧浴,這一瞥差點吐血(又白折騰一陣)澎剥,還是給大家貼上原來的九宮格布局代碼:

        .grid {
            padding: 40rpx 0;
            margin-left: auto;
            margin-right: auto;
            max-width: 660rpx;
            overflow: hidden;
            box-sizing: border-box;
        }

        /* 自建九宮格最方便的寫法 width: 33.33333%; */

        .grid .item {
            float: left;
            box-sizing: border-box;
            width: 33.33333%;
            padding-left: 4%;
            padding-right: 4%;
            margin-bottom: 40rpx;
            overflow: hidden;
        }

點贊按鈕:

點贊的人名都是我所能想到的人名以及角色名,可把邊上的人都寫了一遍

點贊的操作因為程序功能的需要做成了點一下加一個點贊人數(shù)
因為在onload中已經(jīng)通過發(fā)布頁面(index)的slider確定了點贊的人數(shù)赶舆,

//點贊按鈕點擊一下增加一個人即一個昵稱
 addThumb(){
    let thumbs = this.data.content_info.thumbs;
    thumbs = thumbs +1;
    this.data.content_info.thumbs = thumbs;
    let nickNames = app.globalData.nickNames;
    const temp = [];
    for (let i = 0; i < thumbs-1; i++) {
      temp.push(nickNames[i]);
    }
    //為了解決昵稱最后一個逗號問題,直接粗暴的在最后添加一項
    temp.push('佚名');
    this.setData({
      nickNames: temp
    })
  }

使用到的API:

//圖片預覽
wx.previewImage({
      current: `${path}`,//當前顯示的圖片路徑
      urls: [...urls]//要預覽的所有圖片
    })

隨手的一個小程序祭饭,但是功能還是可以的芜茵,符合小程序用完即走的原則,上線是不可能的倡蝙,界面和功能混淆了微信的官方服務功能

此處輸入圖片的描述
此處輸入圖片的描述
九串,不過我留了一個體驗版在手機里,美滋滋寺鸥。比較適合想要練手小程序和weui的童鞋
全部的代碼還請移步我的github,歡迎starfork猪钮。最后朋友圈頁面的評論按鈕功能后面會繼續(xù)實現(xiàn),想要實現(xiàn)的朋友可以參考我的思路:

頁面上設置input onfocus 默認隱藏胆建,自動獲取焦點->點擊評論按鈕再顯示
獲取iput的value 通過數(shù)據(jù)綁定的效果 綁定到評論數(shù)據(jù)中烤低,頁面刷新

寫在后面

  1. 在使用你不知道或不熟悉的API或組件之前先看看文檔,事半功倍
  2. 小程序在模擬器上實現(xiàn)一些復雜功能和界面效果時笆载,及時在移動設備上進行效果查看扑馁, 避免移動端上達不到預期效果,iosandroid有時候在樣式的顯示上有時也會有不同
  3. 前端路漫漫凉驻,與君共勉之腻要。
    舔屏
    舔屏
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市涝登,隨后出現(xiàn)的幾起案子雄家,更是在濱河造成了極大的恐慌,老刑警劉巖胀滚,帶你破解...
    沈念sama閱讀 217,657評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件趟济,死亡現(xiàn)場離奇詭異乱投,居然都是意外死亡,警方通過查閱死者的電腦和手機咙好,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,889評論 3 394
  • 文/潘曉璐 我一進店門篡腌,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人勾效,你說我怎么就攤上這事嘹悼。” “怎么了层宫?”我有些...
    開封第一講書人閱讀 164,057評論 0 354
  • 文/不壞的土叔 我叫張陵规肴,是天一觀的道長。 經(jīng)常有香客問我剔桨,道長讥珍,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,509評論 1 293
  • 正文 為了忘掉前任毁菱,我火速辦了婚禮米死,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘贮庞。我一直安慰自己峦筒,他們只是感情好,可當我...
    茶點故事閱讀 67,562評論 6 392
  • 文/花漫 我一把揭開白布窗慎。 她就那樣靜靜地躺著物喷,像睡著了一般。 火紅的嫁衣襯著肌膚如雪遮斥。 梳的紋絲不亂的頭發(fā)上峦失,一...
    開封第一講書人閱讀 51,443評論 1 302
  • 那天,我揣著相機與錄音术吗,去河邊找鬼尉辑。 笑死,一個胖子當著我的面吹牛较屿,可吹牛的內(nèi)容都是我干的材蹬。 我是一名探鬼主播,決...
    沈念sama閱讀 40,251評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼吝镣,長吁一口氣:“原來是場噩夢啊……” “哼堤器!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起末贾,我...
    開封第一講書人閱讀 39,129評論 0 276
  • 序言:老撾萬榮一對情侶失蹤闸溃,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體辉川,經(jīng)...
    沈念sama閱讀 45,561評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡表蝙,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,779評論 3 335
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了乓旗。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片府蛇。...
    茶點故事閱讀 39,902評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖屿愚,靈堂內(nèi)的尸體忽然破棺而出汇跨,到底是詐尸還是另有隱情,我是刑警寧澤妆距,帶...
    沈念sama閱讀 35,621評論 5 345
  • 正文 年R本政府宣布穷遂,位于F島的核電站,受9級特大地震影響娱据,放射性物質(zhì)發(fā)生泄漏蚪黑。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,220評論 3 328
  • 文/蒙蒙 一中剩、第九天 我趴在偏房一處隱蔽的房頂上張望忌穿。 院中可真熱鬧,春花似錦结啼、人聲如沸掠剑。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,838評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至沸伏,卻和暖如春糕珊,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背毅糟。 一陣腳步聲響...
    開封第一講書人閱讀 32,971評論 1 269
  • 我被黑心中介騙來泰國打工红选, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人姆另。 一個月前我還...
    沈念sama閱讀 48,025評論 2 370
  • 正文 我出身青樓喇肋,卻偏偏與公主長得像,于是被迫代替她去往敵國和親迹辐。 傳聞我的和親對象是個殘疾皇子蝶防,可洞房花燭夜當晚...
    茶點故事閱讀 44,843評論 2 354

推薦閱讀更多精彩內(nèi)容