JSFiddle - React, Tailwind, and code Playground

by wllai2001

HTML

<!--<div class="d">我已是南臺粉絲</div>-->

 <div class="btn-vote btn-aqua" onclick='clickvotebtn(this)'>
                            <div class="blaze"></div>                          
                            <div class="text-center vote-text">點此投票</div>
                          
                        </div>

CSS

.d{border: 3px solid #CC0000;color:red;width:140px;text-align:center;line-height:30px;border-radius:10px;font-weight:800;background:#FFCC22;}


.btn-aqua.btn-vote.btn-aqua.voted {
    width: 120px;
    height: 50px;
    border-radius: 12px;
    background: #8bc34a;
    color: #ffffff;
    padding: 30px 0 0 0;
    font-size: 24px;
    box-shadow: #8bc34a99 0px 10px 16px;
    border: 2px solid;
    border-top: #4CAF50;
    border-right-color: #4CAF50;
    border-bottom-color: #4CAF50;
    border-left: #8BC34A;
}

.btn-vote.btn-aqua.voted:hover {
    background: #8bc34add;
    padding: 31px 0 0 0;
}


.btn-aqua {
    width: 120px;
    height: 50px;
    border-radius: 12px;
    background: #00bcd499;
    color: #ffffff;
    padding: 30px 0 0 0;
    text-align:center;
    font-size: 24px;
    box-shadow: #00bcd499 0px 10px 16px;
    border: 2px solid;
    border-top: #8ba2c1;
    border-right-color: #5890bf;
    border-bottom-color: #4f93ca;
    border-left: #768fa5;
}


.btn-aqua:hover {
    background: #00bcd4;
    padding: 31px 0 0 0;
    cursor: pointer;
}

.btn-aqua .blaze {
    position: absolute;
    top: 10px;
    left: 14px;
    border-radius: 12px;
    height: 1px;
    width: 109px;
    padding: 6px 0;
    background: #ffffff55;
}

JavaScript

function clickvotebtn(sender) {
    //找到操作的本體,及準備送回後端的儲存容器
    var $this = $(sender);
   
    //如果已投過的項目被點,則取消目前被投票的狀態,並且清掉目前被記錄準備被送至後端的投票紀錄
    if ($this.hasClass("voted")) {
        $this.removeClass("voted");     
        
    }
    //如果項目尚未被投,則項目的型態轉換成已投票的狀態,以套用相關樣式,並將投票值暫存至後送容器中
    else {
        $this.addClass("voted");       
    }}