可视化

2021-01-04  本文已影响0人  monkeyfly36

饼图

弹性动画


动画原理

根据上面的原理我们知道,你眼前所看到图像正在以每秒60次的频率刷新,由于刷新频率很高,因此你感觉不到它在刷新。

如果两者的步调不一致,就可能会导致中间某一帧的操作被跨越过去,而直接更新下一帧的图像。

举例:假设屏幕每隔16.7ms刷新一次,而setTimeout每隔10ms设置图像向左移动1px, 
就会出现如下绘制过程:

第0ms: 屏幕未刷新,等待中,setTimeout也未执行,等待中;
第10ms: 屏幕未刷新,等待中,setTimeout开始执行并设置图像属性left=1px;
第16.7ms: 屏幕开始刷新,屏幕上的图像向左移动了1px, setTimeout 未执行,继续等待中;
第20ms: 屏幕未刷新,等待中,setTimeout开始执行并设置left=2px;
第30ms: 屏幕未刷新,等待中,setTimeout开始执行并设置left=3px;
第33.4ms:屏幕开始刷新,屏幕上的图像向左移动了3px, setTimeout未执行,继续等待中;

从上面的绘制过程中可以看出,屏幕没有更新left=2px的那一帧画
面,图像直接从1px的位置跳到了3px的的位置,这就是丢帧现象,这种现象就会引起动画卡顿。

缓动跟随

举个栗子:
闪电侠从A 点到B点可以一步走完。可是他被施加了一个魔法:闪电侠走出的第一步永远是他所在的位置到B 点的一半。那么闪电侠只会越来越接近B 点,但永远达不到B 点。
闪电侠行走的这个过程就是从A点到B点的缓动效果。


image.png

大屏

注意:特殊字体+动画 CSS3
// 指定字体
@font-face {
  font-family:myFont;
  src:url(../font/DS-DIGIT.TTF)
}

// 简单动画 animate (顺时针旋转)
.img1{
    animation:img1 20s linear infinite;
}
@keyframes img1{
    0%{transform:rotate(0deg);}
    100%{transform:rotate(360deg);}
}

颜色主题 (theme)
-- 默认两种light和dark。自定义主题(如walden, vintage)可选自己配置,在https://echarts.apache.org/zh/theme-builder.html下载js文件。
使用: echarts.init(xxx, 'walden')

调色盘(color)
-- options: { color: [] }
设置theme以后可以不设置color

具体样式设置(itemStyle、lineStyle、areaStyle、label、...)
-- 饼图差距过大可使用圆环 -- roseType, radius

视觉映射(visualMap)

上一篇 下一篇

猜你喜欢

热点阅读