惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

宝玉的分享
宝玉的分享
小众软件
小众软件
J
Java Code Geeks
I
InfoQ
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
腾讯CDC
L
LangChain Blog
博客园 - 司徒正美
量子位
Y
Y Combinator Blog
C
Check Point Blog
T
Tailwind CSS Blog
D
DataBreaches.Net
Blog — PlanetScale
Blog — PlanetScale
N
Netflix TechBlog - Medium
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
F
Fortinet All Blogs
云风的 BLOG
云风的 BLOG
A
About on SuperTechFans
B
Blog RSS Feed
酷 壳 – CoolShell
酷 壳 – CoolShell
大猫的无限游戏
大猫的无限游戏
V
V2EX
阮一峰的网络日志
阮一峰的网络日志

张鑫旭-鑫空间-鑫生活

1分钟速度了解text-align match-parent声明 « 张鑫旭-鑫空间-鑫生活 光标的形状也能设置了,就是CSS caret-shape属性 « 张鑫旭-鑫空间-鑫生活 pretext与文字四面环绕效果的实现 « 张鑫旭-鑫空间-鑫生活 JSON.rawJSON方法的作用是什么? « 张鑫旭-鑫空间-鑫生活 如何使用CSS判断鼠标从哪个方向进入元素? « 张鑫旭-鑫空间-鑫生活 借助mediabunny纯JS实现视频水印、剪裁、合成等功能 « 张鑫旭-鑫空间-鑫生活 务必谨慎使用JS WeakRef弱引用 « 张鑫旭-鑫空间-鑫生活 CSS六边形头像的实现与蜂巢布局 « 张鑫旭-鑫空间-鑫生活 CSS corner-shape与背景底纹技术 « 张鑫旭-鑫空间-鑫生活 浅学WebTransport API:下一代Web双向通信技术 « 张鑫旭-鑫空间-鑫生活 HTML dialog元素新支持了closedBy属性 « 张鑫旭-鑫空间-鑫生活 HTML interestfor属性与悬停popover交互效果 « 张鑫旭-鑫空间-鑫生活 CSS3模拟window7炫酷界面效果展示 « 张鑫旭-鑫空间-鑫生活 图片旋转+剪裁js插件(兼容各浏览器) « 张鑫旭-鑫空间-鑫生活 纯js无图片无外链CSS图片幻灯片播放插件 « 张鑫旭-鑫空间-鑫生活 CSS border三角、圆角图形生成技术简介 « 张鑫旭-鑫空间-鑫生活 CSS “渐进增强”在web制作中常见应用举例 « 张鑫旭-鑫空间-鑫生活 让IE6/IE7/IE8浏览器支持CSS3属性 « 张鑫旭-鑫空间-鑫生活 jQuery – 高亮动态显示页面HTML代码插件 « 张鑫旭-鑫空间-鑫生活 翻译 – 逐渐消失的Flash网站 « 张鑫旭-鑫空间-鑫生活 CSS reset的重新审视 – 避免样式重置 « 张鑫旭-鑫空间-鑫生活 新浪微博插入话题后部分文字选中的js实现 « 张鑫旭-鑫空间-鑫生活 JavaScript实现http地址自动检测并添加URL链接 « 张鑫旭-鑫空间-鑫生活 CSS实现兼容性的渐变背景(gradient)效果 « 张鑫旭-鑫空间-鑫生活 CSS content内容生成技术以及应用 « 张鑫旭-鑫空间-鑫生活 CSS gradient渐变之webkit核心浏览器下的使用 « 张鑫旭-鑫空间-鑫生活 CSS渐变之CSS3 gradient在Firefox3.6下的使用 « 张鑫旭-鑫空间-鑫生活 区分IE8/IE7/IE6及其他浏览器-CSS “\9″hack « 张鑫旭-鑫空间-鑫生活 CSS实现跨浏览器兼容性的盒阴影效果 « 张鑫旭-鑫空间-鑫生活 CSS3&HTML5各浏览器支持情况一览表 « 张鑫旭-鑫空间-鑫生活
小小小tip: 按钮文字无缝变菊花 « 张鑫旭-鑫空间-鑫生活
张鑫旭,zhangxinxu · 2014-11-30 · via 张鑫旭-鑫空间-鑫生活

这篇文章发布于 2014年11月30日,星期日,22:57,归类于 CSS相关。 阅读 45284 次, 今日 1 次 13 条评论

by zhangxinxu from http://www.zhangxinxu.com
本文地址:http://www.zhangxinxu.com/wordpress/?p=4441

一、时势造英雄

本文介绍的是个很小的tips, 是个很简单很实用的交互效果,就是按钮点击后按钮文字变成菊花,表示我正在进行中。

例如,去苹果官网买iPhone 6的时候:
苹果官网iPhone6付款按钮文字变菊花

以前我们实现可能会借助一个额外的标签,比方说:

<a href="javascript:" class="button">
    <span class="text">按钮</span>
    <img src="juhua.gif" />
</a>

而本文要介绍的HTML则很简单:

<a href="javascript:" class="button">按钮</a>

没有额外的标签,也不使用伪元素,完全不影响原本按钮的CSS设置,无缝变化。

可能会疑问,为何我们以前实现要多标签嵌套处理呢?这个呢是受限于当时的历史环境。

所谓时势造英雄。现在这个阶段,我们有2个变化:

  1. 浏览器发展。IE6很多企业和团队都不支持;
  2. 设计趋势。现在流行扁平化设计,按钮都是纯色背景。

于是,我们就可以以简洁轻松的方式实现按钮文字变菊花的效果。

二、demo实例以及效果

您可以狠狠地点击这里:文字变菊花实例demo

默认时候是这样子(截自Chrome):
Chrome浏览器默认按钮
Chrome浏览器按钮菊花时候

在IE7浏览器下(IE11的IE7模式)如下:
IE7浏览器下按钮
IE7浏览器下菊花进行中截图

更新于2015年7月25日
后发现,原生的IE7-IE8浏览器并不支持color:transparent, IE11的向下兼容模式都支持该透明关键字,是不准确的。因此,本文的技术点,可能就需要大家再好好斟酌斟酌了。

三、文字变菊花的原理

实现原理跟上面两个时势变化密切相关,主要有2点:

  1. transparent关键字。按钮文字变菊花其中的文字隐藏就是使用的color:transparent这个声明,顾名思意,“颜色透明”。由于transparent这个关键字IE6不支持,好像会变成黑色(如果我没记错的话),所以以前在需要兼容IE6的时代,此方法是受阻的。
  2. 作为背景图片显示的菊花。由于现在流行扁平化设计,按钮都是纯色背景。所以,我们可以任性一把,让菊花以background-image的形式和按钮背景色(background-color)无阻碍并行显示,然后我们需要的效果了!

假设我们使用类名loading改变我们的按钮状态,则上面原理用代码表示就是:

.loading {
    color: transparent;    /* 文字消失 */
    background: #xxxxxx url(loading.gif) no-repeat center;   /* 菊花在背景色中间出现 */
}

在实际开发制作的时候,我们不可能就上面两行代码,由于loading态基本上都是disabled态,所以,按钮的hover变化、鼠标手形等都需要重置,所以还需要其他些CSS, 都是行家,都懂的,不展示,demo页面有代码示意,有兴趣可以自行前去围观。

四、结束语

送佛送到西,水文水到底。

没啥好说的,月底了,一个月一篇产出都没有,说不过去,所以在这最后几个小时弄个水文,撑撑场面。

不过,有句话我要说清楚,不是我懒了,实在分身乏术。

下个月应该会好一点。

本文为原创文章,包含脚本行为,会经常更新知识点以及修正一些错误,因此转载请保留原出处,方便溯源,避免陈旧错误知识的误导,同时有更好的阅读体验。
本文地址:http://www.zhangxinxu.com/wordpress/?p=4441

(本篇完)