犀利的background-clip:text,实现K歌字幕效果

  

  今天学到了一个新的CSS3属性,更准确的说是属性值,那就是background-clip:text。利用此属性值可以制作出很神奇的效果。可惜只有chrome支持,不过今天可以先来玩玩这个属性。

  先来介绍下background-clip吧,它的作用是对背景图片进行裁剪,取值有content-box|padding-box|border-box,即对哪一个盒子之外的背景进行裁剪。看下面的例子就明白了:

美女

content-box

padding-box

border-box

  以上三个取值很自然可以想到,但它还有另外一个取值有点让人惊艳,那就是text,它可以把文本内容之外的背景给裁剪掉。比如我们把上面的例子中写上文字:

美女

content-box

padding-box

border-box

text

  背景内容只裁剪出了文字中的,是不是很神奇~不过这里需要和另外一个css3属性配合使用,它就是-webkit-text-fill-color: transparent; 它是用来设置文字的填充色的,作用和指定color是一样的,不过它有一个取值非常有用:transparent,可以把文字填充色设为透明,这样的话就可以漏出后面背景的颜色了,也就是“文字镂空”效果。

这样一来,要实现一个渐变色文字就很容易了,我们只需要用css3的渐变设置背景色即可,让后让文字来把背景给镂空显示出来。非常简单,这里有一个例子:http://trentwalton.com/bgclip/

这里我又想到了一个实际用途,那就是实现K歌的字幕效果,文字颜色随进度而变化,需要做到同一个字上面有不同的颜色,像下面这张图:

  

  以前我们要做这样的效果,可能需要两个元素来,重叠起来,不断改变上面的元素的宽度来慢慢遮住下面,以此来模拟一种进度效果,如下是用两个元素实现的:

一盏离愁 孤单伫立在窗口

一盏离愁 孤单伫立在窗口

  这样做有几个缺陷:

1. 一段文字需要写两遍,用两个元素

2. 用户想要复制歌词时,无法完全选中这一行的文字。(因为确实不是同一行)

  既然我们可以用文字镂空出背景色来了,要实现这个效果也就相当容易了,只需一个div,css代码如下:

@-webkit-keyframes loop{
     0%{background-position: -800px 0;}
     100%{background-position: -0 0;}
}
.text2{
     width: 800px;
     height: 78px;
     line-height: 78px;
     font-size: 40px;
     font-family: ‘微软雅黑‘;
     font-weight: bold;
     -webkit-background-clip: text;
     -webkit-text-fill-color: transparent;
     background-color: red;
     background-image:url(bg.jpg);
     background-repeat:no-repeat;
     background-position: -800px 0;
     -webkit-animation:loop 10s linear infinite;
}

  看效果:

一盏离愁 孤单伫立在窗口

  可以很好解决上面的两个问题。当然用css3的方式也有问题的,那就是我们喜闻乐见的,不!兼!容!所以这里也只能是玩一玩了,当做一个思路。

时间: 2024-08-07 21:18:13

犀利的background-clip:text,实现K歌字幕效果的相关文章

全民k歌下载|全民k歌app下载

前年跳槽到广东,开始新环境,也要创业,没有了原来的圈子,应酬基本没有了,整天为项目忙的鸡飞狗跳.上个月偶然发现了全民k歌这款软件,还不禁赞叹现在科技这么厉害了,都可以不花钱唱歌了..很土是吧..全民k歌下载链接应用简介还在为去×××消费太高烦恼吗?在这里为你推荐一款全民k歌软件,全民k歌是一款能听能唱的音乐软件,内含大量伴奏资源,随时随地想听就听想唱就唱,还有搜索功能,把你想唱的歌输进去可以直接找到,唱的不好怎么办?不用担心,还有练唱功能和调音台功能,音低了可以调高,音高了可以调低,想当k歌之王

零元学Expression Design 4 - Chapter 3 看小光被包围了!!如何活用「Text On Path」设计效果

原文:零元学Expression Design 4 - Chapter 3 看小光被包围了!!如何活用「Text On Path」设计效果 本章将教大家如何活用「Text On Path」,做出文绕图以及文字线性排列的效果 也可以学到如何使用Polyline以及B-Spline ? 本章将教大家如何活用「Text On Path」,做出文绕图以及文字线性排列的效果 也可以学到如何使用Polyline以及B-Spline ? 范例最後成果图片: ? 跟着做,就能做初出跟范例一样的效果了! ? 01

Andorid Clip 实现自定义的进度条效果实例

Android该系统提供了一个水平进度条为我们展现了运行使用进展情况,水平进度条显示用于运行进度Clip Drawable技术 下面我们通过一个具体的例子来说明Clip Drawable使用. 还有我们要注意知识: Clip0,此时是所有裁剪,图片看不见: 当级别为10000时,不裁剪图片,图片所有可见 程序执行结果:第一张为初始界面,第二张为点击5次界面,第三张为点击10的界面        watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvY3F0ZG

System.Drawing.Text.TextRenderingHint 的几种效果

for (int i = 0; i < 6; i++) { g5.TextRenderingHint = (System.Drawing.Text.TextRenderingHint)i; string txt; int font_sz = 25; txt = "Static 测试 "; switch ((System.Drawing.Text.TextRenderingHint)i) { case System.Drawing.Text.TextRenderingHint.Sy

css3-background clip 和background origin

1.background-origin background-origin 里面有3个参数 : border-box | padding-box | content-box; border-box,padding-box,content-box从边框,还是内边距(默认值),或者是内容区域开始显示. 代码演示: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>

Sublime Text Shortcuts

Keyboard Shortcuts - Windows/Linux Warning This topic is a draft and may contain wrong information. Editing Keypress Command Ctrl + X Cut line Ctrl + ? Insert line after Ctrl + ? + ? Insert line before Ctrl + ? + ↑ Move line/selection up Ctrl + ? + ↓

2017年你会花钱在线听歌吗?

作者:楠沨 [IT战略家] 当下,国内音乐市场腾讯一家独大,阿里和网易两分剩余市场.但是除腾讯QQ音乐以外,整个市场均未盈利.主流的会员制及付费音乐用户变现模式还没有足以支撑版权的价格,想要实现盈收和增长,似乎还有很长的路要走. 中国数字音乐市场正在快速膨胀,2013年市场规模为440.7亿元,2015年增长至545.2亿元,两年增长了23.7%,据推测,2016年中国数字音乐市场将突破600亿元.得益于国内品类繁多的音乐综艺节目包括<中国好声音>.<我是歌手>等的全线推进,同时在

利用Clip制作打洞效果

起因 如上篇博文所说,连线原型需要在中间文字上下各留15像素的空白.设计师完成原型之后,问我有没有办法实现,我说,我能想到两种实现方式.其中一种就是上篇博文所说的OpacityMask.第二种就是使用Clip了.下面是效果图: 代码实现 Clip Clip定义在UIElement中,类型为Geometry .MSDN中的解释是获取或设置用于定义元素内容边框的几何图形.实际上不光可以在边框处留住空白,在UI元素里面留出空白也是可以的,只要定义好相关的形状. 矩形空洞 在一个大矩形中去除一个小矩形就

css中 background设置

css2中有五个与背景相关的属性.它们是: background-color:完全填充背景的颜色 background-image:用作背景的图片 background-position:确定背景图片的位置 background-repeat:确定背景图片是否重复铺平 background-attachment:确定背景图片是否随页面滚动