4

有谁知道任何将 jQueryUI:Sortable:display-grid 与 HTML5 File API 结合以显示将多个本地图像同时放入浏览器的好示例,然​​后所有这些图像都显示在显示网格中?

参考: http:
//jqueryui.com/demos/sortable/#display-grid
http://html5demos.com/file-api
当用户使用 HTML5 文件 API 按下按钮时,如何读取本地文件?

4

1 回答 1

2

为图像创建一个占位符:

<ul id="sortable"></ul>

将 sortable 绑定到占位符:

$( "#sortable" ).sortable();
$( "#sortable" ).disableSelection();

将 ondrop 函数绑定到占位符:

$('#sortable').on(
    'drop',
    function(e){
        if(e.originalEvent.dataTransfer){
            if(e.originalEvent.dataTransfer.files.length) {
                e.preventDefault();
                e.stopPropagation();
                upload(e.originalEvent.dataTransfer.files);
            }   
        }
    }
);

最后但同样重要的是,编写 File API 部分:

function upload(files){
    for (var i = 0, f; f = files[i]; i++) {
        var imageReader = new FileReader();
        imageReader.onload = (function(aFile) {
            return function(e) {
                var li = document.createElement('li');
                li.innerHTML = ['<img class="images" src="', e.target.result,'" title="', aFile.name, '"/>'].join('');
                $('#sortable').append(li);
         };
    })(f);
    imageReader.readAsDataURL(f);
}

在以下位置查看完整代码:http: //jsfiddle.net/xKYxL/2/

致谢: https ://www.ibm.com/developerworks/mydeveloperworks/blogs/bobleah/entry/html5_code_example_of_file_api_drag_drop_hard_drive_files_to_a_webpage28?lang=en

于 2012-07-06T21:33:00.697 回答