基于JS實(shí)現(xiàn)一個(gè)簡(jiǎn)單的投票demo
演示

說明
今天沒有什么好的內(nèi)容分享,跟大家講一個(gè)標(biāo)簽吧增長(zhǎng)姿勢(shì)。
line-height CSS 屬性用于設(shè)置多行元素的空間量,如多行文本的間距。

根據(jù)瀏覽器的解析不同,line-height的表現(xiàn)方式有兩種
1.基線之間的距離為line-height
2.lineHeight 為,font-size的上下加上半行距
它的取值為:
1·normal: 默認(rèn)。設(shè)置合理的行間距。取決于用戶端。桌面瀏覽器(包括Firefox)使用默認(rèn)值,約為1.2,這取決于元素的
2·font-family。 number: 設(shè)置數(shù)字,此數(shù)字會(huì)與當(dāng)前的字體尺寸相乘來設(shè)置行間距,即number為當(dāng)前font-size的倍數(shù)。
3·length :設(shè)置固定的行間距。
4· % :基于當(dāng)前字體尺寸的百分比行間距。
5· inherit: 規(guī)定應(yīng)該從父元素繼承 line-height屬性的值。
源碼
body設(shè)置
<h2>投票公布</h2> <div id="div1"> <div class="a_1">50%</div> <div class="a_2">50%</div> </div> <!-- 紅隊(duì)投票 --> <div id="div2"> <div > <img src="img/1.jpg" height="100%" width="100%" /> </div> <div class="diaphane" id="result_1"> <p>紅隊(duì)投票數(shù):0</p> </div> <input type="button" name="aa" value="投紅隊(duì)" /> </div> <!-- 藍(lán)隊(duì)投票 --> <div id="div3"> <div> <img src="img/2.jpg" height="100%" width="100%" /> </div> <div class="diaphane" id="result_2"> <p>藍(lán)隊(duì)投票數(shù):0</p> </div> <input type="button" name="aa" value="投藍(lán)隊(duì)" /> </div>
js實(shí)現(xiàn)投票的動(dòng)畫
window.onload = function () {
//獲取div1及下面的div
var oDiv = document.getElementById('div1');
var aDiv = oDiv.getElementsByTagName('div');
//獲取點(diǎn)擊按鈕
var aBtn = document.getElementsByTagName('input');
//初始化百分比數(shù)字
var lNum = 50;
var rNum = 50;
//計(jì)算進(jìn)度條寬度
var lNums = (rNum / (lNum + rNum)) * 520;
var rNums = 520 - lNums;
//設(shè)置進(jìn)度條width寬度
aDiv[1].style.width = parseInt(lNums) + 'px';
aDiv[0].style.width = 520 - parseInt(lNums) + 'px';
//設(shè)置進(jìn)度條百分比數(shù)字
aDiv[0].innerHTML = sub((lNum / (lNum + rNum)) * 100 + "") + "%";
aDiv[1].innerHTML = sub((1 - lNum / (lNum + rNum)) * 100 + "") + "%";
//初始化投票數(shù)
var leftNum = 0;
var rightNum = 0;
//綁定紅隊(duì)投票按鈕點(diǎn)擊事件
aBtn[0].onclick = function () {
//每次點(diǎn)擊累加投票數(shù)
lNum = lNum + (++leftNum);
//計(jì)算div對(duì)應(yīng)長(zhǎng)度
var lNumss = parseInt(leftNum / (leftNum + rightNum) * 520);
//設(shè)置進(jìn)度條width寬度
aDiv[0].style.width = lNumss + 'px';
aDiv[1].style.width = (520 - lNumss) + 'px';
//計(jì)算div百分比數(shù)字
aDiv[0].innerHTML = sub((leftNum / (leftNum + rightNum)) * 100 + "") + "%";
aDiv[1].innerHTML = sub((1 - leftNum / (leftNum + rightNum)) * 100 + "") + "%";
//設(shè)置投票數(shù)
document.getElementById("result_1").innerHTML = "紅隊(duì)投票數(shù):" + leftNum;
}
//綁定藍(lán)隊(duì)投票按鈕點(diǎn)擊事件
aBtn[1].onclick = function () {
//每次點(diǎn)擊累加投票數(shù)
rNum = rNum + (++rightNum);
//計(jì)算div對(duì)應(yīng)長(zhǎng)度
var rNumss = parseInt(rightNum / (leftNum + rightNum) * 520);
//設(shè)置進(jìn)度條width寬度
aDiv[0].style.width = (520 - rNumss) + 'px';
aDiv[1].style.width = rNumss + 'px';
//計(jì)算div百分比數(shù)字
aDiv[0].innerHTML = sub((leftNum / (leftNum + rightNum)) * 100 + "") + "%";
aDiv[1].innerHTML = sub((1 - leftNum / (leftNum + rightNum)) * 100 + "") + "%";
//設(shè)置投票數(shù)
document.getElementById("result_2").innerText = "藍(lán)隊(duì)投票數(shù):" + rightNum;
}
//保留小數(shù)點(diǎn)后兩位
function sub(str) {
var index = str.lastIndexOf(".");
if (index == -1) {
return str;
}
return str.substring(0, index + 3);
}
}
css設(shè)定
* {
margin: 0;
padding: 0;
list-style-type:none;
}
a,img{border:0;}
.vote{
width:530px;
margin:100px auto;
}
.vote h2{
height:24px;
line-height:24px;
font-size:18px;
font-weight:400;
margin-bottom:20px;
text-align:center;
}
#div1 {
width: 520px;
height: 30px;
position: relative;
}
#div2 {
margin:30px 20px 0 0;
width: 250px;
height: 325px;
float: left;
display:inline;
position: relative;
}
#div3 {
margin-top: 30px;
margin-left: 2px;
width: 250px;
height: 325px;
float: left;
}
.a_1,
.a_2 {
position: absolute;
top: 0;
color:#fff;
text-align:center;
height:30px;
line-height:30px;
}
.a_1 {
left: 0;
background:#3366cc;
}
.a_2 {
right: 0;
background:#ff6600;
}
.vote input {
padding-top: 20px;
width: 250px;
position: absolute;
color: #fff;
border-radius: 1rem;
text-decoration: none;
padding: 1rem 2rem;
margin-bottom: 1rem;
min-width: 10rem;
text-align: center;
background-color: #6a4;
border:0;
cursor:pointer;
}
.diaphane {
color: #000;
margin:10px 0;
text-align:center;
}
到此這篇關(guān)于基于JS實(shí)現(xiàn)一個(gè)簡(jiǎn)單的投票demo的文章就介紹到這了,更多相關(guān)JS投票內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
微信小程序當(dāng)前時(shí)間時(shí)段選擇器插件使用方法詳解
這篇文章主要為大家詳細(xì)介紹了微信小程序當(dāng)前時(shí)間時(shí)段選擇器插件使用方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-12-12
JS 設(shè)計(jì)模式之:工廠模式定義與實(shí)現(xiàn)方法淺析
這篇文章主要介紹了JS 設(shè)計(jì)模式之:工廠模式,結(jié)合實(shí)例形式分析了JS 工廠模式基本概念、原理、定義、實(shí)現(xiàn)方法與操作注意事項(xiàng),需要的朋友可以參考下2020-05-05
js拖拉表格實(shí)現(xiàn)內(nèi)容計(jì)算
這篇文章主要為大家詳細(xì)介紹了js拖拉表格實(shí)現(xiàn)內(nèi)容計(jì)算,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-04-04
使用重寫url機(jī)制實(shí)現(xiàn)驗(yàn)證碼換一張功能
重寫URL機(jī)制:為了保證一個(gè)url的地址唯一,可每次向服務(wù)器傳遞的參數(shù)不一樣即可。此處在實(shí)現(xiàn)驗(yàn)證碼的換一張的功能時(shí),就是利用了改變參數(shù)列表的值進(jìn)行刷新。具體詳細(xì)代碼大家參考下本文2017-08-08

