重新发一次,这次改进了插件,更新 demo 还有说明
地址: https://github.com/LoeiFy/CBFimage
预览地址: http://loeify.github.io/CBFimage/demo/
使用说明看 Github 说明
欢迎各种问题
1
mgcnrx11 2015-03-07 15:26:07 +08:00
demo 不错,赞!
加载进度的加载条可以再有改进 |
2
takatost 2015-03-07 15:28:32 +08:00
浏览器兼容性如何?图片不能跨域貌似是个问题。。
另外建议一下,Loading 效果能自定义就好了 |
3
takatost 2015-03-07 15:30:30 +08:00
加上 lazyload 会更不错哦
|
4
coraline OP |
5
loading 2015-03-07 15:52:49 +08:00
能先下一张 thumb 模糊(自备该图),然后下清晰的吗?
|
7
mgcnrx11 2015-03-07 17:03:16 +08:00
跨域应该可以用AccessOriginAllow的header解决
|
8
takatost 2015-03-07 17:13:00 +08:00
@mgcnrx11 Access-Control-Allow-Origin 是html5新增的一项标准功能,因此 IE10以下版本的浏览器是不支持的
而且一般图片跨域基本上都不是自己的服务器,而是外链图片 |
9
loading 2015-03-07 19:00:07 +08:00
@coraline 对于高分辨率图片来说(好几兆大小),先快速下载一张50k左右的缩略图然后模糊,再加载,能显著提高用户体验。
|
10
yyfearth 2015-03-07 19:46:33 +08:00
base64Encode 可以直接用浏览器原生的 btoa 方法
而且既然已经有这么高的浏览器要求 btoa 肯定是支持的了 如果不需要精确的进度条 完全没必要去用ajax加载图片 |
11
yyfearth 2015-03-07 19:51:04 +08:00 1
@loading LZ的做法的目的貌似不是为了你说的那种
他是把图片下载下来加载到canvas上面再blur 应该是存粹为了blur而已 而你说的是jpeg还是png格式支持的那种progressive的模式 图片随着加载逐渐变清晰 这个只需要在上传的时候对图片进行一下转换处理就可以做到 只不过必须用img或者background直接加载 而不是ajax加载 所以不可能有进度条 不过loading的效果是可以做出来的 利用img.onload事件就可以了 |
13
paloalto 2015-03-07 21:04:38 +08:00 via iPhone
支持 background-image 吗
|
14
coraline OP |
15
loading 2015-03-07 21:28:03 +08:00 via Android
|
16
coraline OP @loading 插件有加载回调,你可以在回调中做一些事情:
```js CBFimage({ id: 'canvas', /*(必须)定义canvas作用id */ cache: 'true', /* (可选) 设定是否缓存,默认true,当为 false 时候每次都会重新加载图片 */ /* 以下接口函数只触发在首次图片的加载,或者是更新图片时候 */ start: function() { // 图片开始加载 }, progress: function(loaded, total) { // 图片加载过程,loaded 表示已经加载大小,total 表示总大小 }, end: function() { // 图片加载结束 } }) ``` 其中 progress 就是你想要的回调,在这里定义你想要的效果 |
17
zhaohai 2015-03-07 22:35:34 +08:00
好像不错
|
18
Fly1993 2015-03-08 10:23:56 +08:00
效果不错,超赞
|
19
DT27 2015-03-08 12:04:17 +08:00
|
20
DT27 2015-03-08 15:44:05 +08:00
兼容性太差了= =、不折腾了。。。
|
21
DT27 2015-03-08 15:48:38 +08:00
楼主有时间来个jquery版的吧。。。
|