国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

轉(zhuǎn)盤抽獎(jiǎng)-- 自己手?jǐn)]

gaara / 3118人閱讀

摘要:自己很菜,不可否認(rèn)。所以上周日試試水,看看自己能否寫個(gè)圓盤抽獎(jiǎng)的。效果圖代碼外部圓內(nèi)部園請(qǐng)輸入外數(shù)字開(kāi)始基礎(chǔ)旋轉(zhuǎn)的圓以自己的寬度的一半為,以父盒子的高度一半為,作為旋轉(zhuǎn)點(diǎn)。

自己很菜,不可否認(rèn)。
所以上周日試試水,看看自己能否寫個(gè)圓盤抽獎(jiǎng)的demo。
// github L6zt
開(kāi)發(fā)思路

布局 css rotate 布局;

抽獎(jiǎng)過(guò)渡效果,采用css3 transition;

動(dòng)態(tài)計(jì)算抽獎(jiǎng)結(jié)束時(shí)的角度,賦值給待選擇的元素。

效果圖

代碼

    

1

2

3

a

b

c

d

e

f

        * {
            margin: 0;
        }
        .rotate {
            position: relative;
            margin: 0 auto;
            width: 400px;
            height: 400px;
            text-align: center;
            color: #fff;
            font-size: 50px;
            border-radius: 50%;
            background: antiquewhite;
        }
        .tn {
            transition: all 3s cubic-bezier(.11,.77,.2,.94);
            transform-origin: 50% 50%;
        }
        .out-circle {
            position: absolute;
            width: 300px;
            height: 300px;
            left: 0;
            right: 0;
            top: 0;
            bottom: 0;
            margin: auto;
        }
        /*基礎(chǔ)旋轉(zhuǎn)的圓*/
        .out-circle  p {
            position: absolute;
            display: block;
            margin: 0 auto;
            left: 0;
            right: 0;
            width: 30px;
            height: 30px;
            line-height: 30px;
            background: red;
            /*以自己的寬度的一半 為 x,以父盒子的高度一半 為 y, 作為旋轉(zhuǎn)點(diǎn)。*/
            transform-origin: 15px 150px;
            border-radius: 50%;
            font-size: 16px;
        }
        .inner-circle {
            position: absolute;
            width: 200px;
            height: 200px;
            left: 0;
            right: 0;
            top: 0;
            bottom: 0;
            margin: auto;
        }
        /*基礎(chǔ)旋轉(zhuǎn)的圓*/
        .inner-circle p {
            position: absolute;
            display: block;
            margin: 0 auto;
            left: 0;
            right: 0;
            width: 30px;
            height: 30px;
            line-height: 30px;
            background: #4eff00;
            transform-origin: 15px 100px;
            border-radius: 50%;
            font-size: 16px;
        }
        .p11 {
            transform: rotate(0deg);
        }
        .p12 {
            transform: rotate(60deg);
        }
        .p13 {
            transform: rotate(120deg);
        }
        .p14 {
            transform: rotate(180deg);
        }
        .p15 {
            transform: rotate(240deg);
        }
        .p16 {
            transform: rotate(300deg);
        }
        .p1 {
            transform: rotate(0deg);
        }
        .p2 {
            transform: rotate(120deg);
        }
        .p3 {

            transform: rotate(240deg);
        }
        a {
           padding: 2.5px 10px;
           background: #0ebeff;
           border-radius: 5px;
           color: #fff;
           text-decoration: none;
        }
     .start-game {
      position:absolute;
      top: 20px;
      left: 20px;
    }
        (function () {
            let deg = 0;
            // 基礎(chǔ)角度
            let baseDeg = 120;
            let $input = $("#num");
            // 多少個(gè)旋轉(zhuǎn)點(diǎn)
            let blocks = 360 / baseDeg;
            let k = null;
            let flag =  false;
            const $rotate = $(".rotate");
            // 0 1 2
            $("a").on("click", function () {
                var num = $input.val();
                // 當(dāng)前旋轉(zhuǎn) 位置
                var curLc = deg % 360 / 120;
                // 待旋轉(zhuǎn)的角度
                deg = deg + 4 * 360 + (2*blocks  - num - curLc) * baseDeg;
                if (flag === true) {
                    return false;
                }
                flag = true;
                clearInterval(k);
                k = null;
                $rotate.addClass("tn");
                $rotate.css({
                    "transform": `rotate(${deg}deg)`
                });
                // 監(jiān)聽(tīng)過(guò)渡結(jié)束效果!--沒(méi)加入兼容性
                $rotate.on("transitionend", function () {
                    flag = false;
                    $(this).removeClass("tn");
                    let timeK = null;
                    // 抽獎(jiǎng)后 圓盤動(dòng)旋轉(zhuǎn)
                    setTimeout(() => {
                        k = timeK = setInterval( () => {
                            var temDeg = deg.toString();
                            if (k !== timeK) {
                                clearInterval(timeK);
                                return false;
                            }
                            if ($rotate.hasClass("tn")) {
                                return false;
                            }
                            // 一下代碼 正則是為了解決 js 小數(shù)點(diǎn) 計(jì)算 問(wèn)題。
                            temDeg = (/./).test(temDeg) ? temDeg.replace(/.d+/, function ($1) {
                                var result = $1.length === 2 ? `${$1.substr(1)}0`: `${$1.substr(1)}`;
                                return result
                            }) : `${temDeg}00`;
                            temDeg = parseInt(temDeg);
                            temDeg += 5;
                            temDeg = temDeg.toString().split("");
                            temDeg.splice(temDeg.length - 2, 0, ".");
                            temDeg = temDeg.join("");
                            deg = parseFloat(temDeg);
                            $(this).css({
                                "transform": `rotate(${deg}deg)`
                            });
                        }, 13)
                    }, 1000);

                });
            })
        })()

demo地址

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/96643.html

相關(guān)文章

  • 九宮格抽獎(jiǎng)--手?jǐn)]代碼

    摘要:總是看到類似的九宮格抽獎(jiǎng)效果后來(lái)想自己手?jǐn)]一個(gè)試一試吧。多多嘗試萬(wàn)一成功了呢先來(lái)總結(jié)一下效果類似與跑馬燈效果,閃動(dòng)效果先快后慢。 總是看到類似的九宮格抽獎(jiǎng)效果,后來(lái)想自己手?jǐn)]一個(gè)試一試吧。(多多嘗試,萬(wàn)一成功了呢 github L6zt) 先來(lái)總結(jié)一下效果,類似與跑馬燈效果,閃動(dòng)效果先快后慢。代碼解析如下所示:代碼 0 ...

    zhou_you 評(píng)論0 收藏0
  • 九宮格抽獎(jiǎng)--手?jǐn)]代碼

    摘要:總是看到類似的九宮格抽獎(jiǎng)效果后來(lái)想自己手?jǐn)]一個(gè)試一試吧。多多嘗試萬(wàn)一成功了呢先來(lái)總結(jié)一下效果類似與跑馬燈效果,閃動(dòng)效果先快后慢。 總是看到類似的九宮格抽獎(jiǎng)效果,后來(lái)想自己手?jǐn)]一個(gè)試一試吧。(多多嘗試,萬(wàn)一成功了呢 github L6zt) 先來(lái)總結(jié)一下效果,類似與跑馬燈效果,閃動(dòng)效果先快后慢。代碼解析如下所示:代碼 0 ...

    ChanceWong 評(píng)論0 收藏0
  • canvas之轉(zhuǎn)盤抽獎(jiǎng)

    摘要:最近工作中重構(gòu)了抽獎(jiǎng)轉(zhuǎn)盤,給大家提供一個(gè)開(kāi)發(fā)轉(zhuǎn)盤抽獎(jiǎng)的思路需求轉(zhuǎn)盤根據(jù)獎(jiǎng)品數(shù)量不同而有變化目錄結(jié)構(gòu)由于業(yè)務(wù)需要所以開(kāi)發(fā)了兩個(gè)版本抽獎(jiǎng),和,不過(guò)部分只能替換圖片,沒(méi)有功能邏輯。 最近工作中重構(gòu)了抽獎(jiǎng)轉(zhuǎn)盤,給大家提供一個(gè)開(kāi)發(fā)轉(zhuǎn)盤抽獎(jiǎng)的思路 需求 1、轉(zhuǎn)盤根據(jù)獎(jiǎng)品數(shù)量不同而有變化 2、canvas 目錄結(jié)構(gòu) showImg(https://segmentfault.com/img/bVbwL...

    _ang 評(píng)論0 收藏0
  • Vue+CSS3實(shí)現(xiàn)轉(zhuǎn)盤抽獎(jiǎng)

    摘要:最近有個(gè)轉(zhuǎn)盤抽獎(jiǎng)的需求,搜了一下現(xiàn)有的輪子,有的是用的動(dòng)畫(huà)函數(shù)實(shí)現(xiàn)的,有的是用繪圖然后再用高頻率的調(diào)用旋轉(zhuǎn)方法,前者太老了沒(méi)法簡(jiǎn)單移植到項(xiàng)目,后者感覺(jué)性能表現(xiàn)可能不會(huì)太好。核心思路是用以及實(shí)現(xiàn)旋轉(zhuǎn)動(dòng)畫(huà),使用和繪制出定位較為精確的輪盤獎(jiǎng)項(xiàng)。 最近有個(gè)轉(zhuǎn)盤抽獎(jiǎng)的需求,搜了一下現(xiàn)有的輪子,有的是用jQuery的動(dòng)畫(huà)函數(shù)實(shí)現(xiàn)的,有的是用canvas繪圖然后再用高頻率的setTimeout調(diào)用旋...

    mj 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<