- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 Raphael.js在悬停时为 SVG 圆的半径设置动画。我喜欢库提供的库存 elastic
效果,但我想增加振幅 - 即,使圆圈在悬停时更加热情地增长和收缩 - 而不是额外的速度,但当效果运行时变大和缩小。
我复制了 elastic
函数并将其重命名为 super_elastic
,并一直在此处对其进行修补:
我不知道这个函数是如何工作的,所以我一直在修改它的数值,看看会发生什么。到目前为止,我还没有发现任何似乎可以做我想做的事情。任何人都可以推荐对函数(或完全不同的函数)的任何修改,以实现我正在寻找的功能吗?
谢谢!
更新:
感谢您的回复!对不起,我可能没有很好地解释这一点。我猜“变大变小”这句话尤其具有误导性。
我知道 r
属性会影响动画运行后圆的最终半径;不过,我想要做的是让 elastic
动画以更大的幅度“弹跳”。也就是说,虽然动画仍将以我为圆圈设置的相同 r
值开始和结束,但我希望 elastic
过渡很多更显着 - 在到达最终 r
值之前,在过渡期间更积极地扩大和收缩圆圈。为此,我假设我需要修改 elastic
函数中使用的方程式,以使效果更加显着。
希望这是有道理的——如果不举个例子就很难解释,但如果我有一个例子,我就不需要发布这个问题了。 ;-)
最佳答案
好的,根据您的说明,这里有一个新的答案。要扩大缓动(放大)的效果,您需要将缓动结果乘以这样的乘数。
return 6 * Math.pow(2, -10 * n) * Math.sin((n - .075) * (2 * Math.PI) / .3) + 1;
但是,当您这样做时,您会发现放大的大部分都太快了。小的部分走得慢,大的部分走得快。因此,需要更改较大时的速度。我的猜测(似乎有效)是将 Math.sin()
更改为 Math.cos()
因为这改变了相位并且它似乎可以正常工作,如您所见这里:http://jsfiddle.net/jfriend00/fuaNp/39/ .
return 6 * Math.pow(2, -10 * n) * Math.cos((n - .075) * (2 * Math.PI) / .3) + 1;
关于此缓动函数需要了解的其他事项。这部分:
(2 * Math.PI) / .3
确定有多少反弹周期。乘数越大,反弹次数越多(但反弹速度越快)。乘数越小,它的反弹就越少(并且这些反弹将进行得越慢)。
这部分:
Math.pow(2, -10 * n)
确定弹跳衰减的速度,因为 n 越大,该值越小,当 n 变大时,其他乘数将被抵消。所以:
Math.pow(2, -5 * n)
让它衰减得更慢(你会在开始时看到更多较大的摆动,而在结束时看到较少的较小摆动。
关于javascript - 如何增加这种弹性动画效果的振幅?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8686998/
我正在处理电话的原始电话声音和录音,我想在 .Net C# 项目中将它们标准化为特定的音量级别。 声音是原始音频字节的集合(单声道无 header 16 位签名 PCM 音频 16000Hz)。 音频
我正在尝试编写一个应监视任何传入声音的iPhone应用程序。我不确定如何获取iPhone的麦克风录制的声音并检测其频率。如果相同频率的声音重复几次,那么我需要采取一些措施。任何人都可以在这里帮助我。我
我正在尝试录制来自 MIC 的声音并绘制实时图表。我能够记录和绘制图表。问题是使用下面的代码记录的值不准确,例如……下图是我在完全没有声音时得到的。我看过使用 fft 的示例,但我不确定这对我的情况是
我是一名优秀的程序员,十分优秀!