让你的网页图标(Favicon)变成动感的饼图动画

 网页图标(Favicon),就是页面标题前面的那个小图标,一般命名为 favicon.ico,存放在网站的根目录下面。这个功能最早由微软创设,目前主流的浏览器都支持。今天这篇文章教大家如何使用 Piecon 生成动感的网页图标加载动画,效果如下:

 

 

Piecon 基本原理

 

  Piecon 是著名的代码托管平台 Github 上的开源库,能够动态生成饼图(Pie Charts)模式的网页图标,同时可以显示加载的百分比。它的灵感来源于动态控制网页图标的开源库 Tinycon,同样托管在 Github 上面。

  Piecon 的基本原理是利用 HTML5 的 Canvas 标签绘制饼图并导出为图片,核心代码如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
var  drawFavicon =  function (percentage) {
     var  canvas = getCanvas();
     var  context = canvas.getContext( "2d" );
     var  percentage = percentage || 0;
     var  src = currentFavicon;
 
     var  faviconImage =  new  Image();
     faviconImage.onload =  function () {
         if  (context) {
             context.clearRect(0, 0, 16, 16);
 
             // Draw shadow
             context.beginPath();
             context.moveTo(canvas.width / 2, canvas.height / 2);
             context.arc(canvas.width / 2, canvas.height / 2, Math.min(canvas.width / 2, canvas.height / 2), 0, Math.PI * 2,  false );
             context.fillStyle = options.shadow;
             context.fill();
 
             // Draw background
             context.beginPath();
             context.moveTo(canvas.width / 2, canvas.height / 2);
             context.arc(canvas.width / 2, canvas.height / 2, Math.min(canvas.width / 2, canvas.height / 2) - 2, 0, Math.PI * 2,  false );
             context.fillStyle = options.background;
             context.fill();
 
             // Draw pie
             if  (percentage > 0) {
                 context.beginPath();
                 context.moveTo(canvas.width / 2, canvas.height / 2);
                 context.arc(canvas.width / 2, canvas.height / 2, Math.min(canvas.width / 2, canvas.height / 2) - 2, (-0.5) * Math.PI, (-0.5 + 2 * percentage / 100) * Math.PI,  false );
                 context.lineTo(canvas.width / 2, canvas.height / 2);
                 context.fillStyle = options.color;
                 context.fill();
             }
 
             setFaviconTag(canvas.toDataURL());
         }
     };
 
     // allow cross origin resource requests if the image is not a data:uri
     // as detailed here: https://github.com/mrdoob/three.js/issues/1305
     if  (!src.match(/^data/)) {
         faviconImage.crossOrigin =  'anonymous' ;
     }
 
     faviconImage.src = src;
};

  生成URL形式的图片然后设置到 Favicon 的URL上并使用 setInterval 函数周期性更新。所以 Piecon 显示的加载进度效果并不是网页上实际内容的加载进度,只是一种模拟效果。例如我们平常配置网页图标的代码如下:

<link type="image/x-icon" rel="icon" href="favicon.ico">

  使用 Piecon 生成的饼图模式的网页图标是Base64编码的URL字符串,代码如下:

<link type="image/x-icon" rel="icon" href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABuklEQVQ4T41Tv0vDUBC+1IAojdQq3VVwUSxSdVD8DQ5OWsFNcdTBdhF0UJD6D9j+BS5uom46aLE4WSSYQhFxEmxLl1YaQSUp8e6ZxPYlFh8c7+5e7nvfXb4nALcMwwhiagFtAm3QPFZwv0E7FwSBfHsJtQEWb2J8iObhgc24jPs+giSscxsAi08wuUQHhUIB8vk8qKoKY+E0fHZLUF3tA1+ESLF1iiDsWwaAxRHc4rquQyaTgVKpZBOYmU+DRzNYrA75oeViBcROL4VRYiKYPd9jQpRlua6YvqoFYCAjHSDdrZNL7UwTwC46B0Q7m83aN1sOD0D5t/i41c4eAVxhbtbtdjcGHItrAihiMpBKpUDTtH8x0CURxMo2a6MhgPiuw+SyDII5RAtd9zaBqO6wbhq20K5UILT16GBVM0jWwp9D7DrOQc/RqwOAHyJJN4nm5wc5EHuGwO2vJtgAh/0gpTcYfbQph5AURYFymX4xwOjaA7TmvmwGagiFdMkJyTrlpVx8eoHgXBKqzR746G1DKfeDL2pL+QxVGKZat8cUw7zP0fhPgmjTY4pb53UAlDSlvYiu23Omm+ue8zcnJOKk+8JFaQAAAABJRU5ErkJggg==">

  把 href 中的代码粘贴到浏览器地址栏回车即可看到图片,感兴趣的朋友可以试验一下。点击测试

   

Piecon 使用方法

  

  相信大家看了前面的介绍之后,对 Piecon 的基本原理都了解了,那么它的使用方法就更简单了。

  首页需要引入 piecon.js 文件:

?
1
< script  src = "piecon.js"  type = "text/javascript" ></ script >

  然后设置 piecon 的显示选项,并周期性更新,代码如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
( function (){
     var  count = 86;
     Piecon.setOptions({
         color:  '#ff0084' // 饼图颜色
         background:  '#eee' // 饼图空白部分的颜色
         shadow:  '#fff' // 饼图外环颜色
         fallback:  'force'  // true:显示饼图, false:显示百分比, 'force':同时显示饼图和百分比)
     });
     var  i = setInterval( function (){
         if  (++count > 100) { Piecon.reset(); clearInterval(i);  return  false ; }
         Piecon.setProgress(count);
     }, 250);
})();

  setProgress 方法用于设置百分比,上面代码中我们初始设置百分比为86,也可以设置为0或者其它值:

?
1
2
3
Piecon.setProgress(12);
Piecon.setProgress(25);
Piecon.setProgress(50);

   浏览器兼容:因为使用了 HTML5 Canvas 标签,所以在 Chrome 中效果最好,Firefox 和 Opera 饼图会闪烁,Safari 和 IE 只能显示百分比。这个效果完整的代码如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<!doctype html>
< html >
< head >
   < title >Piecon</ title >
   < link  rel = "icon"  href = "favicon.ico"  />
   < script  src = "piecon.js" ></ script >
   < script >
   (function(){
     var count = 86;
     Piecon.setOptions({
         color: '#ff0084',
         background: '#eee',
         shadow: '#fff',
         fallback: false
     });
     var i = setInterval(function(){
       if (++count > 100) { Piecon.reset(); clearInterval(i); return false; }
       Piecon.setProgress(count);
     }, 250);
   })();
   </ script >
</ head >
< body >
</ body >
</ html >

 


本文转自山边小溪 51CTO博客,原文链接:http://blog.51cto.com/lihongbo/1060711,如需转载请自行联系原作者


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Favicon图标大全是一个收集了各种网站和应用程序常用的图标的资源集合。Favicon是网站或应用程序的标志性图标,通常显示在网页浏览器的标签栏和收藏夹中,用来增加网站的可识别性和品牌形象。 Favicon图标大全提供了大量的不同种类和风格的图标选择,包括各种颜色、形状和设计风格。用户可以根据自己的需要选择和下载适合自己网站或应用程序的图标。这些图标集合一般分为免费和付费两个版本,用户可以根据自己的预算和需求选择合适的版本。 使用Favicon图标大全可以带来一些好处。首先,通过选择一个符合自己网站或应用程序风格的图标,可以增强用户对品牌的认知和记忆,提升用户体验。其次,图标大全中的图标都是经过精心设计的,具有高质量和美观的特点,能够为网站或应用程序增加一份专业和时尚的元素。再者,使用Favicon图标大全提供的图标可以节省用户自己设计或寻找图标的时间和精力,同时降低因使用未经授权的图标而导致的法律风险。 总之,Favicon图标大全是一个方便用户寻找和选择网站和应用程序图标的资源集合,可以为网站和应用程序带来更好的用户体验和品牌形象。 ### 回答2: Favicon图标大全是指所有网站中使用的用于标识网站的小图标的集合。它通常显示在浏览器标签页和书签栏上,以方便用户在多个网页中快速识别网站。Favicon是“Favorites Icon”的缩写,意味着它是一种用于标记用户的收藏夹的图标Favicon图标大全包括各种不同类型和尺寸的图标,以适应不同设备和平台的需求。一般来说,最常见的尺寸是16x16像素和32x32像素。除了这些常见的尺寸,还有一些其他尺寸,如48x48像素和64x64像素,以及适用于高分辨率显示器的更大尺寸。 Favicon图标可以根据网站的品牌和标识来设计,通常包括网站的logo或简化的标志。它可以是简单的形符号、字母、数字或组合,也可以是更复杂的像。它的设计应该与网站的整体风格和设计一致,以提升用户对网站的认知和记忆。 为了在网站中使用Favicon图标,开发者需要在网站的HTML代码中添加一行代码来引用图标文件,并将图标文件放置在网站的根目录下。常见的图标文件格式包括ICO、PNG和SVG。 Favicon图标大全可以帮助网站开发者快速找到适合其网站的图标,并提供了各种不同样式和设计的选择。当用户浏览网页时,这些图标可以帮助他们更容易地识别和区分不同的网站,提高用户体验和品牌知名度。 ### 回答3: favicon图标大全是指收集和整理了各种网站所使用的favicon图标的资源库。favicon是网站标签栏、书签栏、浏览器标签页以及网站链接的显示图标,具有辨识度和品牌形象的作用。 在日常浏览网页时我们常常看到网站的标签页上有一个小小的图标,这就是favicon图标favicon图标不仅可以增加网站的专业性和美观性,也可以提高用户对网站的识别度和留存率。 favicon图标大全资源库汇集了各种各样的图标,包括来自不同行业、不同风格的网站所使用的图标。在使用这个资源库时,我们可以根据需要选择合适的图标,然后将其嵌入到网站的代码中。这样,当用户在浏览器中访问我们的网站时,就会看到我们自定义的favicon图标了。 通过使用favicon图标大全资源库,我们能够避免从零开始设计和制作一个新的favicon图标,节省了时间和人力成本。另外,这些资源库通常会定期更新,可以及时收集到新的图标素材,保持网站的时尚和与时俱进。 总之,favicon图标大全是一个帮助网站设计者和开发者找到合适的个性化图标的资源库。通过选择和使用这些图标,我们可以提升网站的形象与用户体验,使得网站更加专业和独特。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值