Canvas ChartJS does not resize after using animation keyframes - bug?
up vote
0
down vote
favorite
<div class="row">
<div class="col-md-6 graph-column">
<div *ngIf="graphsLoaded">
<span class="graph-title">Players this month</span>
<mat-divider class="graph-divider"></mat-divider>
</div>
<div class="graph-content">
<canvas id="canvas-players">{{ players }}</canvas>
</div>
</div>
<div class="col-md-6 graph-column">
<div *ngIf="graphsLoaded">
<span class="graph-title">Server Uptime</span>
<mat-divider class="graph-divider"></mat-divider>
</div>
<div class="graph-content">
<canvas id="canvas-status">{{ status }}</canvas>
</div>
</div>
</div>
Graph loads fine, but what happens when you want to add a fade-in effect when the graph loads?
You do the following:
#canvas-players {
animation: anim 1s;
}
@keyframes anim {
0% {
opacity: 0.1;
}
100% {
opacity: 1;
}
}
Now when you load the page, one of your graphs should load with fade-in effect. OK it does!
But now when you resize your screen this is what happens:
As you see, the first graph keeps it's original size, which is wrong, and the other graph is correct, resizing..
I tried to discover whats wrong, and it seems like it does not change the width
and height
attributes after using animation.
One interesting thing is, if I turn off the animation from inspect, and turn it back on, it will work just fine!
If I set width: 100% !important;
and height: auto;
to canvas, it will resize, but the whole canvas will be pixel'ed, according to the size.
I am wondering, if its a chartJs bug or a CSS bug?
javascript css charts chart.js
add a comment |
up vote
0
down vote
favorite
<div class="row">
<div class="col-md-6 graph-column">
<div *ngIf="graphsLoaded">
<span class="graph-title">Players this month</span>
<mat-divider class="graph-divider"></mat-divider>
</div>
<div class="graph-content">
<canvas id="canvas-players">{{ players }}</canvas>
</div>
</div>
<div class="col-md-6 graph-column">
<div *ngIf="graphsLoaded">
<span class="graph-title">Server Uptime</span>
<mat-divider class="graph-divider"></mat-divider>
</div>
<div class="graph-content">
<canvas id="canvas-status">{{ status }}</canvas>
</div>
</div>
</div>
Graph loads fine, but what happens when you want to add a fade-in effect when the graph loads?
You do the following:
#canvas-players {
animation: anim 1s;
}
@keyframes anim {
0% {
opacity: 0.1;
}
100% {
opacity: 1;
}
}
Now when you load the page, one of your graphs should load with fade-in effect. OK it does!
But now when you resize your screen this is what happens:
As you see, the first graph keeps it's original size, which is wrong, and the other graph is correct, resizing..
I tried to discover whats wrong, and it seems like it does not change the width
and height
attributes after using animation.
One interesting thing is, if I turn off the animation from inspect, and turn it back on, it will work just fine!
If I set width: 100% !important;
and height: auto;
to canvas, it will resize, but the whole canvas will be pixel'ed, according to the size.
I am wondering, if its a chartJs bug or a CSS bug?
javascript css charts chart.js
add a comment |
up vote
0
down vote
favorite
up vote
0
down vote
favorite
<div class="row">
<div class="col-md-6 graph-column">
<div *ngIf="graphsLoaded">
<span class="graph-title">Players this month</span>
<mat-divider class="graph-divider"></mat-divider>
</div>
<div class="graph-content">
<canvas id="canvas-players">{{ players }}</canvas>
</div>
</div>
<div class="col-md-6 graph-column">
<div *ngIf="graphsLoaded">
<span class="graph-title">Server Uptime</span>
<mat-divider class="graph-divider"></mat-divider>
</div>
<div class="graph-content">
<canvas id="canvas-status">{{ status }}</canvas>
</div>
</div>
</div>
Graph loads fine, but what happens when you want to add a fade-in effect when the graph loads?
You do the following:
#canvas-players {
animation: anim 1s;
}
@keyframes anim {
0% {
opacity: 0.1;
}
100% {
opacity: 1;
}
}
Now when you load the page, one of your graphs should load with fade-in effect. OK it does!
But now when you resize your screen this is what happens:
As you see, the first graph keeps it's original size, which is wrong, and the other graph is correct, resizing..
I tried to discover whats wrong, and it seems like it does not change the width
and height
attributes after using animation.
One interesting thing is, if I turn off the animation from inspect, and turn it back on, it will work just fine!
If I set width: 100% !important;
and height: auto;
to canvas, it will resize, but the whole canvas will be pixel'ed, according to the size.
I am wondering, if its a chartJs bug or a CSS bug?
javascript css charts chart.js
<div class="row">
<div class="col-md-6 graph-column">
<div *ngIf="graphsLoaded">
<span class="graph-title">Players this month</span>
<mat-divider class="graph-divider"></mat-divider>
</div>
<div class="graph-content">
<canvas id="canvas-players">{{ players }}</canvas>
</div>
</div>
<div class="col-md-6 graph-column">
<div *ngIf="graphsLoaded">
<span class="graph-title">Server Uptime</span>
<mat-divider class="graph-divider"></mat-divider>
</div>
<div class="graph-content">
<canvas id="canvas-status">{{ status }}</canvas>
</div>
</div>
</div>
Graph loads fine, but what happens when you want to add a fade-in effect when the graph loads?
You do the following:
#canvas-players {
animation: anim 1s;
}
@keyframes anim {
0% {
opacity: 0.1;
}
100% {
opacity: 1;
}
}
Now when you load the page, one of your graphs should load with fade-in effect. OK it does!
But now when you resize your screen this is what happens:
As you see, the first graph keeps it's original size, which is wrong, and the other graph is correct, resizing..
I tried to discover whats wrong, and it seems like it does not change the width
and height
attributes after using animation.
One interesting thing is, if I turn off the animation from inspect, and turn it back on, it will work just fine!
If I set width: 100% !important;
and height: auto;
to canvas, it will resize, but the whole canvas will be pixel'ed, according to the size.
I am wondering, if its a chartJs bug or a CSS bug?
javascript css charts chart.js
javascript css charts chart.js
edited Nov 22 at 21:25
JP4
74412
74412
asked Nov 22 at 16:08
Ben Beri
6652928
6652928
add a comment |
add a comment |
active
oldest
votes
active
oldest
votes
active
oldest
votes
active
oldest
votes
active
oldest
votes
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53434742%2fcanvas-chartjs-does-not-resize-after-using-animation-keyframes-bug%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown