===============================
更新:DEMO和分析已经放出,地址在这里 
 
=====================================
 
 
 
 
12年初,我参与了一个项目(在项目中主要负责实现下面说到的一个需求),这个项目针对美国国内用户,主要作用是投票。 这个项目会用于美国的一些民众评选,其中,包括奥巴马和罗姆尼竞选美国总统的民意调查和美国明星奖项评选。 US团队喜欢叫它faceoff,有对决的意思。

 

好吧,既然取名有点剑拔弩张,设计也会磨剑擦枪,设计稿大概是这个样子。(项目现在已经下线了,我按回忆做了一个简单的样子作为参考)

 
 
 

当时win8的metro风格出来有一阵子,类似的设计已不鲜见,一般是图上面一个overlay,overlay上面有些介绍文字,overlay一般是隐藏的(或显示一行标题),鼠标移到图片上时,overlay才从一个方向滑出来,显示在图片上面。

 

第一眼看到设计稿感觉没啥的,和win8 metro风格的图标差不多。可仔细一看,中间间隔是斜的……是斜的……

 

就这一个细节,会带来三个问题:

  • 图片必须是直角梯形
  • 图片上的文字内容,也要在直角梯形里排布
  • 鼠标的作用区域也是梯形,当鼠标悬停在梯形区域上时,overlay要出来
 

首先想到的一个办法是用canvas做,但和那边团队沟通后,他们说考虑到SEO还是要使用dom做,但允许在高级浏览器上图片是梯形,低级浏览器上图片是矩形。

 
这种非常规前端需求对前端知识综合应用是个考验。经过一些尝试,我最终实现了这个需求。
 
因为这个项目已经下线,没法给大家链接。不过我准备写个简单的DEMO给大家参考下,晚点完成后放出来。
 
不过在DEMO出来之前,大家可以先把它当成个前端试题,拿来练下手,经常试下非常规前端需求实现,对自己的技术提升有帮助。
 
 
更新:DEMO已经放出,地址在这里 
 
 
本文是博主Arfei Zhang原创,欢迎转载。转载请注明转自博客园,并附上本文链接http://www.cnblogs.com/arfeizhang/p/faceoff.html,谢谢!

服务过美国总统竞选的非传统投票UI【demo已放出】的更多相关文章

  1. 服务过美国总统竞选的非传统投票UI [解析及DEMO]

    上篇文章和大家介绍了需求情况和难点分析,大家可以看这个链接了解详细    服务过美国总统竞选的非传统投票UI      =================正文开始=================== ...

  2. 美国总统大选,黑客组织“匿名者”(Anonymous)也来凑热闹

    美国总统大选,黑客组织"匿名者"(Anonymous)也来凑热闹 黑客组织"匿名者"向美国总统共和党候选人唐纳德•特朗普宣战,发誓将从4月1日开始向其发动大规模 ...

  3. SPSS分析技术:无序多元Logistic回归模型;美国总统大选的预测历史及预测模型

    SPSS分析技术:无序多元Logistic回归模型:美国总统大选的预测历史及预测模型 在介绍有序多元Logistic回归分析的理论基础时,介绍过该模型公式有一个非常重要的假设,就是自变量对因变量多个类 ...

  4. 枚举--让盗版美国总统wcc给你整明白哈哈

    1.为什么要有枚举 Java中的枚举其实是一种语法糖,在 JDK 1.5之后出现,用来表示固定且有限个的对象.比如一个季节类有春.夏.秋.冬四个对象:一个星期有星期一到星期日七个对象.这些明显都是固定 ...

  5. WCF 无法激活服务,因为它不支持 ASP.NET 兼容性。已为此应用程序启用了 ASP.NET 兼容性

    无法激活服务,因为它不支持 ASP.NET 兼容性.已为此应用程序启用了 ASP.NET 兼容性.请在 web.config 中关闭 ASP.NET 兼容性模式,或将 AspNetCompatibil ...

  6. C#/.NET基于Topshelf创建Windows服务的守护程序作为服务启动的客户端桌面程序不显示UI界面的问题分析和解决方案

    本文首发于:码友网--一个专注.NET/.NET Core开发的编程爱好者社区. 文章目录 C#/.NET基于Topshelf创建Windows服务的系列文章目录: C#/.NET基于Topshelf ...

  7. WCF 无法激活服务,由于它不支持 ASP.NET 兼容性。已为此应用程序启用了 ASP.NET 兼容性

    作者:jiankunking 出处:http://blog.csdn.net/jiankunking 错误信息: 无法激活服务.由于它不支持 ASP.NET 兼容性.已为此应用程序启用了 ASP.NE ...

  8. Python计算美国总统的身高并实现数据可视化

    代码如下: import numpy as np import pandas as pd import matplotlib.pyplot as plt data=pd.read_csv('presi ...

  9. 开源微信管家平台——JeeWx 捷微4.0 微服务版本发布,全新架构,全新UI,提供强大的图文编辑器

    JeeWx捷微4.0   微服务版本发布^_^ 换代产品(全新架构,全新UI,提供强大的图文编辑器) JEEWX 从4.0版本开始,技术架构全新换代,采用微服务架构,插件式开发,每个业务模块都是独立的 ...

随机推荐

  1. 安装php的memcache扩展

    linux: 安装环境 RHEL 4 Php 5.2.6 所需软件 libevent-1.4.6-stable.tar.gz (http://monkey.org/~provos/libevent/) ...

  2. 优先队列(priority_queue)的cmp,POJ(2051)

    sort()函数的cmp为函数,priority_queue的cmp为类,具体写法是: struct Node { int i,j; } node[]; struct cmp { bool opera ...

  3. 【转】Android UI开发第二十四篇——Action Bar

    Action bar是一个标识应用程序和用户位置的窗口功能,并且给用户提供操作和导航模式.在大多数的情况下,当你需要突出展现用户行为或全局导航的activity中使用action bar,因为acti ...

  4. nvl()函数和nvl2()函数

    如果你某个字段为空,但是你想让这个字段显示0,可以使用nvl(字段名,0),当然这个0也可以换成其他东西,如:1,2,3…… 一 NVL(表达式1,表达式2) 如果表达式1为空值,NVL返回值为表达式 ...

  5. v-if

    vue中通过v-if,v-else-if,v-else的对应的Boolean值来操作元素在dom中是否移除. 这里就以单纯的true,false来模拟一下.注:标签属性去出来的值为string类型. ...

  6. 第34-2题:LeetCode113. Path Sum II

    题目 给定一个二叉树和一个目标和,找到所有从根节点到叶子节点路径总和等于给定目标和的路径. 说明: 叶子节点是指没有子节点的节点. 示例: 给定如下二叉树,以及目标和 sum = 22, 5 / \ ...

  7. 牛客小白月赛1 I あなたの蛙が帰っています 【卡特兰数】

    链接:https://www.nowcoder.com/acm/contest/85/I题目描述 あなたの蛙が帰っています!  蛙蛙完成了一趟旅行,回家啦!但它还是没有去它心中非常想去的几个地方.总共 ...

  8. poj_2689_Prime Distance

    The branch of mathematics called number theory is about properties of numbers. One of the areas that ...

  9. Zeppelin interperter 模式设置总结图解1

    如有错漏,望请指正,不胜感激. 参考:[zeppelin官网]:https://zeppelin.apache.org/docs/latest/interpreter/spark.html#inter ...

  10. Linux(CentOS6.5 x64)下版本安装及升级kangle+EasyPanel

    说明:(easypanel集成了kangle web 服务器和mysql,仅支持centos 5和centos 6) .执行下面的命令即可,安装程序将自动安装或者升级: yum -y install  ...