Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 如何创建用于计票的progressbar_Jquery_Css_Progress Bar - Fatal编程技术网

Jquery 如何创建用于计票的progressbar

Jquery 如何创建用于计票的progressbar,jquery,css,progress-bar,Jquery,Css,Progress Bar,我想创建一个类似YouTube的progressbar用于计票 其中总票数(“喜欢”加“不喜欢”)是条的总宽度,总分(“喜欢”减“不喜欢”)是绿色部分。 现在,条的宽度必须始终为100%,这意味着,不管总票数是500票还是1000票,这个数字必须始终为100%,然后我需要将绿色部分从一个固定数字转换为一个百分比,因此,如果总票数为1200票(100%),诸如此类的票数为850票(绿色部分),我需要将这850个喜欢转换成一个百分比,我真的不知道如何解释,但我希望有人能理解并帮助我。您需要做的是为

我想创建一个类似YouTube的progressbar用于计票

其中总票数(“喜欢”加“不喜欢”)是条的总宽度,总分(“喜欢”减“不喜欢”)是绿色部分。
现在,条的宽度必须始终为100%,这意味着,不管总票数是500票还是1000票,这个数字必须始终为100%,然后我需要将绿色部分从一个固定数字转换为一个百分比,因此,如果总票数为1200票(100%),诸如此类的票数为850票(绿色部分),我需要将这850个喜欢转换成一个百分比,我真的不知道如何解释,但我希望有人能理解并帮助我。

您需要做的是为包含的每个喜欢和不喜欢部分提供一个带有2个div的包装器,以及一些javascript/jquery来控制它

HTML

<div class='progressBar'>
     <div class='likes'></div>
     <div class='dislikes'></div>
</div>
JavaScript/jQuery

var likes = 850;
var dislikes = 350;
var total = likes+dislikes;
var likePerc = (likes/total)*100;
var dislikePerc = (dislikes/total)*100;

$(document).ready(function() {
    $(".likes").css("width", likePerc);
    $(".dislikes").css("width", dislikePerc);
});

这是一个如何工作的示例。

如果您试图用jQuery来构建它,我建议只使用jQuery来处理百分比计算,并实际使用HTML来创建条形图,使用CSS使其响应迅速且美观

HTML 您希望将两个动态条嵌套在父div中

<div class="parent">
    <div class="bar up-vote"></div>
    <div class="bar down-vote"></div>
</div>
JS 创建变量,可以是静态的,也可以是从传入的任何数据创建的

var upVote=764, 
    downVote=236, 
    totalVote,
    upPerc,
    downPerc;

// if you only know upVote and downVote, calculate totalVote
totalVote = upVote + downVote;

// calculate the percentages. Simple division, then multiply by 100
upPerc = 100* (upVote/totalVote);
downPerc = 100* (downVote/totalVote);

// if you want to round the integers to only 2 decimal places,
// use toFixed()   
upPerc = upPerc.toFixed(2);
downPerc = downPerc.toFixed(2);

// overwrite the default widths from the CSS with jQuery .css()
$('.up-vote').css({
    'width':upPerc+'%'
});
$('.down-vote').css({
    'width':downPerc+'%'
});

这是一个正在工作的响应栏

,问题是?@Andreas请再次阅读,我需要将喜欢的内容转换为百分比,其中条的总宽度(100%)是喜欢和不喜欢的内容之和。我已经阅读了文本,但我只看到一个要求,没有问题或您可能遇到的特定问题。对“jquery progressbar”的简短搜索将为您提供数十万种可能的解决方案/插件/教程。这是可行的,但唯一的问题是,条形图的宽度始终相同,我需要它的宽度为100%。@AndresOrozco然后根据您的需要更改代码。这是一个如何执行您的请求的示例,而不是您可以复制的内容好的,我明白了,我只需要在结果宽度的末尾添加%。非常感谢你。
/* set all children to be defined by own border */
.parent *{
    -webkit-box-sizing:border-box;
    -moz-box-sizing:border-box;
    box-sizing:border-box;
}
.parent{
    width:100%;
    overflow:auto;
    border-radius: 10px;
}
.parent .bar{
    float:left;
    height:20px;
    /* give each bar a default width */
    width:50%;
}
.parent .up-vote{
    background:#35AF3F;
}
.parent .down-vote{
    background:#E24B4B;
}
var upVote=764, 
    downVote=236, 
    totalVote,
    upPerc,
    downPerc;

// if you only know upVote and downVote, calculate totalVote
totalVote = upVote + downVote;

// calculate the percentages. Simple division, then multiply by 100
upPerc = 100* (upVote/totalVote);
downPerc = 100* (downVote/totalVote);

// if you want to round the integers to only 2 decimal places,
// use toFixed()   
upPerc = upPerc.toFixed(2);
downPerc = downPerc.toFixed(2);

// overwrite the default widths from the CSS with jQuery .css()
$('.up-vote').css({
    'width':upPerc+'%'
});
$('.down-vote').css({
    'width':downPerc+'%'
});