使用 Javascript 旋转文本

2024-03-11

我想循环浏览一系列单词来创建文本旋转效果。我的大部分工作都按预期进行。有什么方法可以在 p 元素的长度上使用 css 过渡吗?

当从 char.length > 10 的对象遍历到 char.length

HTML:

<p><span id="description-rotate"></span> something built on something else.</p>

SASS:

@-webkit-keyframes rotate-text

    0%
        opacity: 0

    30%
        opacity: 1

    50%
        opacity: 1

    70%
        opacity: 1


    100%
        opacity: 0

p
    font-family: 'Helvetica', sans-serif

.rotate-text
   -webkit-animation: rotate-text 3050ms cubic-bezier(0.645,  0.045, 0.355, 1.000) infinite
    -moz-animation: rotate-text 3050ms cubic-bezier(0.645,  0.045, 0.355, 1.000) infinite
    -o-animation: rotate-text 3050ms cubic-bezier(0.645,  0.045, 0.355, 1.000) infinite
    animation: rotate-text 3050ms cubic-bezier(0.645,  0.045, 0.355, 1.000) infinite

JavaScript:

var descriptionArray = ['some text', 'some more text', 'some even longer text'];
var descriptionLength = descriptionArray.length;
var description = $('#description-rotate');

function loop(i) {
     description.text(descriptionArray[i%descriptionLength]);
     setTimeout(function() {
        loop(i+1);
        description.addClass('rotate-text');
    }, 3050); // This duration must match the length of the animation
}

loop(0);

我意识到这可能不是解释我的目标的好方法,请查看 CodePen 以更好地了解我正在尝试创建的内容。

Thanks!

See: http://codepen.io/anon/pen/JueGx http://codepen.io/anon/pen/JueGx


使用 jQuery 的简单示例
是通过存储所需的循环/交换词进入data-*属性:

$("[data-words]").attr("data-words", function(i, words) {

    var $self = $(this).text(""),
        words = words.split("|"),
        tot   = words.length,
        c     = 0; 

    for(var i=0; i<tot; i++) $self.append($('<span/>',{text:words[i]}));

    var $words = $self.find("span");

    (function loop(){
      $self.animate({ width: $words.eq( c ).width() });
      $words.stop().fadeOut().eq(c).fadeIn().delay(1000).show(0, loop);
      c = ++c % tot;
    }());
    
});
/* DATA-WORDS Loop/swap words in sentence */
[data-words] {
  vertical-align: top;
  position: static;
}
[data-words] > span {
  display: none;
  position: absolute;
  color: #0bf;
}
<p>
  This is <span data-words="some|an interesting|some longer">some</span> text
</p>

<p>
  Say <span data-words="hi|wow">hi</span> to <span data-words="Javascript|Stack Overflow">mom</span>
</p>


<script src="//code.jquery.com/jquery-3.1.0.js"></script>
  • The |-分隔的单词将被转换为数组,最后转换为子元素<span>元素
  • Such span元素需要绝对定位在父级内部span
  • jQuery 将初始化一个递归循环,计算下一个字宽,并为其设置动画(淡入淡出 + 宽度)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Javascript 旋转文本 的相关文章

  • 本地推送通知到在应用程序内运行 JS 代码的 Win8 Live Tile

    我正在尝试将更新发送到我的应用程序的磁贴 当应用程序运行时 这可以正常工作 例如 当用户单击按钮时 我可以轻松地将磁贴更新通知发送到磁贴 我无法解决的是当应用程序无法运行时如何更新磁贴 我找到的唯一选择是使用以下命令从远程 Web 服务器拉
  • IntersectionObserver是否支持水平滚动观察?

    我制作了几个垂直滚动 IntersectionObserver 模块 但我对水平滚动感兴趣 根将是 div 观察目标将是 img 我想观察当 img 放大但 div 保持视口宽度时的变化 我什至不确定移动 Safari 是否会将缩放后的图片
  • 如何使用 Greasemonkey 监视静态 HTML 页面的更改?使用哈希?

    我希望我的 Greasemonkey 脚本仅在其访问的静态页面具有与以前完全相同的内容时运行 现在我可以设置一个包含该页面哈希的变量 我正在寻找一种动态散列页面的方法 以便我可以将我的散列与生成的散列进行比较 关于如何即时实现散列的任何想法
  • React autoFocus 将光标设置为输入值的开头

    我有一个受控输入 最初显示一个值 我已将该输入设置为自动聚焦 但当我希望它出现在末尾时 光标出现在输入的开头 我知道这可能是因为自动对焦是在值之前添加的 但我不能 100 确定 在输入字段末尾完成光标初始化的最佳方法是什么 var Test
  • JavaScript 中的 Promise 有什么意义?

    一个承诺是一个 可能现在可用 或将来可用 或永远不可用的值 来源 MDN 假设我有一个想要处理图片的应用程序 图片已加载 例如在算法在后台使用它之后 或某种其他类型的延迟 现在我想检查一下图片是否可以在future 通过使用承诺 而不是回调
  • React Router v4 不渲染组件

    React Router v4 渲染组件存在问题 在应用程序初始加载时 它将呈现与 URL 相对应的正确组件 但是 任何后续的组件Link单击不会呈现所需的组件 图书馆 反应路由器 4 2 2 https reacttraining com
  • 合并 2 个大型 CSS 文件的有效方法

    我正在寻找一个可以合并 2 个大型 CSS 文件的工具 到目前为止我尝试过的所有方法 例如CSSMerge 都没有成功 其中一些只是随机删除属性 其他人则因 webkit 和 moz 等非标准属性而窒息 并给我错误 我还需要保留每条规则大小
  • -webkit-box-shadow 与 QtWebKit 模糊?

    当时有什么方法可以实现 webkit box shadow 的工作模糊吗 看完这篇评论错误报告 https bugs webkit org show bug cgi id 23291 我认识到这仍然是一个问题 尽管错误报告被标记为RESOL
  • 使用单击事件调用“trigger”方法时的复选框值

    如何在点击事件中获取正确的当前值以通过触发器调用 Html
  • Vaadin 12 将对象传递给 JavaScript 函数:无法对类进行编码

    Vaadin 12 Kotlin 项目 In my myPage html我有JavaScript myObject redirectToCheckout sessionId 1111 2222 所以我需要调用javaScript函数red
  • 使用 Javascript 设置 cookie [重复]

    这个问题在这里已经有答案了 我正在尝试构建我的第一个移动应用程序 它需要连接到我的 mysql 数据库并使用 json 返回数据 这很好 目前我有一个登录系统 一旦确定用户名和密码存在 它就会返回一条成功消息 对于下一步 我想在我的页面上使
  • Google Maps API (v3) 添加/更新标记

    编辑 它现在可以工作 但如果用户不允许或没有基于位置的服务 则不会加载 请参阅 jsfiddle 示例接受的答案评论 我已经浏览了一些教程和问题 但我无法安静地理解正在发生的事情 或者在这种情况下 没有发生 当用户单击链接时 我正在加载地图
  • 如何从浏览器向服务器发送“页面将关闭”消息?

    我想向每个 html 文档添加一个脚本 JavaScript 该脚本向服务器发送两条消息 页面确实打开了 页面将关闭 此消息包含页面打开的时间 打开消息应在文档加载时 或加载完成时 发送 这是简单的部分 The close message
  • $resource.query 返回分割字符串(字符数组)而不是字符串

    我正在使用像下面这样的 Angular resource angular module app factory data function resource var Con resource api data update method P
  • Highcharts jQuery 渲染问题 - 所有浏览器

    我在尝试使用构建堆积柱形图时遇到了一个奇怪的问题高图表 http www highcharts com 当图表呈现时 在您调整浏览器大小之前 不会显示列无论如何 导致图表重绘 我认为 图表的其余部分显示 轴 标题等 但不显示列本身 我在 I
  • 有没有办法使用 ko.observableArray 作为地图?

    有没有办法使用ko observableArray http knockoutjs com documentation observableArrays html像地图 字典一样 例如 var arr ko observableArray
  • react-native - 图像需要来自 JSON 的本地路径

    你好社区 我正在react native中开发一个测试应用程序 并尝试从本地存储位置获取图像 我实际在做什么 我将图像直接链接源提供给 var 并在渲染函数中调用此方法 react 0 14 8 react native 0 23 1 np
  • Flot 库将 y 轴设置为最小值 0 和最大值 24

    如何将 y 轴设置在 0 到 24 的范围内 这是我的代码 j plot j placeholder d1 xaxis mode time min new Date 2010 11 01 getTime max new Date 2011
  • 将数组从 jquery ajax 传递到代码后面

    我必须将二维数组传递给在asp net网页代码后面编写的页面方法我有一个变量objList作为二维数组 我使用以下代码来实现此目的 但没有成功 并且未调用页面方法 脚本语言 function BindTable objList ajax u
  • 使用velocity.js制作可拖动元素的动画

    我正在使用velocity js 为用户拖动的可拖动 SVG 元素设置动画 然而 velocity js 将先前的 mousemove 坐标排队并通过所有后续的 mousemove 坐标进行动画处理 我想要的是velocity js 不要对

随机推荐

  • 为什么 Scala 在按名称参数重载时的行为与按值参数重载时的行为不同?

    鉴于以下 Scala 代码 object test def byval a Int println Int def byval a Long println Long def byname a gt Int println gt Int d
  • 为什么 [regex] match() 和 -match 不同?

    当我在 PowerShell 中使用正则表达式时 我偶然发现了一个与 Powershell 不同的奇怪场景 regex 班级匹配 match 在我尝试从字符串中删除空行的情况下 当使用 replace我的表情在与时都不起作用 regex r
  • 如何散列 std::string?

    我正在制作一个小实用程序来帮助我通过重复来记住密码 我想每天只输入一次密码 而不是在每次会话之前输入 当然 我不会存储密码本身 但很乐意存储其哈希值 那么 获取哈希值的最简单方法是什么std string使用 C 标准库 对于不涉及外部库的
  • 多重继承和指针实现

    给出以下代码 namespace Example1 class A public A virtual A private float data A class B public B virtual B protected float dat
  • viewpager和fragment中布局的幽灵

    I use the viewpager and fragment the adapter is FragmentStatePagerAdapter fragment s layout i use is SwipeRefreshLayout
  • 分配器类型参数的 C++ 设计模式

    C 03 标准库在将类型传递给旨在作为分配器的类时使用简单的模板类型参数 这是可能的 因为模板在 C 中的工作方式 但是 它并不是很简单 您可能不知道类型定义到底应该是什么样子 特别是在非标准类型的情况下 我认为使用适配器类可能是个好主意
  • vue动态mapGetters

    我有一个 props 我想用它来制作动态 mapGetters 但是 mapGetters 将 props 视为未定义 可能是因为计算值是在 props 之前加载的 有人知道我怎样才能让它变得动态吗 我的代码如下 export defaul
  • 从 VSCode 中删除 git 集成

    我下载了 Visual Studio Code 来在工作中试用 我几乎爱上了它的一切 但我不喜欢的一部分是 Git 集成 我导入了整个工作文件夹 约 14000 个源文件 git 项目 Visual Studio Code 中的布局和所有内
  • 切换大小写奇怪的范围

    在查看一些第 3 方 C 代码时 我遇到了类似的情况 switch state case 0 if c A open brace code break brace not closed case 1 code break close bra
  • python 中的套接字问题

    我有一个用 C 编写的服务器 我想用 python 编写一个客户端 当 python 客户端想要发送文件时 它会发送一个字符串 send some file 后跟文件的内容和字符串 end some file 这是我的客户端代码 file
  • 使用 igraph 在 R 中进行 Louvain 社区检测 - 分配交替的组成员资格分配

    我一直在使用 igraph 在 R 中运行 Louvain 社区检测 感谢我之前查询的这个答案 https stackoverflow com questions 49834827 louvain community detection i
  • jQuery 选择器性能

    我知道我只是对几毫秒的表演时间有强迫症 但我只是想知道为什么以下内容对我来说是正确的 这似乎违背了我的逻辑 我目前有一个 div 它在悬停时淡出内部图像 div someclass hover function this children
  • 如何使用一个文件输入元素上传多个文件

    我正在尝试使用一个文件输入元素使用 html 表单将多个文件上传到云端硬盘 尽管文件选择器允许选择多个文件 但这似乎仅适用于一个文件 回到脚本日志查看器 我只看到我上传的两个文件中捕获的一个文件 这是不受支持的 还是我走错了路 Code g
  • 标记位置更改事件

    我正在使用新的 Android 版 Google 地图 v2 有没有办法为标记位置变化设置监听器 例如 当用户拖动标记时 Quoting 文档 https developers google com maps documentation a
  • R 中 SumIf 函数的等效项是什么

    我是 R 和这个网站的新手 但我搜索后没有找到我正在寻找的答案 如果我有以下数据集 总计 names lt c a b c d a b c d x lt cbind x1 3 x2 c 3 10 total lt data frame na
  • 如何将 JSONP 数据类型与 Ember 数据结合使用?

    如何设置 Ember Data 在进行 ajax 调用时使用 JSONP 数据类型 我将使用 Ember 和 Phonegap 并需要发出跨域请求 覆盖私有的要容易得多ajaxOptions函数而不是使用jQuery 无论如何 Ember
  • 如何在facet_wrap中将label_wrap_gen与as_labeller一起使用

    我有一个方面图 并且想将方面条标题包装在多行上 如果超过一定数量的字符 所以我知道我使用labeller label wrap gen 10 比如包裹超过 10 个字符 当传递给facet wrap不过 我也想传递新的标签 我知道我可以使用
  • 如何仅将图片框显示的内容捕获为位图,而不使用“从屏幕复制”?

    具体来说 我需要将图片框实际显示的特定区域捕获为位图 该区域的坐标由我覆盖在图片框顶部的控件的边界指定 但该控件属于图片框 当我制作该区域的 快照 时 该控件被隐藏 我尝试使用普通的屏幕捕获方法 CopyFromScreen 但您无法真正控
  • Greasemonkey调试,获取真实行号

    我正在尝试让 Greasemonkey 用户脚本正常工作 但它一直抛出异常 缺少 声明之前 在 Javascript 错误控制台中 Greasemonkey 文档说应该忽略行号 但由于脚本相当长 因此了解错误发生的位置将非常有帮助 我怎样才
  • 使用 Javascript 旋转文本

    我想循环浏览一系列单词来创建文本旋转效果 我的大部分工作都按预期进行 有什么方法可以在 p 元素的长度上使用 css 过渡吗 当从 char length gt 10 的对象遍历到 char length HTML p span span