gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-28 09:34:45 25 4
gpt4 key购买 nike

我需要简单的 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com