JS摇晃和淡入淡出按钮不起作用。这段代码有什么问题?



我正在尝试在一本书中找到的JS示例,但由于某种原因它不起作用。我也检查了错别字。我没有使用任何特定的库。

这是一个按钮,单击后应该会摇晃和褪色。它不做这些事情。

(这是JSFiddle链接)

.HTML

<button onclick="shake(this, fadeOut);">Shake and Fade</button>

.JS

function shake(e, oncomplete, distance, time) {
    if (typeof e === "string") e = document.getElementById(e);
    if (!time) time = 500;
    if (!distance) distance = 5;
    var originalStyle = e.style.cssText;
    e.style.position = "relative";
    var start = (new Date()).getTime();
    animate();
    function animate() {
        var now = (new Date()).getTime();
        var elapsed = now - start;
        var fraction = elapsed / time;
        if (fraction < 1) {
            var x = distance * Math.sin(fraction * 4 * Math.PI);
            e.style.left = x + "px";
            setTimeout(animate, Math.min(25, time - elapsed));
        } else {
            e.style.cssText = originalStyle;
            if (oncomplete) oncomplete(e);
        }
    }
}
function fadeOut(e, oncomplete, time) {
    if (typeof e === "string") e = document.getElementById(e);
    if (!time) time = 500;
    var ease = Math.sqrt;
    var start = (net Date()).getTime();
    animate();
    function animate() {
        var elapsed = (new Date()).getTime() - start;
        var fraction = elapsed / time;
        if (fraction < 1) {
            var opacity = 1 - ease(fraction);
            e.style.opacity = String(opacity);
            setTimeout(animate,
            Math.min(25, time - elapsed));
        } else {
            e.style.opacity = "0";
            if (oncomplete) oncomplete(e);
        }
    }
}

检查错误控制台,您的代码存在语法错误。

var start = (net Date()).getTime();

应该是:

var start = (new Date()).getTime();

最新更新