[英]reseting y position of an element in javaScript
我有一個通過單擊按鈕向上補間的畫布。 我正在嘗試使其在補間結束后退回去,但它不起作用。 它在屏幕頂部開始正常。 第一次單擊該按鈕時,它確實下降到400,然后滑到200。但是在下一次單擊時,它會一直飛起來,而不是先回到400。 請幫忙! :)
<!DOCTYPE html>
<html>
<head>
<title></title>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<script src=
"http://cdnjs.cloudflare.com/ajax/libs/gsap/latest/TweenMax.min.js"></script>
</head>
<body>
<button onclick="func();">click</button> <canvas height="100" id="canvas"
style="position:absolute; top:50px; border:3px solid #000000;" width=
"200"></canvas>
<script>
var c = document.getElementById("canvas");
function func(){
c.style.top = 400 + "px";
TweenMax.to(c,2,{y: "-=200", onComplete:foo});
}
function foo(){
c.style.top = "400px";
}
</script>
</body>
</html>
一旦發生補間, c.style.top
與TweenMax的y
修改無關。 在首次調用TweenMax.to
,TweenMax在對象上創建一個轉換矩陣(自定義樣式),並從此開始不再關注常規的CSS屬性。
你必須定義startAt: {y: '400px'}
在你的.to
叫強制TweenMax到漸變重置為靜態值。
問題在於,此補間插件實際上會更改transform
CSS屬性以進行過渡。 因此,對元素的style.top
進行任何更改style.top
不會影響其位置,因為TweenMax的特定於瀏覽器的transform
會覆蓋它。
您可以使用它們的startAt
屬性始終從所需位置開始。 我不建議使用此插件,我個人更喜歡jQuery 。
演示: http : //jsfiddle.net/TyZhB/2/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.