微信小程序抽獎轉盤組件怎麼做?

2020-12-04 跟我一起學編程

前言

在各種活動中,我們經常會遇到使用轉盤抽獎,作為一名程式設計師,應該了解這種抽獎轉盤的實現原理,於是,我們今天就由示例來跟大家一起剖析微信小程序抽獎轉盤的實現。

微信小程序轉盤抽獎組件的實現思路

1.界面樣式實現

從抽獎轉盤的圖中我們可以看出,抽獎轉盤由外圓、扇面抽獎選項、抽獎按鈕組成,其中外圓不難實現,大家在處理微信小程序頭像的時候估計都已經用過了,那就是利用border-radius:50%來將一個正方形變成圓,這是外圓實現的關鍵。為了體現立體效果,我們給外圓的border加上陰影,也就是border-shadow樣式,這樣一處理,外圓的立體效果就出來了。

外圓裡面是抽獎的獎項,抽獎獎項由獎品名稱和一條線組成,通過將線和獎品名稱旋轉一定的角度就可以得到界面效果,這裡用到的主要功能是:transform: rotate。這裡說是線,其實是一個個的view通過設置width寬度和背景色而給人產生的視覺錯覺效果。因為每條線的旋轉角度不同,所以這個角度是在JS中計算後賦值到前臺的。下面是線和抽獎獎項的實現(註:代碼來自網絡):

獎項再往裡是一個抽獎按鈕,這個抽獎按鈕設計得很巧妙,乍看是一個不規則的形狀,其實是一個由三角形和圓組合而成的形狀。圓大家都會了,那麼三角形是如何來實現的呢?其實三角形是由border來實現的,也就是說一個view,如果寬高都是0而border很大的話,通過設置border三個方向的顏色就能生成一個三角形(左右透明,底的顏色就是三角形的顏色,這是css畫三角形的一個技巧)。

好了,界面的組成和繪製原理給大家介紹完了,下面我們再來看看抽獎的事件。

2.轉盤的轉動和抽獎事件

首先我們需要通過JS的賦值來刻畫圓盤並將獎項賦值在轉盤上。這裡首先要通過JSON形式定義好獎項。

然後我們根據獎項的個數來計算扇面的角度和線旋轉的角度。 因為指針是在每個扇區的中間,所以需要除以2。

// 獎項列表

for (var i = 0; i < awards.length; i++) {

awardsList.push({ turn: i * turnNum + 'turn', lineTurn: i * turnNum + turnNum / 2 + 'turn', award: awards[i].name });

}

最後要處理的就是按鈕點擊事件了,抽獎實際上是一個隨機數的生成過程,根據隨機數的大小對應獎品的序號,抽獎結果也就產生了(這是等概率抽獎,如果有不等概率的需求可以再進一步研究)。實際上像抽獎這樣的,隨機數的生成是一個瞬間的過程,為了體現抽獎的動感,我們需要讓轉盤轉起來。

這裡我們來創建一個動畫:

var animationRun = wx.createAnimation({

duration: duration,

timingFunction: 'ease-in-out'

})

animationRun.rotate(this.runDeg).step();

因為圓是一個循環的,無論轉多少圈,在圓上的度數都是在0--360度之間,因此我們需要通過當前度數%360取餘的操作來顯示當前指針的位置。

最後,通過setTimeOut來讓指針轉動停下來。這樣最後轉動的效果也有了,只要根據隨機數把抽獎的結果反饋給抽獎的人就可以了。

結語

一個看似非常複雜的組件經過這麼一拆解,你是否能夠理解轉盤抽獎的實現原理了呢?請疑問請在下方評論給我。

相關焦點

  • 從新品抽獎小程序思考微信工具型小程序的發展
    抽獎小程序主要功能是為服務商提供營銷服務,上線至今,同類型產品眾多。本篇文章選取了五個具有代表性的抽獎小程序,分別為大家介紹其各自的功能板塊,再對此進行分析,通過對目前市場上的小程序的發展情況的詳細分析,思考未來工具型小程序的發展方向。
  • 如何優雅地做一個抽獎轉盤
    之前出了一個帖子如何讓你的原型圖動起來,很多童鞋問我抽獎轉盤是怎麼做的?今天抽空跟大家聊聊。(視頻第22秒見效果)這個是用Axure7.0做的,稍後介紹一下使用Axure 8.0和Principle來做轉盤抽獎交互~(Principle交互效果)本文目錄如下:1.
  • 年會還在用紙箱子抽獎?NO NO NO,抽獎小程序了解一下
    年會用什麼做抽獎道具?紙箱子?抽獎券?NO NO NO,現在都用抽獎小程序啦!方便快捷,功能強大,綠色環保(略過一萬字優點),而且還免費使用,oh my god, 一起來了解一下抽獎小程序。
  • 用EXCEL製作隨機抽獎小程序
    今天教大家用EXCEL製作隨機抽獎小程序。方法其實很簡單,只需要兩個函數組合成一個公式!
  • 160 萬人被騙:「天貓抽獎」小程序被封,刷屏背後是巨大的焦慮
    在大家忙著剁手的最近,微信平臺上悄悄出現一個「天貓雙 11.11 抽獎」活動。但讓人哭笑不得的是,它竟然是通過小程序來抽獎的。或許是 iPhone XS 的魅力太大,超過 160 萬人沒察覺出貓膩,熱情飽滿地參與了抽獎。朋友圈一時間迎來刷屏。
  • 新加坡航空微信小程序全新上線,四重禮遇開啟「新」旅程
    民航資源網2020年10月13日消息:新加坡航空微信小程序將於10月16日全新上線,以超值促銷、精彩直播、幸運轉盤和新航表情包四重禮遇,為乘客帶來更優惠的獨家票價、更趣味的在線互動以及更為豐富的便捷體驗。
  • 關於抽獎助手小程序上線運營第一天復盤
    本文背景抽獎助手小程序昨天已正式上線運營,第一天突破5000用戶訪問,給我帶來了很大壓力,不過總體結果是好的,期間沒有出現重大邏輯問題本文內容本文主要分析抽獎助手小程序上線第一天遇到的一些問題,首先我們看下第一天的數據ff上圖為當天23點截圖,所以第一天有5000用戶來訪問,帶來一定壓力是肯定的,遇到幾個問題(1)由於用戶數據過大,導致抽獎環節沒有拿到用戶的信息這個問題主要是由於我在抽獎環節
  • 小程序不知道怎麼推廣?為你揭秘小程序裂變套路,讓你的客戶暴增
    小程序商業價值 網際網路社交電商不是你做一個小程序商城就可以了,小程序只是一個引流獲客的工具,怎麼用好這個工具才是重點。對於還沒有做小程序商家今天暫且不說,前面文章已經講過,感興趣可以去看看,今天主要講一下已有小程序商家,如何通過裂變讓客戶數量快速增長。
  • 科普:微信小程序二維碼生成的4種方法
    小程序已經滲透進我們日常生活中,無論是交通出行、生活服務、購物、點餐、閱讀……都可以通過小程序實現相關功能,提高便捷度。比如在點餐時,我們常常能看到商家在門店門口放置一個「掃碼點餐不排隊」的海報,這種時候,微信小程序二維碼就成為了連接線上、線下的重要工具。那麼小程序二維碼該怎麼生成呢?
  • 會澤縣抽獎小程序發布
    會澤縣抽獎小程序發布點擊這個叫【絕世寶藏】小程序就能搶購感謝您的每一次購買 讓童話鎮原創漫畫繼續下去!接下來我們會嘗試更多的作品給大家 比如快手大家都能搜到童話鎮的作品啦(微博快手都是認證同名的 【童話鎮】三個字)來個擺地攤的表情包為了申明原創再發一次感謝您的每一次購買 讓童話鎮原創漫畫繼續下去!
  • 支付寶裡面有個抽獎小程序,天天抽獎,是真的,還是騙取點擊量?
    這是支付寶和商家共同合作搞的活動,抽獎是真的、引人關注點擊商家的廣告也是真的。當然要想真正抽到獎品那也確實是相當的不容易。支付寶裡有很多的活動,就比如這個天天抽獎,裡面有很多很多的0元抽獎,有各種各樣的獎品,比如抽華為Nova6手機、小米4S 55英寸踩點、西門子洗衣機、破壁機等等,就是同時可以參加多個抽獎活動,有機會活動多中獎品,同時也有5機會抽中000元的現金紅包,如果有興趣的可以點擊參加。
  • 小程序流量主實戰技巧:三招提升廣告收益
    過去一年,小程序人均訪問次數提升45%,人均使用小程序個數提升98%。對流量主而言,意味著更大的商業潛力。(數據來源:微信公開課) 而要想充分挖掘流量價值,就離不開對流量的精細化運營,這也對流量主提出了新的挑戰:如何快速提升廣告變現效率,實現可持續的運營?
  • 騰訊位置服務如何賦能微信小程序?看這文就夠了!
    二、需求背景2.1 「乘車二維碼」微信小程序自從2017年微信上線小程序以來,小程序已經迅速成長為一個巨大的生態,吸引各行各業的開發者或服務商參與其中。小程序與線下場景的結合也日益緊密,其中,乘車二維碼微信小程序無疑讓人們的出行服務變的更加簡單、快捷。
  • 如何利用Excel製作抽獎小程序?
    今天和大家聊一個有趣的課題,利用Excel中的RANDBETWEEN函數實現抽獎功能。首先看成果,按鍵盤上的F9,發現中獎者的姓名都會隨機發生變化,如下圖。成果本文就通過Excel中的RANDBETWEEN函數來實現抽獎的功能。
  • 介紹幾種年會使用的抽獎軟體
    哇~真的是好官方抽獎環節是每個公司年會上不可缺少的活動,我們之前有說過沒有抽獎的年會都是耍流氓連流氓都不耍的公司,你憑什麼得到我抽獎是一種形式,吸引人的當然都是獎品本身了,但是一個好的抽獎方式更能激發員工的參與熱情和給客戶展示企業的形象,下面小編就給大家介紹一下關於年會的幾種抽獎軟體類型一:大轉盤抽獎經典式的玩法了,大屏展示轉盤獎品一目了然,背景、獎項數均可自行設置,只需按兩下按鈕,一鍵開始一鍵結束,刺激的抽獎就開始啦,一等獎還是安慰獎就看你手氣啦!
  • 科普:除了源碼下載,微信小程序還有哪些開發方式?
    製作一個微信小程序真的有那麼難?那要看你用的是什麼方式了。這種方式你要先下載微信官網開發者工具,新建一個小程序項目,填入小程序的 AppID(需先在微信公眾平臺申請好),勾選 「創建 QuickStart 項目」,你就得到了你的第一個小程序了,點擊頂部菜單編譯就可以在微信開發者工具中預覽你的第一個小程序。具體注意事項需要參考官方配置文檔。
  • 年會上抽獎,有什麼好的抽獎軟體推薦?
    如果說春晚最期待的是小品,那年會最期待的莫過於抽獎活動了。抽獎活動這麼振奮人心,那抽獎方式呢?年會策劃什麼樣的抽獎活動才有意思?手動的紙條抽獎?喊號碼抽獎?試試樂乎的抽獎軟體怎麼樣?款式一:抽獎箱虛擬的抽獎箱場景模式,簡單的掃碼參與活動,負責人只需點一下抽獎鍵,中獎的幸運兒就會出現在會場的大屏幕上!如此簡單、直接的互動抽獎形式,通過大屏幕上隨機抽取用戶頭像的方式,瞬間擺脫各種內幕問題,讓抽獎變得更加好玩,讓年會策劃更加簡單。
  • 供我們選擇的 Vue 組件庫還有很多!
    國內的小夥伴們都非常愛國,這個組件庫在 Github 幾乎找不到什麼好的開源項目,不兼容 Edge 和 IE 瀏覽器讓它在我們國內可能不是很吃香。若是公司有對 IE 的支持需求,選它的時候要三思而後行。
  • 微信小程序的紅利推廣在哪裡?TPshop開源小程序
    小程序的創造者張小龍曾一再強調小程序沒有流量紅利,清晰定位為線下場景,但從現在的情況看,小程序的展開軌跡如同並沒有按正本的計劃走。小程序的紅利要抓住,仍是要先學會做推廣。  三、微信群同享和用戶留存   小程序不能同享到朋友圈,但可以同享給微信群和微信老友,微信群作為用戶觸摸小程序最直接的途徑,在同享時可以出現小程序的標題、簡介和banner圖等,會帶來必定的轉化率。其他閱讀過的小程序會保存記錄在「發現」一欄的進口上,因此只需爭取到用戶點擊的時機,小程序的曝光也會多一分。
  • 服務號,小程序,微信群,個人號,四位一體做好在線教育增長引擎
    2、小程序,基於拉新和分享的教育產品設計:大家都聽過微信之父張小龍講過這麼一句話:小程序,用完即走。但這句話讓不少產品和運營同學都十分困惑,用戶用完就走,我怎麼做增長和留存?比如麥當勞點餐小程序,只提供點餐一種功能。每次我快到公司的時候,就很自然的打開這個小程序訂早飯,因為它完全沒有其他幹擾信息影響我點餐的進度,而且到店就能取餐,還節省了我排隊的時間。有了這些小程序設計原則在腦子裡,面對小程序獲客增長,我們應該怎麼做呢,下面我們來說具體實操部分。