Javascript 无法在我的页面中显示旋钮饼图,饼图现在显示
我想在我们的网页中添加倒计时饼图,饼图将以以下格式显示我们项目的重命名时间:-Javascript 无法在我的页面中显示旋钮饼图,饼图现在显示,javascript,jquery,charts,pie-chart,jquery-knob,Javascript,Jquery,Charts,Pie Chart,Jquery Knob,我想在我们的网页中添加倒计时饼图,饼图将以以下格式显示我们项目的重命名时间:- **Project A** starts in 3 weeks and 3 days **Project B** starts in 1 month and 2 weeks 下面是实现此功能并显示上述结果的JavaSscript:- <script src="/Resources/jquery-1.11.3.js"></script> <script> $(function (
**Project A**
starts in 3 weeks and 3 days
**Project B**
starts in 1 month and 2 weeks
下面是实现此功能并显示上述结果的JavaSscript:-
<script src="/Resources/jquery-1.11.3.js"></script>
<script>
$(function () {
var htmlinit = "";
htmlinit = "<image id= 'customloader' src= '/resources/ajax-loader.gif'></image>";
$("#inserhere").after(htmlinit);
var html="<div class='ms-comm-adminLinks ms-core-defaultFont ms-noList' unselectable='on'><div class='ms-webpart-titleText' unselectable='on'><a style='color:white' href='/Lists/Counter/AllItems.aspx'> Useful Links </a> </div><ul class='ms-comm-adminLinksList' unselectable='on'>";
$.ajax({
url: "/_api/web/lists/getbytitle('Counter')/items?$select=Title,CounterStartDate&$orderby=CounterStartDate asc",
method: "GET",
headers: { "Accept": "application/json; odata=verbose" },
success: function (data) {
if(data.d.results.length>0){
var items=data.d.results;
for(var i=0;i<items.length;i++){
var nurl = items[i].CounterStartDate.toString();
var ntitle = items[i].Title.toString();
var loopidcustom = "demo"+i.toString();
var formatteddate = datediff(new Date (nurl));
document.getElementById(loopidcustom).innerHTML = "<b>" + ntitle + "</b><br> Start Date "+ d+"<br/> Starts in " + formatteddate +"<hr/>" ;
if (distance < 0) {
//clearInterval(x);
document.getElementById(loopidcustom).innerHTML = "";
}
}
}
},
error: function (data) {
$("#customloader").hide();
}
});
});
function datediff(date) {
let d1 = date;
let d2 = now = new Date();
if (d2.getTime() < d1.getTime()) {
d1 = now;
d2 = date;
}
let yd = d1.getYear();
let yn = d2.getYear();
let years = yn - yd;
let md = d1.getMonth();
let mn = d2.getMonth();
let months = mn - md;
if (months < 0) {
years--;
months = 12 - md + mn;
}
let dd = d1.getDate();
let dn = d2.getDate();
let days = dn - dd;
if (days < 0) {
months--;
// figure out how many days there are in the last month
d2.setMonth(mn, 0);
days = d2.getDate() - dd + dn;
}
let weeks = Math.floor(days / 7);
days = days % 7;
if (years > 0) return years + ' years' + (months > 0 ? ' and ' + months + ' months' : '');
if (months > 0) return months + ' months' + (weeks > 0 ? ' and ' + weeks + ' weeks' : '');
if (weeks > 0) return weeks + ' weeks' + (days > 0 ? ' and ' + days + ' days' : '');
return days + ' days';
}
</script>
$(函数(){
var htmlinit=“”;
htmlinit=“”;
美元(“#inserthere”)。在(htmlinit)之后;
var html=“”;
$.ajax({
url:“/\u api/web/list/getbytitle('Counter')/items?$select=Title,CounterStartDate&$orderby=CounterStartDate asc”,
方法:“获取”,
标题:{“Accept”:“application/json;odata=verbose”},
成功:功能(数据){
如果(数据d结果长度>0){
var项目=数据和结果;
对于(var i=0;i 0)回报年数+‘年数’+(月数>0?’和“+月数+‘月数’:”);
如果(月数>0)返回月数+“月数”+(周数>0?)和“+周数+”周数“:”;
如果(周数>0)返回周数+‘周数’+(天数>0?)和“+天数+‘天数’:”;
返回天数+天数;
}
现在我想修改它,在饼图中显示剩余的年、月、周和日,而不是只显示文本。所以我觉得这个只读旋钮饼图很有趣
:-
但当我试图在我们的网页中测试它时,我面临着这些问题:-
<script>
$(function($) {
$(".knob").knob({
change : function (value) {
//console.log("change : " + value);
},
release : function (value) {
//console.log(this.$.attr('value'));
console.log("release : " + value);
},
cancel : function () {
console.log("cancel : ", this);
},
/*format : function (value) {
return value + '%';
},*/
draw : function () {
// "tron" case
if(this.$.data('skin') == 'tron') {
this.cursorExt = 0.3;
var a = this.arc(this.cv) // Arc
, pa // Previous arc
, r = 1;
this.g.lineWidth = this.lineWidth;
if (this.o.displayPrevious) {
pa = this.arc(this.v);
this.g.beginPath();
this.g.strokeStyle = this.pColor;
this.g.arc(this.xy, this.xy, this.radius - this.lineWidth, pa.s, pa.e, pa.d);
this.g.stroke();
}
this.g.beginPath();
this.g.strokeStyle = r ? this.o.fgColor : this.fgColor ;
this.g.arc(this.xy, this.xy, this.radius - this.lineWidth, a.s, a.e, a.d);
this.g.stroke();
this.g.lineWidth = 2;
this.g.beginPath();
this.g.strokeStyle = this.o.fgColor;
this.g.arc( this.xy, this.xy, this.radius - this.lineWidth + 1 + this.lineWidth * 2 / 3, 0, 2 * Math.PI, false);
this.g.stroke();
return false;
}
}
});
// Example of infinite knob, iPod click wheel
var v, up=0,down=0,i=0
,$idir = $("div.idir")
,$ival = $("div.ival")
,incr = function() { i++; $idir.show().html("+").fadeOut(); $ival.html(i); }
,decr = function() { i--; $idir.show().html("-").fadeOut(); $ival.html(i); };
$("input.infinite").knob(
{
min : 0
, max : 20
, stopper : false
, change : function () {
if(v > this.cv){
if(up){
decr();
up=0;
}else{up=1;down=0;}
} else {
if(v < this.cv){
if(down){
incr();
down=0;
}else{down=1;up=0;}
}
}
v = this.cv;
}
});
});
</script>
<style>
body{
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
font-weight: 300;
text-rendering: optimizelegibility;
}
p{font-size: 30px; line-height: 30px}
div.demo{text-align: center; width: 280px; float: left}
div.demo > p{font-size: 20px}
</style>
$(函数($){
$(“.knob”).knob({
更改:功能(值){
//console.log(“更改:+值);
},
释放:功能(值){
//log(this.$.attr('value'));
控制台日志(“释放:+值);
},
取消:函数(){
console.log(“cancel:,this”);
},
/*格式:函数(值){
返回值+'%';
},*/
绘图:函数(){
//“特隆”案
如果(此.$.data('skin')=='tron'){
此.cursorExt=0.3;
var a=this.arc(this.cv)//arc
,pa//上一个弧
,r=1;
this.g.lineWidth=this.lineWidth;
如果(此.o.displayPrevious){
pa=此弧(此v);
这是g.beginPath();
this.g.strokeStyle=this.p颜色;
这个.g.弧(这个.xy,这个.xy,这个.radius-这个.lineWidth,pa.s,pa.e,pa.d);
这是笔划();
}
这是g.beginPath();
this.g.strokeStyle=r?this.o.fgColor:this.fgColor;
这个.g.弧(这个.xy,这个.xy,这个.radius-这个.lineWidth,a.s,a.e,a.d);
这是笔划();
这个g.lineWidth=2;
这是g.beginPath();
this.g.strokeStyle=this.o.fgColor;
this.g.arc(this.xy,this.xy,this.radius-this.lineWidth+1+this.lineWidth*2/3,0,2*Math.PI,false);
这是笔划();
返回false;
}
}
});
//无限旋钮、iPod点击轮示例
变量v,向上=0,向下=0,i=0
,$idir=$(“div.idir”)
,$ival=$(“div.ival”)
,incr=function(){i++;$idir.show().html(“+”.fadeOut();$ival.html(i);}
,decr=function(){i--;$idir.show().html(“-”.fadeOut();$ival.html(i);};
$(“input.infinite”).旋钮(
{
最低:0
,最多20
,stopper:false
,更改:函数(){
如果(v>this.cv){
如果(向上){
decr();
up=0;
}else{up=1;down=0;}
}否则{
if(vp{font size:20px}
- 对于一天,它可以是从1到7
- 对于一个月,它可以是1到12
- 在数周内,它可以是从1到4
那么这可能吗?@john,根据您的评论,我已经准备了一个使用插件的示例。请查看下面的演示,并告诉我它是否满足您的要求:
由于我使用了硬编码id的示例目的,您可以根据您的应用程序场景对此进行更改。您可以尝试可以以任何方式自定义的插件。查看下面的演示:这与您的要求类似,还是需要任何其他自定义?@Soundar将尝试它,尽管在我的情况下,我需要这样做以年、月、周和天为单位显示计数器..不需要计时器..my
datediff
函数将返回如下字符串1