Reeder Web版
Reeder Web版

访Reeder界面效果
一直很欣赏触控手势的代码实现,所以最近折腾了个Javascript触控手势库--JTouch,效果还有诸多不完善之处,苦于硬件设备不完善,针对ie10的兼容性一直没有跟上。在版本更新到1.1的时候,又颠覆了自己的好多想法,代码的改动量上比较大。小的改动随时都会出现,所以也就一直在1.1上改来改去。
Github地址:https://github.com/liutian1937/Reeder
Demo地址:http://liutian1937.github.io/Reeder/demo.html
图片未完全载入会影响效果,现在采用的兼听图片onload的方式,仍旧有不足,求点子
在改动JTouch的同时一直想要拿它去搞个什么东西,某天仔细研究了Reeder的界面效果,马上被其低调的奢华吸引了。所以决定拿JTouch做个Reeder的web版,当然只是界面的Web版...不过话说,我是想写个php的后端来配合这个界面的...
先说说Reeder是什么东西:
《Reeder》是一款评价极高的谷歌阅读器Google Reader软件,获得了2600多个5星评价。软件简约的UI和强大的功能都是其重要特色。首先,它支持与Google Reader云端同步,支持文件夹分类管理,还可以给RSS条目加星或做注释,还支持条目分享,图片缓存,状态保存等等。在其他服务的关联方面,Reeder还支持Instapaper/ReadItLater,还可以发送给Delicious/Pinbard或Twitter。
想法到产品的进化过程(比较水)
想必很多人并不关心这个东西,因为我也是这样,来看这个的人肯定喜欢干货(直白的代码更有说服力)。但是我感觉说点这个还是有必要的,本人水平有限,扯淡也一般,所以扯点白话大家就凑合着看一下。首先个人是比较倾向于表现类的开发的,因为当你看到你写出来的东西实现了某个效果的时候是比较有成就感的。对于开发表现类的东西,我总结了个人的一些见解:
- 你要清楚有哪些交互过程,有哪些动画,有哪里是需要用到数据交互的。
- 根据你的理解将这些东西进行分块,最好越详细越好,然后将这个块再组合起来,看哪些地方是通用的可以用公共的函数,哪些地方是需要单独封装的等等。(我一般会在纸上画这些东西)
- 这步比较轻松,躺在床上想就行了,至少我喜欢这样。看完第二部的模块之后,我并不会着手写代码,而是会花点时间想,当然经常睡着...
- 入手写demo,由于每个人水平不同,但是我们的目的是相同的,这一步要求个人根据自己水平写demo,不管用不用模块,用不用封装,不计较代码效率的也要写出表现效果来。(当然别写的你自己都不认识了)
- 写好demo,重新审查自己的代码,进行优化,简化,封装等等
- 在感觉自己把第5步做的还算ok了,去google搜索类似的小模块,参考别人的代码,然后完善自己的demo...
代码中用到了哪些东西(部分要点)
- 手势事件,我用的自己的JTouch库,貌似是多余了一点,因为手势并不多。失败之处,造成耦合。
- Font Icon,文字小图标,支持将代码转换成小图标,我用的 IconMoon的文字库,http://icomoon.io/app/(需要现代浏览器支持)
- translate实现的动画效果,以及各种高度,宽度,滚动距离的判断,其中的算法给我折腾的很迷糊
- 兼容性与初始化的问题
- 异步加载数据,与监听图片完全载入
- JTouch鼠标触控手势库,JNav实现的是左侧一直停留在顶部的导航,JScroll是支持手势操作的容器(放出的接口比较乱,请静待注释),Common是一些公共函数
实现的效果
- 内容与导航部分支持触控手势与鼠标手势
- 左侧导航跟随并滚动到底部静止
- 左侧控制选择前一篇后一篇
- 横向拖拽标题导航可以实现简单数据交互
- 右侧拖拽到顶部或者底部异步加载数据
不足之处
- 多浏览器兼容性方面
- 性能消耗
- 图片完全载入的监测
- 耦合性
- ...
Reeder Web版的更多相关文章
- Node学习笔记(三):基于socket.io web版你画我猜(一)
经过惨淡的面试,也是知道了自己的不足,刚好最近在学习node,心中便有了做一个web版的你画我猜的想法 首先说下思路,在做准备工作的时候,有两个大概的思路: 1.规定一块div,捕捉鼠标事件,动态生成 ...
- 网站压力负载测试工具:Web版已逝,只好送大伙单机版
前言: 最近老板资金周转出了点问题,工资好久没发了,于是暂闲置在家,静待老板弄到钱东山再起的消息: QQ群里,偶尔不时的会有人问,原来的分布式网站负载工具怎么下载不了啦?或者不能用啦?之类的问题. 我 ...
- 挖掘微信Web版通信的全过程 [转]
昨天是周末,在家闲得无聊,于是去weiphone.com逛了一圈,偶然发现有人发了一帖叫<微信 for Mac>, 这勾起了我的好奇心,国内做Mac开发的人确实很少,对于那些能够独自开发一 ...
- RDIFramework.NET Web版介绍
RDIFramework.NET Web版介绍 B/S结构(Browser/Server,浏览器/服务器模式),是WEB兴起后的一种网络结构模式,WEB浏览器是客户端最主要的应用软件.这种模式统一了 ...
- RDIFramework.NET V2.5(.NET快速信息化系统开发框架) Web版界面样例(可参考)
RDIFramework.NET V2.5(.NET快速信息化系统开发框架) Web版介绍 现已升级到V2.8,点击查看 B/S结构(Browser/Server,浏览器/服务器模式),是WEB兴起 ...
- WEB版一次选择多个文件进行批量上传(Plupload)的解决方案
WEB版一次选择多个文件进行批量上传(Plupload)的解决方案 转载自http://www.cnblogs.com/chillsrc/archive/2013/01/30/2883648.htm ...
- Web版RSS阅读器(三)——解析在线Rss订阅
上篇博客<Web版RSS阅读器(二)——使用dTree树形加载rss订阅分组列表>已经写到读取rss订阅列表了,今天就说一下,当获取一条在线rss订阅的信息,怎么去解析它,从而获取文章或资 ...
- Web版的各种聊天工具
直到近期为止,我们经常使用的即时聊天工具(QQ.msn等)了Web版,大家不用下载庞大软件,直接打开网页就能够与自己的好友聊天,非常方便.在此将时汇总 便于大家查找 节约大 ...
- 挖掘微信Web版通信的全过程
昨天是周末,在家闲得无聊,于是去weiphone.com逛了一圈,偶然发现有人发了一帖叫<微信 for Mac>,这勾起了我的好奇心,国内做Mac开发的人确实很少,对于那些能够独自开发一些 ...
随机推荐
- MVC 验证码
验证码类 public class VerifyCode { public string checkCode = String.Empty; public byte[] BuildImg() { in ...
- Android安卓安全审计mobiseclab
关于安卓上的app分析,有非常多的本地化软件能够胜任, 只是,今天给大家介绍一款在线的安全审计,恶意软件(android app)检測和分析工具,mobiseclab, 由于看到国内对此工具的介绍比較 ...
- Hibernate 一对多注解 mappedby 作用
package oneToMany; import java.util.Set; import javax.persistence.*; /* 注意导入时,是导入:import javax.persi ...
- GitHub上整理
GitHub上整理 技术站点 Hacker News:非常棒的针对编程的链接聚合网站 Programming reddit:同上 MSDN:微软相关的官方技术集中地,主要是文档类 infoq:企业级应 ...
- 企业部署Windows 8 Store 风格应用
原文:企业部署Windows 8 Store 风格应用 引言 之前我们都知道可以将应用程序发布到Windows 商店中供用户下载使用.如果我们是企业开发人员,则我们的应用可能属于以下两种类别之一: 1 ...
- Visual Studio测试工具TestDriven.NET2.2
原文:Visual Studio测试工具TestDriven.NET2.2 关于TestDriven.NET的文章很多,有很详细的说明,我不太会单元测试只是每次要运行程序才能调试觉得太麻烦了,所以找了 ...
- mysql的事物
所谓的事物就是一组原子性的SQL语句,或者说是一个独立的工作单元. 1.事物拥有四大特征: ①原子性(atomicity):一个事物必须被分为一个不可分割的的最小单元,整个事物中的所有操作要么全部提交 ...
- Qlik Sense Desktop
2014年新一代的报表利器 Qlik Sense Desktop 初步体验 2014-09-22 12:45 by BIWORK, 974 阅读, 7 评论, 收藏, 编辑 Qlik Sense De ...
- C语言JSON-RPC
近期对json-rpc比較感兴趣,思想非常easy,并且看到了非常多不同语言的实现.在github上 hmngomes 的 json-rpc-c (实现的是server端,基于TCP流),短 ...
- java中的输入流(Scanner),数据类型,运算符,switch,数组的用法
//java中创建包用package相当于C#的命名空间namespace,java中导入包用import相当于C#中引入命名空间usingimport java.util.*;//导入包,*代表导入 ...