最近报名参加了360前端星计划,想当一名前端实习生,学习更多更流行的前端知识。然后需要完成一个作业,才能进培训,进了培训还得看运气才能留下,流程不少。书归正传,请看:

课后作业题目

  请从下面两个题目中任意选择一道题完成。

  题目1:使用网页做一份简历,可以根据自己的能力适当添加动画效果和交互。

  题目2:开发一个网页图片查看器,可以缩放、拖动图片。

  好吧,我果断选择了第二题,然后把自己的简历放在了图片查看器的图片中,真是机智啊。下面进入正题。

PicPicker

  光做个查看器好像也没什么意思,我绞尽脑汁想出了一个图片拾取器,PicturePicker,缩写为PicPicker。功能主要是查看图片,然后可以把相中的图片拖到自己的包裹中,然后一键打包下载。

  也就是说,PicPicker共有两部分组成,图片查看器图片包裹。其中图片查看器又分为主窗口图片滑动框。有图更形象:

  

  @图片查看器:可以放大,缩小,旋转图片,双层图实现图片加载时从模糊到清晰,当倍率大于自适应屏幕时,可以拖拽移动,当放大倍率小于自适应屏幕时,可以拖放到图片包裹中(非DnD实现)。并且键盘友好,支持左右键切换图片及鼠标滚轮缩放。

  @图片滑动框:根据图片数量计算滑动框长度,当所点击图片为当前可视区域最后或最前一个图片时,自动滑动呈现更多图片。

  @图片包裹:拖拽删除(DnD API实现),打包下载所选图片的压缩文件。

  具体实现大家可以下载源码来看看,有注释,但是我技术一般,写的有点乱。

总结

  PicPicker的原型主要来源于Windows图片查看器,以及梦幻西游图库。然后加上自己想的那么一个图片包裹,想法就成型了。从想法到写出HTML和CSS用了半天,但是写脚本用了好几天。一开始还在原生和jQuery中间纠结。毕竟是找实习,用原生可能更能体现一点技术。不过越写我越庆幸自己使用了jQuery,现在脚本有900行,用原生写的话代码量翻一倍估计都打不住。

  我写这个应用的顺序是这样的:想法>HTML>CSS>滑动框脚本>查看器脚本>图片包裹脚本>键盘事件>针对低版本IE的CSS hack和脚本调整。由于我这没有IE6,没能测试成,在IE7+运行的都挺和谐。

  自己真收获了很多,源代码放在这里,有兴趣的可以看看。

  另外,还有一个在线体验地址,当网址不能用时,我会把这句话从博客中删除。

  源码: PicPicker.rar 

  在线地址:PicPicker

图片拾取器-PicPicker的更多相关文章

  1. iOS UI-UIPickerView(拾取器)、UIWebView(网页视图)和传值方式

    // // ViewController.m // IOS_0107_finalToolClass // // Created by ma c on 16/1/7. // Copyright (c) ...

  2. 【Android】内存卡图片读取器,图库app

    上一篇<[Android]读取sdcard卡上的全部图片而且显示,读取的过程有进度条显示>(点击打开链接)在真机上測试非常有问题.常常遇到内存溢出.卡死的情况.由于如今真机上的内存上,2G ...

  3. wpf 仿QQ图片查看器

    参考博客 WPF下的仿QQ图片查看器 wpf图片查看器,支持鼠标滚动缩放拖拽 实现效果 主要参考的WPF下的仿QQ图片查看器,原博主只给出了部分代码. 没有完成的部分 1.右下角缩略图是原图不是缩略图 ...

  4. HTML5、canvas颜色拾取器

    效果图: 代码: <!doctype html> <html lang="en"> <head> <meta charset=" ...

  5. 发布两款JQ小插件(图片查看器 + 分类选择器),开源

    图片查看器,github地址:https://github.com/VaJoy/imgViewer 效果如下: 这款当初大概写了2小时,有点匆忙地赶出来的,使用的接口很简单: $.bindViewer ...

  6. wpf图片查看器,支持鼠标滚动缩放拖拽

    最近项目需要,要用到一个图片查看器,类似于windows自带的图片查看器那样,鼠标滚动可以缩放,可以拖拽图片,于是就写了这个简单的图片查看器. 前台代码: <Window x:Class=&qu ...

  7. 用JQ仿造礼德财富网的图片查看器

    现在就职于一家P2P平台,自然也会关注同行其它网站的前端技术,今天要仿造的是礼德内页的一个图片查看器效果.不过说白了,无论人人贷也好礼德财富也好,很多地方的前端都做的不尽如人意,比如忽略细节.缺乏交互 ...

  8. 基于jQuery的一个简单的图片查看器

    项目中自己diy了一个图片查看器.因为初始代码不是自己的,只是在上面改了一下也没有弄的很漂亮.等以后有时间了在重写一下样式和封装,作为备用的只是积累吧.如果有童鞋有用到,完全可以在此基础上改,比较容易 ...

  9. .NET破解之图片下载器

    自去年五月加入吾爱后,学习了三个月,对逆向破解产生了深厚的兴趣,尤其是对.NET方面的分析:但由于这一年,项目比较忙,事情比较多,破解这方面又停滞了许久,不知道还要好久. 前些天,帮忙批量下载QQ相册 ...

随机推荐

  1. js == 与 === 的区别

    1.对于string,number等基础类型,==和===是有区别的 1)不同类型间比较,==之比较“转化成同一类型后的值”看“值”是否相等,===如果类型不同,其结果就是不等 2)同类型比较,直接进 ...

  2. Oracle事务

    Oracle事务的ACID特性 原子性Atomicity:事务中的所有动作要么都发生,要么都不发生. 一致性Consistency:事务将数据库从一种状态转变为下一种一致状态. 隔离性Isolatio ...

  3. Linux 2.6内核中新的锁机制--RCU

    转自:http://www.ibm.com/developerworks/cn/linux/l-rcu/ 一. 引言 众所周知,为了保护共享数据,需要一些同步机制,如自旋锁(spinlock),读写锁 ...

  4. for循环每次取出一个字符(不是字节)

    python3.5 for循环每次取出一个字符(不是字节) #!/usr/bin/env python # -*- coding:utf-8 -*- my_str = "我是哈哈" ...

  5. Puppet自动化部署-前期环境准备(2)

    在安装Puppet环境之前需要配置好机器的基本配置,如规范网络地址IP.hostname,certname认证名称,ntp时间同步等配置完毕,完善的搭建自动化环境. 1.环境介绍 此处实现部署的环境是 ...

  6. 【大数据技巧】日均2TB日志数据在线快速处理之法

    [大数据技巧]日均2TB日志数据在线快速处理之法 http://click.aliyun.com/m/8958/

  7. Matlab中一些函数的区别

    1.fix, floor,ceil,round   都是对x取整,但取整方向不同.   fix(x):向0取整(也可以理解为向中间取整)   floor(x):向左取整(从名字看,地板,表示下面) c ...

  8. LNMP虚拟机开发环境配置--vagrant+virtualbox+ubuntu14.04

    工作一直用的是别人打包好的虚拟机开发环境,感觉确实很酷.所以准备自己配个开发环境,为之后自己开发一些有趣的东西做准备. ok,开始~~~ 一.安装软件 vagrant和virtualbox 此处需注意 ...

  9. IT

    http://www.cnblogs.com/TomXu/archive/2011/12/19/2291448.html " 经常从Recruiter那里得到抱怨:“汤姆,为什么面试者每次回 ...

  10. 使用git把项目提交到github

    1.需要在https://github.com/注册一个账户 2.注册成功后,新建一个repository,用来存放你要上传的项目,如下图所示 这里你需要输入你的项目的名称,可以对你的项目进行描述,如 ...