在javaScript中重新设置元素的y位置
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属性。
您必须在.to
调用中定义startAt: {y: '400px'}
,以强制TweenMax将tweening重置为静态值。
问题是这个tweening插件实际上更改了transform
CSS属性来进行转换。因此,对元素的style.top
进行任何更改都不会影响其位置,因为它会被TweenMax的特定于浏览器的transform
覆盖。
您可以使用它们的startAt
属性始终从所需位置开始。不过我不推荐这个插件,我个人更喜欢jQuery。
演示:http://jsfiddle.net/TyZhB/2/
相关文章:
- 使用javascript查找元素位置的最快方法
- 当静态元素与滚动上的固定元素位置重叠时进行检测
- 另一个元素JAVAscript中的元素位置
- CSS.滚动后元素位置发生变化
- JQuery Mobile单击事件不起作用,具体取决于HTML中的元素位置
- 正在查找表行中的td元素位置
- jquery追加元素位置始终为0
- 如何通过JS移动元素位置而不闪烁
- 当按钮点击更改元素位置时,Javascript
- 在事件发生时获取元素位置的当前页面 URL,并将该 URL 输出到另一个页面上
- 更改 JS/D3 页上的元素位置
- 字典中由元素:位置对组成的移动元素
- 观察元素位置并对 AngularJS 中的更改做出反应
- JavaScript 设置宽度尺寸会更改元素位置
- Angularjs 获取元素位置
- 按类名获取元素位置
- 从数组中获取元素位置
- 如何在更改选择元素宽度时固定所有元素位置
- 破解以在滚动条出现时保持水平元素位置
- 将第一个数组中的元素位置与另一个数组进行比较