有没有办法在用户滚动网站时开始动画对象,并在用户使用Raphaël-JavaScript库停止滚动时停止动画?
我已经创建了动画,但我无法找到有关如何将动画与网站滚动条同步的内容。
编辑:
var path6 = paper.path('M 148 140 L 176 164 L 94 189 L 148 140 Z').attr("fill","#9B5024").attr("stroke","transparent").attr("stroke-width",0);
_path3 = Raphael.transformPath('M 148 140 L 102 155 L 94 189 L 148 140 Z');
path6.animate({path: _path3}, 4000);
以上是我的代码,我想要做的是将我的动画与页面滚动同步,所以不要在.animate()中提供4000毫秒,我希望只要用户滚动,该对象就会生成动画。
答案 0 :(得分:1)
您可以使用纯javascript轻松完成此操作。
只需应用Raphaël启动和停止方法。
var timer = null;
function scrolling() {
document.getElementById("Status").innerHTML = "scrolling..";
if(timer !== null) {
clearTimeout(timer);
}
timer = setTimeout(function() {
document.getElementById("Status").innerHTML = "stopped scrolling";
}, 150);
}
window.onscroll = scrolling;
Here's a weave with a stopping and starting animation.
var paper = new Raphael('Animation', 100, 100);
var rect = paper.rect(20, 20, 20, 20).attr({fill: '#F00'});
var anim = Raphael.animation({transform: "r360"}, 2500).repeat(Infinity);
var timer = null;
function scrolling() {
document.getElementById("Status").innerHTML = "scrolling..";
if(timer !== null) {
rect.animate(anim);
}
timer = setTimeout(function() {
rect.stop();
}, 150);
}
window.onscroll = scrolling;