使用 Javascript 创建自定义缓动
Create Custom Easing using Javascript
我正在尝试创建自定义缓动函数,但我遇到了一些困难。换句话说,数学让我感到困惑...
我希望我的函数增加页面中某些元素的宽度,并且增量值需要随着元素索引的增加而减小。
请考虑以下值:
50, 150, 230, 280, 310, 330
虽然我很欣赏可能不可能生成这些确切的值,但我本质上想要一个接近这些值的函数。
这是我到目前为止所拥有的:
$('.something').each(function(i){
var scale = Math.round(30*(i/10)*(2-(i/10)));
dimension = scale*dimension;
console.log(dimension);
});
这可能非常容易,但我今天正在努力了解数学,所以任何帮助将不胜感激
这是一个现场演示,展示了如何使用二次缓出函数来实现类似于您所描述的曲线。
var out = document.getElementById("output");
// t: current time, b: beginning value, c: change in value, d: duration
function easeOutQuad(t, b, c, d) {
return -c *(t/=d)*(t-2) + b;
}
for (var i = 0; i < 1; i+=0.1) {
out.innerHTML += Math.round(easeOutQuad(i, 50, 280, 1)) + "<br>";
}
<div id="output"></div>
向@c微笑大喊大叫,以在评论中链接jQuery easeOutQuad函数,这是本演示的基础。
你可以浏览Robert Penner的缓动函数生成器。它对于创建自定义缓动函数可能非常有用:
// generated example
function(t, b, c, d) {
var ts=(t/=d)*t;
var tc=ts*t;
return b+c*(63.2425*tc*ts + -185.23*ts*ts + 198.58*tc + -93.89*ts + 18.2975*t);
};
相关文章:
- DataTables-创建自定义分页样式(加载更多样式)
- 如何在javascript中创建自定义事件
- 在angularjs中创建自定义控件的推荐方法
- 创建自定义函数以在函数上运行完整的多选下拉列表
- 使用自定义记号创建可缩放的Y轴
- 遍历SC.ManyArrray以创建要附加到SproutCore中的另一个视图的自定义视图
- 单击或取消选中复选框时,如何创建弹出的自定义窗口
- 为自定义网站创建JavaScript搜索框,创建显示搜索结果的弹出窗口
- 在jquery和javascript中创建自定义日历背后的逻辑
- Magento创建自定义的职业表格,并从CMS页面调用
- 如何为javascript创建自定义标签?或者这是我不知道的其他事情吗;我不知道
- 如何创建自定义属性以添加if.bind
- 自定义筛选器不'我不使用django数据表视图创建的ajax.data.Json
- 创建自定义URL
- 在 Backbone.js 中创建自定义“同步”方法
- 在 Chrome 扩展程序中创建自定义事件的最惯用方式
- 如何使用引导程序创建自定义滚动条
- 自定义创建的谷歌地图嵌入
- 通过续集保存自定义创建的对象
- 在自定义创建的按钮中隐藏HTML javascript代码