javascript - 无需jquery的简单动画改变高度

标签 javascript animation

我需要简单的 js 上的简单动画。我认为 jquery 对此太过分了。我需要通过按按钮来增加或减少 block 的高度,但这仅适用于 Opera (.

Example

function global_animate(element, property_to_map, duration, callback) {
   duration = duration || 1000;
   var delta = function (a) { return a; };
   var start = new Date().getTime();
   var property_from_map = {};
    var property_units_map = {};

    for (var property in property_to_map) {
        property_from_map[property] = window.getComputedStyle(element, null)[property] || element.currentStyle[property];
        property_units_map[property] = parseUnits(property_from_map[property]);
        property_from_map[property] = parseInt(property_from_map[property]);
        property_to_map[property] = parseInt(property_to_map[property]);
    }

    function parseUnits(a) {
        try {
        return a.match(/^\d+(\w{2}|%);?$/i)[1];
        } catch (e) {
        return "";
        }                   
    }

    setTimeout(function() {
    var now = (new Date().getTime()) - start;
    var progress = now / duration; 

    for (var property in property_to_map) {
        var result = (property_to_map[property] - property_from_map[property]) * delta(progress) + property_from_map[property];
        element.style[property] = result.toFixed(2) + property_units_map[property];
    }

    if (progress < 1)
        setTimeout(arguments.callee, 10);
    else
        if (typeof callback == 'function')
        callback();
    }, 10);
}

最佳答案

您需要更改正则表达式

alert("23.2px".match(/^\d+(\w{2}|%);?$/i));​ // alert null

像这样的事情

alert("23.2px".match(/^\d+\.*\d*(\w{2}|%);?$/i));​ // alert ["23.2px", "px"]

关于javascript - 无需jquery的简单动画改变高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13247494/

相关文章:

javascript - 如何使用两个按钮启动和停止执行 JavaScript 脚本?

javascript - 如何确保可观察对象上的运算符发生在 HTTP 拦截器之后?

javascript - 如何检查对象中的数组是否都是空的?

javascript - 获取 td 父级和 tr 子级

javascript - 删除在 Chrome 中打开的 pdf 中的图像边框

javascript - 如何使用requestAnimationFrame?

android - 不可见 View 上的 OnTouchListener

javascript - 优化 Jquery 动画

ios - 标签或 TextView 中的动画字母

javascript - 在 ng-repeat 中使用 'track by $index' 时,ng-animate 动画错误的项目