fcc项目总结系列2:wikipedia viewer

begin: 20170728
version: 20170728

项目地址:https://codepen.io/jacktown/pen/RZWLNR
fcc题目地址:https://freecodecamp.cn/challenges/build-a-wikipedia-viewer

项目简介

根据用户输入的文本检索维基百科的条目,显示前若干条结果,结果包含词条标题和内容摘要。

技术点

  • 利用wikipedia的API检索维基百科数据库,
    API文档地址是http://www.mediawiki.org/wiki/API:Main_page
    API在线实验地址:https://en.wikipedia.org/wiki/Special:ApiSandbox#action=query&titles=Main%20Page&prop=revisions&rvprop=content&format=jsonfm
    获取随机维基百科条目方法:http://en.wikipedia.org/wiki/Special:Random
    当时学习api的时候迷了好久,主要不知道该用什么参数才能获得和demo一样的结果,结果网上搜到一篇demo,关键点是list=search&srsearch=xxx
  • 搜索框动画
    用户界面在一开始,输入框是一个形似放大镜的图标,点击该图标,放大镜手柄逐渐缩短到0,图标成为一个圆,然后这个圆向两边分开,拉出一个输入框,输入框自动获取焦点,接着输入框尾端两条斜线段从右上角和右下角飞入,形成一个关闭的叉,点击该叉,动画逆向运行一遍,搜索框又还原为一个搜索图标。
    实现该动画的过程主要采用了以下技术:
    • 搜索图标手柄:用一个高度很小的div,对搜索框(包围块)绝对定位,利用css3旋转,让其成为一条斜线,作为搜索图标的手柄。修改div的宽度就可以修改手柄的长度。难点:由于css3旋转是相对div中心的,修改了div的长度以后,div的中心位置变了,旋转以后和之前的位置平行却不共线,达不到效果,为此还需要在div相对定位以后利用css3位移变换transform: translate(-50%,-50%) rotate(45deg);让不论div长度多少,div的中心都固定在一个位置。这样以后,缩短div时会向div中心收缩,那么这个中心放在哪儿呢?搜索图标圆的边缘上。此时div有一部分会显示在搜索图标圆内部,为解决这个问题,让div的z-index设置为-1,并给搜索图标圆(实际是搜索框包围块)加上和页面相同的背景,折叠掉div手柄在圆内的部分。
    • 搜索框的关闭叉:和搜索图标手柄类似,不同的动画过程中修改的css属性是其绝对定位位置。
    • 实现动画的js:在搜索框包含块上监听点击事件,根据点击事件目标和当前搜索框状态(我在搜索框关闭完全以后给其加collaspsed类)确定执行什么动画;各个动画的顺序执行:利用jquery的animate()方法回调函数。
  • 内容显示
    一开始我在html中写了12个用于填充结果内容的div>a>(h3+p),在分享项目时,伙伴们给的意见是动态生成dom,对此做了相应修改。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 174,615评论 25 709
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,296评论 4 61
  • 记得以前看过一句话,男女各顶半边天。随着时代的变更,人们也开始不断的强调男女平等。 也许是五千年的文化底蕴太过深刻...
    杨家阿朵阅读 377评论 0 5
  • 生养我们的那所老房子,还留存在你的记忆吗?某一个晚上的梦里,你是否重新回到故乡,回到了曾经的童年
    阿森纳是冠军阅读 135评论 0 0
  • 人生太漫长,在转眼间,发现很多事情由不得你去按部就班,以前想着安排好一切,突然一个意外怀孕打乱了所有的一切,再在打...
    她说故事阅读 252评论 0 0