最新的 Javascript 和 CSS 应用技巧荟萃

随着前端技术的发展,javascript和css在 网站和web应用中展现出强大的统治力,特别是随着HTML5和CSS3的标准的成熟,我们可以使用javascript和css开发出你想都没有想到过 的特效和动画,在今天的这篇文章中,我们将介绍一组相关CSS和javascript的强大教程和插件,希望大家喜欢!

CSS动画和过渡效果

随着CSS3标准的来到,CSS过渡效果和动画效果常常应用到互动的用户体验中,设计师可以通过CSS创建出令人惊叹的效果和体验,这里我们将挑选最棒的特效,希望大家能够从中受益。

使用jQuery和CSS3创建一个全屏幕幻灯效果

使用jQuery和CSS3创建一个全屏幕幻灯效果

分享使用jQuery和CSS实现的一个超酷缩略图悬浮逼近效果

介绍一个使用jQuery实现的缩略图逼近效果。主要的想法是当鼠标接近缩略图后,当前的缩略图会放大,并且周围相邻的缩略图也会相应变大一些,当你移动鼠标时,会影响移动方向上的缩略图大小变化

分享使用jQuery和CSS实现的一个超酷缩略图悬浮逼近效果

互动的CSS3光线效果

使用3D变形,CSS梯度和Mask来来实现的光线效果,使用box-shadow和transform实现的阴影。

CSS3 12面体

一个超棒的实验12面体,使用CSS变形和js脚本生成

CSS 3D 光线引擎

一个使用webkit对象实现的JavaScript类库可以添加简单的光线效果到DOM元素,同时你也可以添加其它引擎

3D Thumbnail Hover Effects With CSS

使用CSS3 3D变形生成的折叠效果,超棒并且整洁的动画效果

Slide In Image Boxes

当悬浮对象后创建滑进效果

CSS3 bitmap graphics

使用CSS生成的bitmap图形,没有图片,没有canvas,没有其他标签,使用CSS梯度来生成界面

Paperfold CSS

一个折叠效果的留言插件。

Beercamp: An Experiment With CSS 3D

一个帮助你了解SVG和CSS能够实现什么效果的文章。

Covers: A JS / CSS Experiment

使用CSS和javascript生成的音乐封面

Animation on Apple’s page

apple网站的iPhone 4S页面上应用的效果

Experimental animations for image transitions

一个3d图形过度效果,使用CSS3动画和jQuery

Maintaining CSS style states using “infinite” transition delays

这个演示允许你使用d-pad来移动角色,没有使用任何javascript。主要效果使用无限的过渡效果延迟。

CSS 3-D clouds

使用js和CSS3变形创建的3D云

动画弹出个人信息框

使用css过渡来实现的动画弹出profile菜单

Animated Profile Popover With CSS

CSS3 scrolling effects

各种滚动效果的类库,例如,curl,波浪,反转,飞行等等,使用CSS3和js实现。

CSS3 Scroll Effects

Spin those icons with CSS3

一个简单的创建干净并且滚动的社交图标的文章

Scrolling the Z Axis with CSS 3D Transforms

如何创建z-scroll效果的文章

实用的CSS技巧

CSS3 Family Tree

不使用flash或者javascript,而只使用CSS显示组织结构和家族图谱的演示 ,拥有悬浮效果。一定要看看这个文章Introduction to CSS Pseudo Element Hacks.

CSS3 Family Tree

iOS-style popover

一个简单的生成ios选择框及其悬浮效果的技巧。

iOS-style Popover

Timeline-Style Comments

一个干净并且简单的技巧来展示时间轴类型的留言方式

CSS Table Grid

非常棒的一个用来对齐列的技巧。

CSS Table Grid

Confirmation Feedback Buttons

这个文章介绍了如何根据不同状态来创建按钮的技巧。

纯CSS实现的3D简洁按钮设计

纯CSS实现的3D简洁按钮设计

分享来自Zocial的72个超棒免费CSS3按钮

分享来自Zocial的72个超棒免费CSS3按钮

A calendar in CSS3 and jQuery

一个帮助你使用一些jQuery动画创建CSS3日历的教程。

Outdenting properties for debug CSS

学习如何debug CSS,一个简单的技巧就是标志一个CSS属性做为临时属性或者debug属性,然后将它添加到0列中去。

Outdenting properties for debug CSS

Show Markup in CSS Comments

如何添加一些基本的标签到CSS注释中去的一篇文章

Show Markup in CSS Comments

Selectively displaying data

这个技巧展示了如何选择性的显示内容,并且添加响应式的断点来创建响应式的,复杂的多列表。

Remove Margins for First/Last Elements

如果你想删除顶端或者左边的margin,或者右边,下面的magin,你可以使用:first-child和:last-child

CSS Diagnostics Stylesheet

一个非常有用的代码片段帮助你debug你的CSS,或者找到HTML中的错误

Radio Buttons With Two-Way Exclusivity

学习:empty伪类选择其和jQuery,保证当你点击一个radio按钮的时候,其他列都关闭

Radio Buttons with 2-Way Exclusivity

Tabbed Navigation With CSS

一个优雅的带有下拉菜单的tab导航菜单 ,没有javascript。非常干净的解决方案。

Tabbed Navigation With CSS

Menu With Notification Badges With CSS

一个实用的代码片段用来生成带有通知标识的导航菜单。

Menu with Notification Badges With CSS

Styling based on sibling count (slides)

一个超棒的基于sibling计算的样式。非常实用的技巧。

Styling based on sibling count (Slides)

Stuff you can do with the “Checkbox Hack”

使用checkbox hack技术,你可以使用一个连接label和checkbox来控制其它页面元素 。

CSS3 Facebook Buttons

Nicolas Gallagher开发了一套不同颜色的facebookCSS按钮,大家也可以看看CSS3 Social Sign-In buttonsFree Social CSS3 Buttons

YouTube Popup Buttons

这篇文章讲解了如何创建缺省状态的youtube按钮,拥有非常简单的细微边框斜面并且:hover和:focus时展示

YouTube Popup Buttons

Centering in the Unknown

Chris教你如何实现居中web设计,对于父元素越了解,你就约容易的实现居中。

Micro Clearfix: Force Element To Self-Clear its Children

Chris Coyier 教你几个常用技巧来强制自清理子元素,包含了Nicolas Gallagher的代码片段

Conditional CSS

一个非常不错的技巧帮助你条件式的加载内容。

* { box-sizing: border-box } FTW

一旦你开始在CSS混合匹配各种不同单位, 例如,使用%来设定宽度,em设定padding,px设定border,你肯定遇到box-model问题,你可以使用box-sizing:broder-box来解决,这个IE8支持。

Multiple Attribute Values

如何不使用class来处理多属性值

Diagonal CSS Sprites

使用diagonal来创建sprite。

Double Click in CSS

有没有方法在mobile上检测是否是tap还是双击?阅读这篇文章你就可以了解!

Replacing the -9999px hack (new image replacement)

用来隐藏文本的代码

Fighting the Space Between Inline Block Elements

如何处理inline元素间的小空间,这里chris coyier将讲解几个小窍门

CSS pointer-events and a pure CSS3 animating tooltip

pointer-event属性允许你指定鼠标如何和元素接触的互动方式。看看我们什么时候可以使用它。

Anatomy of a mobile-first responsive Web design

一个来自Brad Frost的如何设计超棒响应式设计的文章 。如何开始?你需要执行什么样的功能?如何使用本地存储和appcache来优化?

SouthStreet Progressive Enhancement Workflow

超棒的响应式设计相关工具。你绝对会用的到!

这里我们收集最新的CSS悬浮和导航特效,希望大家能够喜欢!

分享5个来自tympanus的超炫图片幻灯效果和教程

Tympanus是一个超酷的前端技术博客,经常发布超酷的前端特效教程,今天小编我给大家推荐五个超酷的幻灯效果,希望大家能有机会用在自己的网站和项目中

分享5个来自tympanus的超炫图片幻灯效果和教程

Circle Navigation Effect With CSS3

一个气泡式的CSS3导航

Create a CSS3 Image Gallery With a 3D Lightbox Animation

扩展使用CSS的lightbox画廊,添加了一些hover特效,3D内容旋转 ,全部使用CSS

3D Gallery With CSS3 and jQuery

一个纯3D实现的画廊。 这里查看中文教程

Creative CSS3 animation menus

Mary lou展现给你超酷的导航菜单特效。

How to spice up your menu with CSS3

另外一个超酷的悬浮特效,这里查看中文教程

Create a zoomable user interface

如何使用css transform来创建一个可缩放的CSS3界面

Flipboard Navigation

一个实验性的页面布局

Multi-direction hover

不同方向的hover效果展示

Experimental Hover Effects

悬浮效果的实验性展示

Over-the-top hover effect

CSS和js技巧用来创建顶层的悬浮效果,使用transfomr-origin和transform-style属性及其3D属性。

Accordion With CSS3

来自Mary lou的accordion文章,使用纯CSS3实现。

Expanding Text Areas Made Elegant

一个可自动扩展的textarea实现

Filter Functionality With CSS3

使用CSS3实现的过滤特效

An accessible, keyboard-friendly custom select menu

一个新的方式来实现更强的可用性。

视觉技巧

我们在web开发中使用很多图片和视觉元素来创建特定的效果,使用CSS3,我们不但能够提高加载速度,也可以是的视觉效果更加突出!

Create the Illusion of Stacked Elements with CSS3 Pseudo-Elements

创建一个图片叠加效果的特效

CSS3 Unfold Map with Pins

一个CSS3实现地图标示的代码片段。

Android 下个版本开发代号或为 Kandy Cane

对于某些人来说寻找系统的彩蛋是非常有意义的事情,自Android 2.3 Gingerbread之中Google就开始加入了各种丰富有趣的彩蛋。不过根据最新发布的Android 4.1 Jelly Bean的最大彩蛋:Android版本的命名方式。首先我们来看看下面版本有没有什么规律,想必大家一眼就看到了这其实是按照字母排列来对系统版本进行命名,

• Cupcake
• Donut
• Eclair
• FroYo
• Gingerbread
• Honeycomb
• Ice Cream Sandwich
• Jelly Bean

对此我们可以很容易的猜想到接下来的版本是什么,很有可能就是“Kandy Cane”,不过就不知道Google是怎么想的啦 。

28 个 Unix/Linux 的命令行神器

下面是Kristóf Kovács收集的28个Unix/Linux下的28个命令行下的工具(原文链接),有一些是大家熟悉的,有一些是非常有用的,有一些是不为人知的。这些工具都非常不错,希望每个人都知道。本篇文章还在Hacker News上被讨论,你可以过去看看。我以作者的原文中加入了官网链接和一些说明。

查看网络流量的一个工具

官方网站:  Simple Linux Utility for Resource Management

 

vim & emacs

真正程序员的代码编辑器。

screen, dtach, tmux, byobu

你是不是经常需要 SSH 或者 telent 远程登录到 Linux 服务器?你是不是经常为一些长时间运行的任务而头疼,比如系统备份、ftp 传输等等。通常情况下我们都是为每一个这样的任务开一个远程终端窗口,因为他们执行的时间太长了。必须等待它执行完毕,在此期间可不能关掉窗口或者断开连 接,否则这个任务就会被杀掉,一切半途而废了。

Screen是 一个可以在多个进程之间多路复用一个物理终端的窗口管理器。Screen中有会话的概念,用户可以在一个screen会话中创建多个screen窗口,在 每一个screen窗口中就像操作一个真实的telnet/SSH连接窗口那样。请参看IBM DeveloperWorks的这篇文章《使用 screen 管理你的远程会话

gnu screen screenshot

dtach 是用来模拟screen的detach的功能的小工具,其可以让你随意地attach到各种会话上 。下图为dtach+dvtm的样子。

tmux是一个优秀的终端复用软件,类似GNU Screen, 但来自于OpenBSD,采用BSD授权。使用它最直观的好处就是,通过一个终端登录远程主机并运行tmux后,在其中可以开启多个控制台而无需再“浪 费”多余的终端来连接这台远程主机;当然其功能远不止于此。与screen相比的优点:可以横向和纵向分割窗口,且窗格可以自由移动和调整大小。可在多个 缓冲区进行复制和粘贴,支持跨窗口搜索;非正常断线后不需重新detach;……  有人说——与tmux相比,screen简直弱爆了

multitail

MultiTail是个用来实现同时监控多个文档、类似tail命令的功能的软件。他和tail的区别就是他会在控制台中打开多个窗口,这样使同时监控多个日志文档成为可能。他还可以看log文件的统计,合并log文件,过滤log文件,分屏,……。

官网:http://www.vanheusden.com/multitail/

tpp

终端下的PPT,要是在某某大会上用这个演示PPT,就太TMD的Geek了。

官网:http://www.ngolde.de/tpp.html

xargs & parallel

Executes tasks from input (even multithread).

xargs 是一个比较古老的命令,有简单的并行功能,这个不说了。对于GNU parallel ( online manpage )来说,它不仅能够处理本机上多执行绪,还能分散至远端电脑协助处理。而使用GNU parallel前,要先确定本机有安装GNU parallel / ssh / rsync,远端电脑也要安装ssh。

duplicity & rsyncrypto

Duplicity是使用rsync算法加密的高效率备份软件,Duplicity支持目录加密生产和格式上传到远程或本地文件服务器。

rsyncrypto 就是 rsync + encryption。对于rsync的算法可参看酷壳的rsync核心算法

Encrypting backup tools.

nethack & slash’em

NetHackWiki),20年历史的古老电脑游戏。没有声音,没有漂亮的界面,不过这个游戏真的很有意思。网上有个家伙说:如果你一生只做一件事情,那么玩NetHack。 这句话很惹眼,但也让人觉得这个游戏很复杂不容易上手。其实,这个游戏很虽然很复杂,却容易上手。虽然玩通关很难,但上手很容易。NetHack上有许多 复杂的规则,”the DevTeam thinks of everything”(开发团队想到了所有的事情)。各种各样的怪物,各种各样的武器….,有许多spoilers文件来说明其规则。除了每次开始随机 生成的地图,每次玩游戏,你也都会碰到奇怪的事情: 因为喝了一种药水,变成了机器人;因为踢坏了商店的门被要求高价赔偿;你的狗为你偷来了商店的东西….. 这有点象人生,你不能完全了解这个世界,但你仍然可以选择自己的面对方式。

网上有许多文章所这是最好的电脑游戏或最好的电脑游戏之一。也许是因为它开放的源代码让人赞赏,古老的历史让人宽容,复杂的规则让人敬畏。虽然它不是当前流行的游戏,但它比任何一个当前流行的游戏都更有可能再经受20年的考验。

Slash’EM 也是一个基于NetHack的经典游戏。

lftp

利用lftp命令行ftp工具进行网站数据的增量备份,镜像,就像使用rsync一样。

ack

ack是一个perl脚本,是grep的一个可选替换品。其可以对匹配字符有高亮显示。是为程序员专门设计的,默认递归搜索,省提供多种文件类型供选。

calcurse & remind + wyrd

calcurse是一个命令行下的日历和日程软件。remind + wyrd也很类似。关于日历,我不得不提一个Linux的Cycle日历,也是一个神器,呵呵。

newsbeuter & rsstail

newsbeuter rsstail 是命令行下RSS的阅读工具。

powertop

做个环保的程序员,看看自己的电脑里哪些程序费电。PowerTOP 是一个让 Intel 平台的笔记本电脑节省电源的 Linux 工具。此工具由 Intel 公司发布。它可以帮助用户找出那些耗电量大的程序,通过修复或者关闭那些应用程序或进程,从而为用户节省电源。

ttyrec & ipbt

ttyrec 是一个 tty 控制台录制程序,其所录制的数据文件可以使用与之配套的 ttyplay 播放。不管是你在 tty 中的各种操作,还是在 tty 中耳熟能详的软件,都可进行录制。

ipbt 是一个用来回放 ttyrec 所录制的控制台输入过程的工具。

与此类似的还有Shelr 和 termrec 

rsync

通过SSH进行文件同步的经典工具(核心算法

mtr

MTR – traceroute 2.0,其是把 traceroute 和 ping 集成在一块的一个小工具 用于诊断网络。

socat & netpipes

socat是一个多功能的网络工具,名字来由是” Socket CAT”,可以看作是netcat的N倍加强版。

netpipes 和socat一样,主要是用来在命令行来进行socket操作的命令,这样你就可以在Shell脚本下行进socket网络通讯了。

iftop & iptraf

iftopiptraf可以用来查看当前网络链接的一些流量情况。

siege & tsung

Siege是一个压力测试和评测工具,设计用于WEB开发这评估应用在压力下的承受能力:可以根据配置对一个WEB站点进行多用户的并发访问,记录每个用户所有请求过程的相应时间,并在一定数量的并发访问下重复进行。

Tsung 是一个压力测试工具,可以测试包括HTTP, WebDAV, PostgreSQL, MySQL, LDAP, and XMPP/Jabber等服务器。针对 HTTP 测试,Tsung 支持 HTTP 1.0/1.1 ,包含一个代理模式的会话记录、支持 GET、POST 和 PUT 以及 DELETE 方法,支持 Cookie 和基本的 WWW 认证,同时还支持 SSL。

参看:十个免费的Web压力测试工具

ledger

ledger 一个命令行下记帐的小工具。

taskwarrior

TaskWarrior 是一个基于命令行的 TODO 列表管理工具。主要功能包括:标签、彩色表格输出、报表和图形、大量的命令、底层API、多用户文件锁等功能。

curl

cURL是 一个利用URL语法在命令行下工作的文件传输工具,1997年首次发行。它支持文件上传和下载,所以是综合传输工具,但按传统,习惯称cURL为下载工 具。cURL还包含了用于程序开发的libcurl。cURL支援的通訊協定有FTP、FTPS、HTTP、HTTPS、TFTP、SFTP、 Gopher、SCP、Telnet、DICT、FILE、LDAP、LDAPS、IMAP、POP3、SMTP和RTSP。

rtorrent & aria2

rTorrent 是一个非常简洁、优秀、非常轻量的BT客户端. 它使用了 ncurses 库以 C++ 编写, 因此它完全基于文本并在终端中运行. 将 rTorrent 用在安装有 GNU Screen 和 Secure Shell 的低端系统上作为远程的 BT 客户端是非常理想的。

aria2 是 Linux 下一个不错的高速下载工具。由于它具有分段下载引擎,所以支持从多个地址或者从一个地址的多个连接来下载同一个文件。这样自然就大大加快了文件的下载速 度。aria2 也具有断点续传功能,这使你随时能够恢复已经中断的文件下载。除了支持一般的 http(s) 和 ftp 协议外,aria2 还支持 BitTorrent 协议。这意味着,你也可以使用 aria2 来下载 torrent 文件。

ttytter & earthquake

TTYtter 是一个Perl写的命令行上发Twitter的工具,可以进行所有其他平台客户端能进行的事情,当然,支持中文。脚本控、CLI控、终端控、Perl控的最愛。

Earthquake也是一个命令行上的Twitter客户端。

vifm & ranger

Vifm 基于ncurses的文件管理器,DOS风格,用键盘操作。

vifm screenshot

Ranger用 Python 完成,默认为使用 Vim 风格的按键绑定,比如 hjkl(上下左右),dd(剪切),yy(复制)等等。功能很全,扩展/可配置性也非常不错。类似MacOS X下Finder(文件管理器)的多列文件管理方式。支持多标签页。实时预览文本文件和目录。

cowsay & sl

cowsay  不说了,如下所示,哈哈哈。还有xcowsay,你可以自己搜一搜。

ReiserFS 作者被孩子起诉,索赔1500万美元

Linux开发者、文件系统 ReiserFS 作者 Hans Reiser 因谋杀妻子而在2008年被判入狱15年,他的两个孩子目前在俄罗斯与外祖母生活在一起,他们分别为11岁和12岁,至今仍没从父亲杀死母亲的震惊中缓过来。他们现在向父亲提起法律诉讼,寻求赔偿1520万美元。代表 Reiser孩子的Arturo Gonzalez表示,许多人相信Hans Reiser在俄罗斯或美国还有财产。他说,Reiser在其工作的项目上可能拥有知识产权。

http://linux.solidot.org/linux/12/07/10/107222.shtml

老板要在每个bug报告上加上“谁的责任”项

老板要在每个bug报告上加上“谁的责任”项,我如何能让他相信这不是个好主意?

 

bug_report

看到这样标题,我的第一反应就是反对老板这样做。作为开发人员,我最讨厌有人指着我的鼻子说:这是你的责任,你写的代码出了问题。我通常会争辩,有时会恼羞成怒。但如何能用充分的论据来证明这样做法是不合适的呢?我还真没有系统的考虑过。所以,当看到有这样的一个讨论时,我马上就被吸引住了,群众的力量是巨大的,群众的思想放光芒,我从讨论中学到了不少知识,有了这些论据,当日后不可避免的遇到指责时,至少心里能找到不少安慰。下面先看看这个伟大讨论的发起人对自己遇到的问题的描述吧:

在最近的制度改革中,老板要在我们的bug跟踪单模板中加入“谁的责任”项,他认为这样能提高程序员的责任感(跟踪单上已 经有地方指明bug是属于哪个功能/用例的)。我认为这样会打击程序员的士气,导致人们相互指责,而且对于一些由于需求问题而被当成bug的情况无法填 写。

有没有其它的能反驳这种做法的有效方法?有谁知道哪里有关于这方面问题的文章可参考的?我希望能拿这些给团队的同事和老板看。我认为这种文化是不可接受的,希望能在实施前阻止它。任何建议我都十分感激。

有网友一针见血的指出这样做的弊端,就是:

如果有人认为“谁的责任”项要填的是自己的名字,他就不会报告这个bug。这个会导致团队的bug数减少。

对这样一个问题,我最欣赏的回答是下面一条:

对于这样的做法,我首先要做的是问你的老板他这样做究竟想解决什么问题。有很多显然更好的方法能解决他想解决的问题。

对于一个事情,真的需要有一个人站出来承担责任吗?如果是这样,那你的老板可能在其它什么地方出了问题。一个好的工作流程是需要多人共同参与的,在 软件正式发布前,它需要经过分析人员,开发人员,代码审查人员,测试人员。如果你们没有经过所有的这些步骤,那么严格按照这些步骤开发将是解决你的老板的 问题的最好方案。如果你们已经是按照这个流程去做了,那么,哪个个人应该为此承担责任呢?也许谁都不应该,也许应该谴责的是这些历史遗留的代码。

让人们背后议论、相互指责会引起很不好的后果,千万不要随意给人涂黑点,一旦做了就很难挽回。这样做解决不了任何问题。很少有人会故意的大意犯错误。你的老板应该自我反思,看看问题究竟是出在什么方面,看看如何能让这种错误不再发生。

这样做了后,你就能清楚的看出,如果有人在不断的犯错,这很可能是完全不同另外一个问题。

但是指stackexchange网站上最受欢迎的回答却是下面一个:

告诉他,这外行人对内行人所说的问题根源的外行叫法(如果没有专门的项来描述这个,一般会使用注释来替代)。

你可以在网上搜一下软件bug根源分析等内容,你能搜到丰富的资料来证明你的观点1, 2, 3, 4, …。

… 一个软件bug的根源通常不是在某个单个的开发人员身上(填写此项时特别要注意这点)…

这清楚的说明了为什么“问题根源”是专业的,而“谁的责任”是外行的。能说明个人责任当然很好,但有时候问题的根源会产生在开发团队“外部”。

告诉你的老板,如果需要指明一个承担责任的人,“问题根源”项应该写成这样:“编码错误由鲍勃提交,版本号是1234,吉姆在代码审查中疏漏了此错误,审查号是567”。“问题根源”项的目的就是要记录这样的内容,包括一些在开发团队之外的原因。

例如,如果一个bug是由于硬件引起的(受到谴责的应该是开发团队外的购买/测试硬件的那个人),用“问题根源”就能很好的描述这个问题,而“谁的责任”就会导致问题跟踪线索中断。

对于其它的开发团队之外的人导致的错误也能这样记录 —— 测试错误,需求变更,管理决策问题等。比如,如果管理部门决定不投入资金制备灾难应急硬件设备,在数据中心停电宕机事件上填写“哪个程序员的责任”将毫无意义。

你遇到过这样的事情吗?你对此有何见解?