CSS 实现打字效果

原文:CSS 实现打字效果

JS实现

最近做项目的时候需要实现一个字符逐个出现的打字效果,在网上一搜有个不错的jQuery插件Typed.js,效果很赞

<div class="element"></div>

<script src="typed.js"></script>
<script>
  $(function(){
      $(".element").typed({
        strings: ["First sentence.", "Second sentence."],
        typeSpeed: 0
      });
  });
</script>

具体用法可以看看项目地址,带注释的源码200多行,不算复杂

实现方法也不神奇,大多数人肯容易可以想到,用js逐个向容器内添加字符,作者做了很多字符的出来还有速度神马的,我们可以撸一个简单的

var s = 'Hello World! Hello World! Hello World!';
var con = $('.container');
var index = 0;
var length = s.length;
var tId = null;

function start(){
  con.text('');

  tId=setInterval(function(){
    con.append(s.charAt(index));
    if(index++ === length){
    clearInterval(tId);
    index = 0;
    start()
    }
  },100);
}

start();

JS Bin

CSS实现

如果对细节和浏览器兼容性要求的不是很严格,我们可以通过CSS3实现

animation-timing-function

CSS3的动画都接触过,我们平时这么用

animation: animation-name animation-duration animation-iteration-count

animation: name 5s infinite;

其实完整版的animation参数很多,也可以写成分别的属性

  1. animation-name
  2. animation-duration
  3. animation-timing-function
  4. animation-delay
  5. animation-iteration-count
  6. animation-direction

今天我们就要关注一下animation-timing-function,大多数动画在时间轴上时线性变化的,jQuery动画的时候我们用的liner参数就是这意思,但CSS3提供了一些其它的变化方式由animation-timing-function属性指定

  1. ease
  2. linear
  3. ease-in
  4. ease-out
  5. ease-in-out
  6. step-start
  7. step-end
  8. steps
  9. cubic-bezier

每种动画效果都可以对应一种贝塞尔曲线 cubic-bezier可以帮我直观的看一下贝塞尔曲线效果,这里不多说了

steps

我们看一下steps的效果,其实顾名思义就可以想到steps什么意思,就像俄罗斯方块的小格子往下掉也是动画,但是不是连续的,更像是逐帧的,steps就是实现这种效果的

steps的语法

steps(number_of_steps, [start|end])
  • number_of_steps 动画分为多少步执行
  • direction 动画显示状态,end:默认值,第一帧开始前显示,start:第一帧结束后显示

看个科学的图片帮助理解

走两步

有了这些我们就能做个好玩儿的效果了

JS Bin

.walk {
  width: 125px;
  height: 150px;
  background: url(http://lsly1989.qiniudn.com/xxxasddbgfbwalk.jpg) left;
  -webkit-animation:anima 1s steps(16) infinite ;
}

@-webkit-keyframes anima{
    from { background-position:2000px 0;}
    to {background-position:0px 0;}
}

打字效果

打字效果也就可想而知了,改变容器宽度即可(只能单行使用,还得做到每步增加长度和字母宽度一致,还是js好其实)

.typing{
    width:250px;
    white-space:nowrap;
    overflow:hidden;
    -webkit-animation: type 3s steps(50, end) infinite;
  animation: type 3s steps(50, end) infinite;
}

@-webkit-keyframes type{
    from { width: 0;}
}

@keyframes type{
    from { width: 0;}
}

JS Bin

参考

MDN: timing-function

Understanding CSS Timing Functions

时间: 2024-12-28 05:45:15

CSS 实现打字效果的相关文章

JS打字效果的动态菜单代码分享_javascript技巧

这是一款基于javascript实现的打字效果的动态菜单特效代码,分享给大家学习学习. 运行效果图:----------------------查看效果----------------------- 小提示:浏览器中如果不能正常运行,可以尝试切换浏览模式. 为大家分享的JS打字效果的动态菜单代码如下 <html> <head> <title>JS打字效果的动态菜单</title> <meta http-equiv="imagetoolbar&

JavaScript实现打字效果的例子

网上有一个jQuery插件 Typed.js ,它可以实现模拟逐个字符输入的效果.本帖使用Js+css实现这个效果. 要输出的句子: <p id="my_string" hidden>HelloJavaScript.</p> 上面元素的属性为hidden. JavaScript: <script>     letcursor = "<span>|</span>";     letmy_str = my_st

JS模拟键盘打字效果的方法_javascript技巧

本文实例讲述了JS模拟键盘打字效果的方法.分享给大家供大家参考.具体如下: 这里使用JS模拟实现软键盘及打字效果,点击软键盘年的字母键,文本框中即可显示文字,像是键盘打字的效果,美工不太好,没怎么美化,CSS高手可美化一下按钮,看上去还挺不错吧,我觉得. 先来看看运行效果图: 具体代码如下: <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb23

20 个精美的Ajax + CSS 的表格效果

20 个功能强大,外观漂亮的基于Ajax + CSS 的表格效果,你可以从这些示例中学习怎么使用这些表格提供的排序和过滤的功能来组织表格中的数据.现在让我们来看看这些表格: #1. TableclothTablecloth 由CSS Globe 开发,是一个轻量级的.易于使用的表格,以友好的方式将样式和行为添加到你当前的HTML 表格元素当中. #2. Ask the CSS Guy TableAsk the CSS Guy Table 演示了怎么样创建一个可以显示数据之间的关系的表格,例如在单

CSS 数字外框效果

效果 CSS 数字外框效果 代码 CSS 代码: li  {      float:left;      overflow:hidden;      margin-left:3px;      padding:3px 5px 3px 5px;      border:1px solid #FF0000;      background-color:#000000;      color:#FFFFFF;      text-align:center;      line-height:100%;

CSS翻页效果,鼠标放上时变化,无需JS

网页制作Webjx文章简介:!DOCTYPE html PUBLIC -//W3C//DTD XHTML 1.0 Transitional//EN http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtdhtml xmlns=http://www.w3.org/1999/xhtmlheadmeta http-equiv=Content-Type content=text/html; charset=gb2312 /titleDIV CSS实例

CSS实现分页效果制作实例

CSS实现分页效果制作实例,教程和代码如下:  这个教程要说明的是如何为搜索结果或更长记录列表设计分页.因为经常有人问我这个问题,所以我决定发一个帖子来说明如何用少量的 HTML 和 CSS 代码设计出完美的分页样式. 这个教程也包含有实现Flickr.Digg式的简洁分页样式的HTML/CSS代码,随时可以应用于你的WEB项目中. Update as March 17, 2008: My friends Simone Saveri solved some issuse with IE6 and

超强,用CSS构建iframe效果

css iframe应用很普遍,通常的需求有两种: 1,获取iframe效果,就是带一个滚动条,可以省不少版面.2,要嵌一个页面,实现框架链接. 如果不方便使用iframe,可以有如下解决方案: 第一种需求如果我们使用css布局来实现,即可以少一个页面,也可以提高效率.第二种需求可以采用xmlhttp远程获取. A. 直接模拟iframe 用层做容器   引用: #content { overflow:auto; height:200px; width:600px; background:#f0

制作一款打字效果的LOGO

所谓打字效果,就是文字在光标的带动下,富有节奏感般地挨个展现出来.这种效果在网站的LOGO制作中还不多见.因此我们今天就一起来制作这样一个动态的网站LOGO.最终的效果如图01. 图01"智慧生活LOGO"源文件下载(50K,ZIP压缩文件) 启动Firework后新建一个88*31大小的画布.这种大小也正是网站LOGO最为常用的尺寸.然后点击"层"面板右上角的下拉按钮,把"单层编辑"的选勾去掉.这样就可以使鼠标指针跨图层地进行对象的选取了.如图