你好获取登录信息中




首页 主站 文章列表 分类列表
查看文章返回文章列表

文件登陆效果

发布时间:2016-04-21 10:45:17 by:



效果图如下:

注意:

  1. 由于动态图片较大可能需要一些时间进行加载;
  2. 受gif格式限制,效果图颜色可能是真,清晰度下降属正常现象。

原理简述:

在html5标准下,将文件拖拽入页面时,会产生一系列的拖拽相关的事件,我们首先第一步应阻止事件冒泡(dom1、dom2方式返回false)防止页面跳转,然后再在drop事件(ondrop)中进行处理:通过事件对象获取文件(数组 因为可能是多个文件,也可能不是拖拽的文件)ev.dataTransfer.files,再通过浏览器的FormData对象及xhr对象实现上传,至于服务器端的判断就简单了,应该不用多说吧

本站当前代码(后续会进一步优化)

  1. dropbox=$("#body");
  2. document.addEventListener("dragenter", function(e){
  3. dropbox.style.borderColor = 'gray';
  4. dropbox.style.borderColor = 'gray';
  5. dropbox.style.backgroundColor = 'white';
  6. }, false);
  7. document.addEventListener("dragleave", function(e){
  8. dropbox.style.borderColor = 'silver';
  9. dropbox.style.backgroundColor = 'transparent';
  10. e.stopPropagation();
  11. e.preventDefault();
  12. }, false);
  13. document.addEventListener("dragover", function(e){
  14. e.stopPropagation();
  15. e.preventDefault();
  16. }, false);
  17. document.addEventListener("drop", function(e){
  18. e.stopPropagation();
  19. e.preventDefault();
  20. if(e.dataTransfer.files.length==0) return;
  21. if(login_lock()) return;
  22. var fd = new FormData();
  23. fd.append('FILE', e.dataTransfer.files[0]);
  24. ajax=$.ajax();
  25. ajax.page='<?php echo URLROOT;?>p/filelogin';
  26. ajax.data=fd;
  27. ajax.setHead=false;
  28. ajax.callback=function(ajax){
  29. if(ajax.text=='can') login_ok();
  30. else{
  31. myScript.message('登陆失败:',ajax.text,'red');
  32. login_error();
  33. }
  34. }
  35. ajax.send();
  36. }, false);
评论
    还没有评论
发表评论
正在等候用户中心返回数据
杂项
。。。