美文网首页vue
用CSS的transiton过渡简单写个抽奖转盘

用CSS的transiton过渡简单写个抽奖转盘

作者: 德日班勒 | 来源:发表于2019-08-25 22:22 被阅读0次

项目需求,需要写一个类似于抽奖的转盘,先看效果图:

动画.gif

有很多活动相关的项目也许会用到抽奖的一个转盘

后台给中奖奖品的信息,前端工程师要对应让指针指到对应奖品,并且还需要指针的转动效果(指针不动,转盘转动同理)
为了确保项目的安全,我就写上部分代码,该部分代码仅涉及到如何指向对应奖品和一个动画的过渡:

HTML方面:

<div class="lottory-bg">
           <div class="start" ref="goStart" @click="startPrize"></div>
           <div class="text" @click="startPrize"></div>
</div>

如何使指针指向对应奖品

此时已经通过后台给的数据知道了用户的奖品
设定一个angle(绝对角度),即最终相对于静止指针的旋转角度

                 if (that.myPrize.prizeId === 'xilingxueshan') {
                       angle = 0;
                       this.optionContent = '西岭雪山VIP套票';
                    } else if (that.myPrize.prizeId ===  'shiyuanhuafei') {
                        angle = 60;
                        this.optionContent = '10元话费';
                    } else if (that.myPrize.prizeId ===  'wuyuanhuafei') {
                        angle = 120;
                        this.optionContent = '5元话费';
                    } else if (that.myPrize.prizeId === 'liangyuanhuafei') {
                        angle = 180;
                        this.optionContent = '2元话费';
                    } else if (that.myPrize.prizeId === 'yibaiyuanhuafei' ) {
                        angle = 300;
                        this.optionContent = '100元话费';
                    } else if (that.myPrize.prizeId ===  'meiyouzhongjiang') {
                        angle = 240;
                    } else {
                        return false;
                    }

可以自己设定绝对角度+ 360的倍速来控制转盘需要转的圈数
最后的绝对角度才是决定对应奖品的关键。

const ang = parseInt(that.count) * 3600 + parseInt(angle); // 多转几圈

可以利用插槽$refs来控制节点goStartt的CSS样式即:
transform(旋转角度)和 transition(过渡)

    that.$refs.goStart.style.transform = `rotate(${ang}deg)` // 旋转的度数;
    that.$refs.goStart.style.transition = 'all 8s'; // 旋转过程过渡的时间

在弹框出来后点击确定记得重置指针角度

      this.$refs.goStart.style.transform = `rotate(0deg)`;
      this.$refs.goStart.style.transition = 'all .1s';

相关文章

  • 用CSS的transiton过渡简单写个抽奖转盘

    项目需求,需要写一个类似于抽奖的转盘,先看效果图: 有很多活动相关的项目也许会用到抽奖的一个转盘 后台给中奖奖品的...

  • CSS3新特性

    transiton(过渡)transition: css属性, 花费时间,效果曲线(默认ease),延迟时间(默认...

  • css 如何“画”一个抽奖转盘

    主要描述的是如何运用 css 绘制一个抽奖转盘,并运用原生 js 实现转盘抽奖效果。 先来张效果图: 布局 一般来...

  • transiton :加在哪里哪里执行,过渡在直接在css设的初始值不生效,划过来时是从原本定位的位置来转动的 在...

  • 抽奖转盘的简单思路

    抽奖大概是有个旋转的转盘,然后点击开始后,就可以开始转动转盘,同时也在跟后端发送验证请求,然后得到请求之后,开始不...

  • Scratch—转盘抽奖

    【知识延伸】 传统抽奖分为抽奖盒抽取、转盘抽奖等 【要求】 今天我们按照平时转盘抽奖、利用Scratch做一个转盘...

  • php实现刮刮卡大转盘抽奖概率

    php实现刮刮卡大转盘抽奖概率 本文实例为大家分享了php中奖概率算法,可用于刮刮卡,大转盘等抽奖算法,用法很简单...

  • 微信小程序幸运大转盘制作教程

    幸运大转盘抽奖方式是我见过最常用的抽奖方式了,这种方式简单,直接,让人看着兴奋。那么,幸运大转盘微信小程序怎么制作...

  • Android超简单实现九宫格抽奖

    目录 前言 如果有小伙伴想实现转盘抽奖效果的话请看我的另一篇文章《Android超简单实现自定义抽奖转盘效果》 效...

  • js之简单的转盘抽奖

    大转盘 *{ margin:0; padding:0; list-style:no...

网友评论

    本文标题:用CSS的transiton过渡简单写个抽奖转盘

    本文链接:https://www.haomeiwen.com/subject/raakectx.html