Maison  >  Article  >  Applet WeChat  >  Implémentez des effets similaires à la roue de loterie et au chapiteau Tmall dans le mini-programme

Implémentez des effets similaires à la roue de loterie et au chapiteau Tmall dans le mini-programme

高洛峰
高洛峰original
2017-02-28 10:45:383538parcourir

Lorsque nous exerçons des activités de commerce électronique, nous utilisons souvent des chapiteaux pour attirer l'attention et utilisons de grandes platines pour obtenir l'effet de loterie.
Comment pouvons-nous obtenir cet effet dans le développement de mini-programmes WeChat ? Veuillez consulter l'explication ci-dessous pour plus de détails.


Fonctions à implémenter
1. Implémentez un grand carrousel similaire à la loterie du supermarché Tmall
2 Puis implémentez l'effet de chapiteau
3. Cliquez sur START pour démarrer la loterie et. la loterie est terminée. Il y aura une fenêtre pop-up après


Regardez d'abord les rendus

Implémentez des effets similaires à la roue de loterie et au chapiteau Tmall dans le mini-programme

Implémentez des effets similaires à la roue de loterie et au chapiteau Tmall dans le mini-programme

Une brève explication

1. La boule clignotante dans le cercle extérieur est un style contrôlé par js. Le style change toutes les 500 ms. C'est simple et brut. 2. L'élément de loterie est également un arrière-plan contrôlé par js. , mais comment l'arrêter gracieusement est un problème. Il y a une fonction timing dans l'animation. Ce n'est pas si simple si vous utilisez js vous-même, j'utilise setInterval() ici, et le temps change de manière linéaire. la fonction avec une pente plus petite d'abord et une plus grande devrait avoir un meilleur effet

Ce qui suit est le code WXML de la page :

<!--index.wxml--> 
<view class="container-out">  
  <view  
  class="circle" wx:for="{{circleList}}"  
  style="top:{{item.topCircle}}rpx;left:{{item.leftCircle}}rpx;background-color: {{(index%2==0)?colorCircleFirst:colorCircleSecond}};"></view>  
  <view class="container-in">  
    <view class="content-out" wx:for="{{awardList}}" style="top:{{item.topAward}}rpx;left:{{item.leftAward}}rpx;background-color: {{(index==indexSelect)?colorAwardSelect:colorAwardDefault}};">  
      <image class="award-image" src="{{item.imageAward}}"></image>  
    </view>  
    <view class="start-btn" bindtap="startGame" style=" background-color:{{isRunning?&#39;#e7930a&#39;:&#39;#ffe400&#39;}}">START</view>  
  </view>  
</view>

Ce qui suit est le code WXSS de la page :

/**index.wxss**/ 
   
.container-out {  
  height: 600rpx;  
  width: 650rpx;  
  background-color: #b136b9;  
  margin: 100rpx auto;  
  border-radius: 40rpx;  
  box-shadow: 0 10px 0 #871a8e;  
  position: relative;  
}  
   
.container-in {  
  width: 580rpx;  
  height: 530rpx;  
  background-color: #871a8e;  
  border-radius: 40rpx;  
  position: absolute;  
  left: 0;  
  right: 0;  
  top: 0;  
  bottom: 0;  
  margin: auto;  
}  
   
/**小圆球  
box-shadow: inset 3px 3px 3px #fff2af;*/ 
   
.circle {  
  position: absolute;  
  display: block;  
  border-radius: 50%;  
  height: 20rpx;  
  width: 20rpx;  
}  
   
.content-out {  
  position: absolute;  
  height: 150rpx;  
  width: 166.6666rpx;  
  background-color: #f5f0fc;  
  border-radius: 15rpx;  
  box-shadow: 0 5px 0 #d87fde;  
}  
   
/**居中 加粗*/ 
   
.start-btn {  
  position: absolute;  
  margin: auto;  
  top: 0;  
  left: 0;  
  bottom: 0;  
  right: 0;  
  border-radius: 15rpx;  
  height: 150rpx;  
  width: 166.6666rpx;  
  background-color: #ffe400;  
  box-shadow: 0 5px 0 #e7930a;  
  color: #f6251e;  
  text-align: center;  
  font-size: 55rpx;  
  font-weight: bolder;  
  line-height: 150rpx;  
}  
   
.award-image {  
  position: absolute;  
  margin: auto;  
  top: 0;  
  left: 0;  
  bottom: 0;  
  right: 0;  
  height: 140rpx;  
  width: 130rpx;  
}

Ce qui suit est le code JS de la page :

//index.js  
//获取应用实例  
var app = getApp()  
Page({  
  data: {  
    circleList: [],//圆点数组  
    awardList: [],//奖品数组  
    colorCircleFirst: &#39;#FFDF2F&#39;,//圆点颜色1  
    colorCircleSecond: &#39;#FE4D32&#39;,//圆点颜色2  
    colorAwardDefault: &#39;#F5F0FC&#39;,//奖品默认颜色  
    colorAwardSelect: &#39;#ffe400&#39;,//奖品选中颜色  
    indexSelect: 0,//被选中的奖品index  
    isRunning: false,//是否正在抽奖  
    imageAward: [  
      &#39;../../images/1.jpg&#39;,  
      &#39;../../images/2.jpg&#39;,  
      &#39;../../images/3.jpg&#39;,  
      &#39;../../images/4.jpg&#39;,  
      &#39;../../images/5.jpg&#39;,  
      &#39;../../images/6.jpg&#39;,  
      &#39;../../images/7.jpg&#39;,  
      &#39;../../images/8.jpg&#39;,  
    ],//奖品图片数组  
  },  
   
  onLoad: function () {


Pour plus d'articles sur la façon d'implémenter des effets similaires à la grande loterie de Tmall platine et chapiteau dans les mini programmes, veuillez faire attention au site Web PHP chinois !


Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn