Javascript 使用RaphaelJS设置缩放动画
我试图让缩放动画与拉斐尔的作品,但我没有运气。这就是我的代码的样子: 纸上动画({ 比例:2 }); 但是动画不起作用。这是使用RaphaelJS设置缩放效果动画的正确方法,还是必须手动设置动画(使用JavaScript间隔等…) --编辑--Javascript 使用RaphaelJS设置缩放动画,javascript,animation,raphael,Javascript,Animation,Raphael,我试图让缩放动画与拉斐尔的作品,但我没有运气。这就是我的代码的样子: 纸上动画({ 比例:2 }); 但是动画不起作用。这是使用RaphaelJS设置缩放效果动画的正确方法,还是必须手动设置动画(使用JavaScript间隔等…) --编辑-- 我错了,我指的是一个元素 elementFromPaper.animate({ 比例:2 }); Paper是拉斐尔的元素容器,它没有动画制作方法。 只有圆、矩形等元素。。具有动画制作方法。 如果要更改容器的大小,可以使用(但这不会缩放容器中的任何元素)
我错了,我指的是一个元素 elementFromPaper.animate({ 比例:2
});
Paper
是拉斐尔的元素容器,它没有动画制作方法。
只有圆、矩形等元素。。具有动画制作方法。
如果要更改容器的大小,可以使用(但这不会缩放容器中的任何元素)
编辑:如果要实现放大或缩小等效果,可以使用该方法
EDIT2:scale
不在元素属性列表中,如中所列
要使用缩放设置动画,可以使用“常规”参数
ele.animate({transform: 's2'}) // here `s2` means a 2x scale
我为您编写了一个简单的演示:纸张
是Raphael中元素的容器,它没有动画
方法。
只有圆、矩形等元素。。具有动画制作方法。
如果要更改容器的大小,可以使用(但这不会缩放容器中的任何元素)
编辑:如果要实现放大或缩小等效果,可以使用该方法
EDIT2:scale
不在元素属性列表中,如中所列
要使用缩放设置动画,可以使用“常规”参数
ele.animate({transform: 's2'}) // here `s2` means a 2x scale
我为您编写了一个简单的演示:与画布位置的唯一本机交互是通过该方法完成的,但是它不会设置转换到画布位置或缩放级别的动画。要实现动画,可以使用漂亮的javascript动画方法平滑过渡到所需的viewBox状态
首先,初始化所有浏览器的方法:
window.requestAnimFrame = (function(){
return window.requestAnimationFrame ||
window.webkitRequestAnimationFrame ||
window.mozRequestAnimationFrame ||
window.oRequestAnimationFrame ||
window.msRequestAnimationFrame ||
function( callback ){
window.setTimeout(callback, 1000 / 60);
};
})();
下面是设置平移动画的示例代码
var viewBoxX = 0;
var viewBoxY = 0;
//@param direction 'up', 'down', 'right' or 'left'
function pan(direction) {
var start = Date.now();
function step(timestamp) {
var progress = timestamp - start;
var x = viewBoxX,
y = viewBoxY;
if(direction == 'up') {
y = viewBoxY - progress * 0.7;
}
else if (direction == 'down') {
y = viewBoxY + progress * 0.7;
}
else if(direction == 'right') {
x = viewBoxX + progress * 0.7;
}
else {
x = viewBoxX - progress * 0.7;
}
//Now we set the view box at the modified x and y coordinates
//Replace 100,100 with the size of your canvas
paper.setViewBox(x, y, 100, 100);
if (progress < 400) {
window.requestAnimFrame(step);
}
else {
viewBoxX = x;
viewBoxY = y;
}
}
window.requestAnimFrame(step);
}
var viewBoxX=0;
var-viewBoxY=0;
//@参数方向“向上”、“向下”、“向右”或“向左”
功能盘(方向){
var start=Date.now();
功能步骤(时间戳){
var progress=时间戳-开始;
var x=viewBoxX,
y=viewBoxY;
如果(方向==“向上”){
y=viewBoxY-进度*0.7;
}
否则如果(方向=‘向下’){
y=viewBoxY+进度*0.7;
}
否则如果(方向=‘右’){
x=viewBoxX+进度*0.7;
}
否则{
x=viewBoxX-进度*0.7;
}
//现在,我们将视图框设置为修改后的x和y坐标
//将100100替换为画布的大小
纸张.设置视箱(x,y,100,100);
如果(进度<400){
窗口帧(步骤);
}
否则{
viewBoxX=x;
viewBoxY=y;
}
}
窗口帧(步骤);
}
与画布位置的唯一本机交互是通过该方法完成的,但是它不会设置转换到画布位置或缩放级别的动画。要实现动画,可以使用漂亮的javascript动画方法平滑过渡到所需的viewBox状态
首先,初始化所有浏览器的方法:
window.requestAnimFrame = (function(){
return window.requestAnimationFrame ||
window.webkitRequestAnimationFrame ||
window.mozRequestAnimationFrame ||
window.oRequestAnimationFrame ||
window.msRequestAnimationFrame ||
function( callback ){
window.setTimeout(callback, 1000 / 60);
};
})();
下面是设置平移动画的示例代码
var viewBoxX = 0;
var viewBoxY = 0;
//@param direction 'up', 'down', 'right' or 'left'
function pan(direction) {
var start = Date.now();
function step(timestamp) {
var progress = timestamp - start;
var x = viewBoxX,
y = viewBoxY;
if(direction == 'up') {
y = viewBoxY - progress * 0.7;
}
else if (direction == 'down') {
y = viewBoxY + progress * 0.7;
}
else if(direction == 'right') {
x = viewBoxX + progress * 0.7;
}
else {
x = viewBoxX - progress * 0.7;
}
//Now we set the view box at the modified x and y coordinates
//Replace 100,100 with the size of your canvas
paper.setViewBox(x, y, 100, 100);
if (progress < 400) {
window.requestAnimFrame(step);
}
else {
viewBoxX = x;
viewBoxY = y;
}
}
window.requestAnimFrame(step);
}
var viewBoxX=0;
var-viewBoxY=0;
//@参数方向“向上”、“向下”、“向右”或“向左”
功能盘(方向){
var start=Date.now();
功能步骤(时间戳){
var progress=时间戳-开始;
var x=viewBoxX,
y=viewBoxY;
如果(方向==“向上”){
y=viewBoxY-进度*0.7;
}
否则如果(方向=‘向下’){
y=viewBoxY+进度*0.7;
}
否则如果(方向=‘右’){
x=viewBoxX+进度*0.7;
}
否则{
x=viewBoxX-进度*0.7;
}
//现在,我们将视图框设置为修改后的x和y坐标
//将100100替换为画布的大小
纸张.设置视箱(x,y,100,100);
如果(进度<400){
窗口帧(步骤);
}
否则{
viewBoxX=x;
viewBoxY=y;
}
}
窗口帧(步骤);
}
我的错误,我指的是元素而不是纸画布。我的错误,我指的是元素而不是纸画布。