Essential controls for web app
AUTO-COMPLETE/AUTO-SUGGEST
Auto-complete using Vaadin
Offer auto-suggest or auto-complete to help your users increase efficiency and reduce errors. You can even create a grouped and formatted set of suggestionslike Apple does.
CAROUSEL/COVERFLOW
Carousel by Moving Boxes
Controls for sliding content include carousels, coverflows, sliders, and slideshows and are available in almost every framework. JQuery has a variety of plugins for many different variations of the simple carousel. All of these variations provide a nice solution for browsing and reviewing visual content. Remember to offer a stop or pause button if you implement auto-play.
CALENDAR/SCHEDULER
Telerik RadScheduler for Silverlight
Need a full blown event scheduler? You do not want to ask your development team to code one of these beasts from scratch.
There are a number of functional Ajax ones available, all of which could benefit from some CSS love. Flex, OpenLaszlo and Telerik Rad Controls for Silverlight now have this control too.
CHARTS AND GRAPHS
Flash charts on Discover Spend Analyzer
Some frameworks include charts, like Ext JS, Flex, Telerik, and SmartClient. But I have resorted to Flash charting libraries to create really rich experiences. Popular libraries include AnyChart, Dundas, JFreeChart, amCharts, Visifire for Silverlight. Lists of chart libraries are available: 28 on InsideRIA, and 70+ on TripWire. See ‘Sparklines’ for micro-charts.
COLLAPSIBLE PANELS
Inlay panel on the BBC
Lots of controls fall in this category including: page slides, inlay and overlay panels, accordions, and collapsible panels that allow for more than one section to be expanded at a time. These controls provide a slick alternative to dialogs.Mint, SproutBuilder and SlideRocket all have great examples to explore.
COMBOBOX: MULTISELECT
asmSelect, a JQuery plugin
Instead of displaying an ocean of checkboxes, or a cumbersome ctrl+shift+click list box, use a control that lets users see what they have selected. This control works and fits wonderfully in pages with filter criteria on the right and results on the right. None of the frameworks offer this control yet, but there is this jQuery plugin.
DATE PICKER: ADVANCED
MooTools Plugin
You may encounter a scenario where the standard date picker is not enough. Many of these frameworks support one or more advanced features for the date picker control including: date range selection, date and time, multi-month views, and excluded dates.
DIAGRAMMER
KapIT Diagrammer
An advanced control for letting uses construct diagrams, like flow charts, organization maps, process diagrams, etc. yFiles has versions for Flex,
.Net and Ajax. And KapITLabshas a Flex/Flash version available.DIALOG
Picnik Modeless Dialog
There are also many variations on the simple dialog control: the lightbox, modal dialogs, modeless dialogs, and hover dialogs (see ‘Hover Details’ below). All of these frameworks offer at least one version of a dialog. See ‘Collapsible Panels’ for alternatives to dialogs.
DOCKABLE PANELS AND TOOLBARS
Dockable Palettes in SproutBuilder
Dockable palettes and toolbars are indispensable controls for maximizing and/or customizing a canvas workspace where real estate is tight.
DRAG AND DROP MANAGER
Drag and drop demo with Ext JS
If your design requires drag and drop, review Bill Scott’s Interaction Matrix. Then play with the Ext JS organizer demo, they nailed the interaction design. The only thing missing is a drag handle on the photos.
DYNAMIC FILTER
Adaptive filtering with SmartClient
Dynamic filtering can work well with lists, above grids, and in grid columns. We have found that in-column filtering in tables can can provide powerful refining options for users who are working with large quantities of data. Ideally a clear button should be available within the text field to clear the input. This control can be added to most grids, even if your framework doesn’t offer it out-of-the-box.
FEEDBACK
Feedback on Picnik
Gotta have feedback: errors, info, status messages and tips. Put the feedback at the top of the page or in proximity to the action. Avoid using the status bar in the web browser as many people have it hidden. If you are fading feedback in or out, use the 2 second rule.
FISHEYE
This is the one true fisheye effect I have found for the web. An elegant option for looking a little closer. Works well for maps and very busy charts. Also see ‘Zoom and Pan’ and ‘Magnify’ as alternatives.
FLOATING FOOTER
Footer in Facebook
A floating footer (or header like thesixtyone) may be a good solution for displaying persistent options or actions. Most of these frameworks provide a way to code this. Asp.net Ajax has a simple demo for pinning a control in place.
GANTT CHART
Gantt in Tour de Flex
Occasionally the need for a gantt chart arises, primarily for scheduling and planning. EyeBlaster Campaign Manager even figured out an amazing way to create a campaign monitoring dashboard on a gantt. But like the ‘Calendar/Scheduler’ and Table/Data Grid’ controls, this is a control best already coded. ILog Elixir provides one for Flex, and there are a number of early versions written with Ajax.
GROWING TEXTAREA
MooTools Plugin
Don’t know how much the user is going to type? Start with a reasonable default size and let it grow with the entry. Refer to Facebook for another live example.
Some of these frameworks also offer a resize-able text area, which can be manually resized. But the growing textarea seems to be more efficient for seamless data entry.
HOTKEYS/KEYBOARD SHORTCUTS
Keyboard shortcuts in Noteflight
I love you Noteflight. You make my work easy by providing keyboard shortcuts for common actions.
Don’t you want to hear your users say that to you? More importantly, do you want to hear what they say when you don’t provide hotkeys? It’s not nice…
HOVER ACTIONS
MockLinkr uses hover actions to link, comment or delete a hotspot
Hover actions are a great alternative to repeating the same button a hundred times. All of these frameworks support the ability to code hover actions using css. Remember to provide affordance, a visual cue that these actions exist. A tour invitation is a good way to expose these somewhat “hidden” actions.
HOVER DETAILS
Trulia provides details on hover
Displaying extra detail on hover is a great way to “stay on the page”. Avoid the anti pattern of hover and cover (don’t display the details over the primary action).
Works best for read-only data. If you have input fields, tabs or other heavy interactions use a dialog, an inlay panel or overlay panel. If you must display a link in your hover detail, set a timer so the user has a sporting chance to click the link before the whole thing disappears.
INLINE EDIT
Inline editing on FLickr
Look at the experience you are designing- are you optimizing for data entry or reading/scanning? If you are optimizing for readability, inline editing can help by removing the visual noise of all those input containers. Some of these frameworks provide this control as a default- take a look at their CSS and JS. This is an invaluable control for improving efficiency and keeping the user in the flow. For advanced application design- if you already have behaviors tied to a field, imitate the way the desktop handles inline editing- click once to select the object, click again to enter edit mode (note, this is different than double clicking).
LIST: ADVANCED
Drag and drop reordering on Tick
Just like we expect more from tables and trees than we did during Web 1.0, lists have to behave more richly now too. Drag and drop reordering, simple list building, custom formatting, and dynamic filtering are all features that can make your list easier to use.
MAGNIFY
jQZoom magnifies an image
An excellent alternative to opening a dialog, the magnify control shows a larger version of the area the mouse is over. Few of the frameworks offer this control out of the box, but it can be imitated. Also see ‘Fisheye’ and ‘Zoom and Pan’ for ideas.
MAPPING
GWT- Ext Maps Showcase
Many applications need to integrate mapping APIs like Google or Yahoo Maps, the Google Web Toolkit -Ext Showcase has a number of well designed variations worth exploring, as does Flex- just search the Tour de Flex for ‘maps’.
MULTIPLE DOCUMENT INTERFACE
Mocha UI’s MDI
Some applications are well suited for a MDI. The MochaUI framework, as well as a few others, provide this control. But consider leveraging the browser’s tab functionality before going down this path.
PORTALS
Portal demo on the GWT-Ext Showcase
A portal layout may be a good solution for designing a landing page where the user wants to see content in a certain format and configuration. But remember, providing a high degree of customization is no substitute for user research and testing.
The BBC and Netvibes have well designed portals you can play with.
PROGRESS INDICATOR
Loading bar on Discover Spend Analyzer
Progress indicators can be anything from loading bars to spinning icons to busy cursors. Your best bet is to look at how other good RIAs and desktop apps that indicate progress for situations similar to what you are designing.
RATING
Ajax star rating bar
Rating is similar to inline editing in that it allows the user to quickly and efficiently input information without leaving the page or shifting context.
Rating should not be confused with ranking which would use a control like the ‘List- Advanced’ where the objects can be reordered by dragging.
RECORD LOCATOR/ PAGINATOR
Paging Grid example Ext JS
Most tables/grids can and should use live scrolling/ virtual scrolling for navigation. However there are lots of places paging is quite useful, and you can use a paging control. For example, opening a record to review and edit- include a paging control to navigate to other records.
RULE BUILDER/PREDICATE EDITOR
Advanced Filter control from SmartClient
This is overkill for most web applications, but if you are designing advanced analytics, searching or reporting tools, you’ll probably need this control. SmartClient Ajax RIA System provides one, and expect to see more frameworks offering this control now that iTunes has introduced a similar feature.
SLIDER
Sliders are useful controls for letting people select rough values, like louder or quieter, higher or lower, or ranges. They are not the best controls for selecting specific values, like 37% or $211 dollars. If you use a slider, choose one that provides keyboard navigation and/or additional input fields for tweaking the value.
SCOPED SEARCH
Scoped Search on Kontain
Let you users get directly to the content they want with a scoped search. Make it an option that doesn’t interfere with typing in the field. Usually set the default search to All or Everything and let them scope it. Janko has a nice tutorial for implementing this with css.
SPARKLINES
Sparklines at Google Analytics
Sparklines are the perfect way to show the trend or shape of data in a small space. Created by the data visualization mater, Edward Tufte.
There are numerous libraries out there that support sparklines for Ajax, Flex,Silverlight
SPLITTER
Splitters in MochaUI
The splitter provides a way for the user to adjust the screen layout. Remember to show the appropriate cursors when hovering and pushing. Other good examples are Google Reader, and desktop applications like Windows Explorer or iTunes.
TABS: ADVANCED
Rolling tabs at Coda.com
Before you decide on tabs, read Jakob Nielsen’s article Tabs Used Right. Tabs are for alternating views of the same context.
TABLE/GRID: ADVANCED
Grids by ExtJS
When you are designing for a grid, stick with the standards. Pretty much everything your users need has already been designed for. ExtJS has a very well designed grid with many of the advanced features, such as: live scroll, resize-able and rearrangeable column headers, sorting, hiding and showing columns, row grouping (like a tree table), inline editing, and row selection. Do not roll your own grid- it will take hundreds of hours to code and test for cross browser compatibility.
TREE: ADVANCED
Advanced Tree in ExtJS
If your design calls for a tree, use a rich one. ExtJS and Flex have the best trees with full functionality for adding nodes, editing inline, and dragging to reorganize. Also see ‘Vertical Browse’ for a lightweight control to navigate a hierarchy from variable starting points.
TOOLBARS
Contextual toolbars in Buzzword
Toolbars are a must have for almost every design that relies on a data grid. Bulk actions can live in the toolbar, as well as global actions like Share, Print, Export… Avoid toolbars and menu bars with drop down or cascading menus. Experiment instead with rich controls in your design like ‘Hover Actions’, ‘Inline Editing’. Try to offer more direct interactions and less navigation.
Contextual toolbars are another rich control. They expose controls in the context of a particular flow, instead of everything at once. Picnik has the best contextual toolbar I’ve seen.
TOOLTIPS: ADVANCED
MooTools plugin
Advanced tooltips can provide a wide array of formatting options. See ‘Hover Details’ for displaying more information on hover.
VERTICAL BROWSER
Vertical browser for Apple’s Dashboard Widgets
Concise control for letting a user pick a starting point and navigate a hierarchy to make a selection. Can be made by connecting list boxes in most of these frameworks. Make sure to show the selection path for context.
Mint just added a similar control to the Trends module for selecting a chart type.
VIEW TOGGLE
Icons per page toggle on Icon Finder
Mutually exclusive toggle for selecting a view, like table or graph, or display options like 10, 20 or 50 results per page. Can be created from any of the frameworks. Make sure the selected option is visually distinct from the others.
WYSIWYG/ RICH TEXT EDITOR
YUI 2 Rich Text Editor
For composing or editing large bodies of text, a WYSIWYG editor provides the tools people have come to expect. Many of the frameworks include this control with fully customizeable features. CMS systems are now on board with this and have integrated rich text editors directly into their screens, see InContext and theDrupal redesign.
ZOOM AND PAN
Zoom and Pan with a Flex extension
You don’t need to know how to code these controls- just that they exist and the best practices for using them. You can imagine a scenario where instead of laboring over detailed wireframes with extensive interaction notes, you say “it’s just like the inlay panel BBC uses to customize the portals on the home page” and “JQuery has a great plugin for it”. Think of the time you’ll save and the credibility you’ll build with your team.
For maps, photos and drawing canvases, panning can replace scrollbars and provide a more natural experience for sliding information in and out of view. See also ‘Magnify’ and ‘Fisheye’ for other techniques.
Essential controls for web app的更多相关文章
- [转] Creating a Simple RESTful Web App with Node.js, Express, and MongoDB
You can find/fork the sample project on GitHub Hey! This and all my other tutorials will soon be mov ...
- Azure 部署 Asp.NET Core Web App
在云计算大行其道的时代,当你在部署一个网站时,第一选择肯定是各式各样的云端服务.那么究竟使用什么样的云端服务才能够以最快捷的方式部署一个 ASP.NET Core 的网站呢?Azure 的 Web A ...
- 如何用Azure Web App Services接入微信公众号
注:本文提到的代码示例下载地址>如何用Azure Web App Services接入微信公众号 如何用Azure Web App Services接入微信公众号 简介 此示例演示如何创建Azu ...
- .net core 源码解析-web app是如何启动并接收处理请求(二) kestrel的启动
上篇讲到.net core web app是如何启动并接受请求的,下面接着探索kestrel server是如何完成此任务的. 1.kestrel server的入口KestrelServer.Sta ...
- .net core 源码解析-web app是如何启动并接收处理请求
最近.net core 1.1也发布了,蹒跚学步的小孩又长高了一些,园子里大家也都非常积极的在学习,闲来无事,扒拔源码,涨涨见识. 先来见识一下web站点是如何启动的,如何接受请求,.net core ...
- web app开发技巧总结 (share)
(转自http://hi.baidu.com/kuntakinte/item/ca92d6e5edae9fc0bbf37d08) 自Iphone和Android这两个牛逼的手机操作系统发布以来,在互联 ...
- Web APP 之rem的使用
移动端web app的开发,之前开发直接使用px像素做单位,这样子做对于传统的PC端开发来说,个人比较习惯,但是对于移动端在来,有说逞强.最明显是切图效果与设计师想达到的效果有些差距,比如<he ...
- 移动web app开发必备 - 异步队列 Deferred
背景 移动web app开发,异步代码是时常的事,比如有常见的异步操作: Ajax(XMLHttpRequest) Image Tag,Script Tag,iframe(原理类似) setTimeo ...
- 移动web app开发必备 - Deferred 源码分析
姊妹篇 移动web app开发必备 - 异步队列 Deferred 在分析Deferred之前我觉得还是有必要把老套的设计模式给搬出来,便于理解源码! 观察者模式 观察者模式( 又叫发布者-订阅者模 ...
随机推荐
- Splinter学习——不仅仅是自动化测试哦
前两天,想抢购一个小米MIX,结果,一开始抢就没有了.于是想,作为程序猿,总得有点特殊手段吧,比如说一个小脚本.最近在学习python,百度了一下,发现了Splinter这个强大的东东!用了不到两小时 ...
- Django框架-目录文件简介
Rhel6.5 Django1.10 Python3.5 Django框架-目录文件简介 1.介绍Django Django:一个可以使Web开发工作愉快并且高效的Web开发框架. 使用Django, ...
- 忘记mysq rootl密码
忘记mysq rootl密码 1 mysql忘记root密码 1.1 查看mysql的进程 [root@mysql data]# cat /data/mysql.localdoma ...
- centos下建立双机信任关系
在有些情况下,我们希望在两台centos机器之间建立ssh连接的时候,可以不用输入密码.最常见的情况就是在使用脚本做数据库备份的时候.这种情况下,我们可以通过公钥/私钥来建立双机之间的信任关系. 网上 ...
- Xcode最好用的日志打印方法
一般打印日志都是用的系统自带的NSLog来打印的,假如项目做完了,要上线了,这些打印的日志就会很浪费性能,网上有很多的解决办法,我也是感觉网上的还是有点不方便,所以就自己又修改了一下,分享给大家. 网 ...
- head标签详细讲解
head标签详细讲解 head位于html网页的头部,后前的标签,并以开始以结束的一html标签. Head标签位置如图: head标签示意图 head包含标签 meta,title,link,bas ...
- 使用AFNetWorking上传图片
AFHTTPSessionManager *manager = [AFHTTPSessionManager manager]; NSString *string ...
- Android基础学习第一篇—Project目录结构
写在前面的话: 1. 最近在自学Android,也是边看书边写一些Demo,由于知识点越来越多,脑子越来越记不清楚,所以打算写成读书笔记,供以后查看,也算是把自己学到所理解的东西写出来,献丑,如有不对 ...
- 使用Azure REST API创建虚拟机
Hollis Yao, Shihao Rong 使用REST API创建虚拟机之前,首先要确保Azure订阅中已经建好了"云服务"和"存储账号".如果没有的话 ...
- PyQt5+Python3.5.2-32bit开发环境搭建
1.基本环境. Window 8.1 64bit Python3.5.2-32bit.exe PyQt5 2.安装python. 去官网下载32位版本的python3.5.2(就是x86那个) 备 ...