我正在尝试在一本书中找到的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();