如何在Mootools中获取div的位置?
我是 Mootools World 的新手,我正在学习它。我陷入了一个小维度的困境。这是我的代码,我插入到 jsFiddle 中:
代码: 超文本标记语言
mootools 代码: var pos = $$('#animate').getPosition(); alert(pos.x);
我可以通过对象提醒 getPosition,但是我得到的结果是: myElement.getPosition().x
- 这个结果 = undefined :(。
请更正我的代码,谢谢!
I'm a newbies in Mootools World and i'm learning it.I'm stuck in a small case of dimension. Here's my code, i was insert into jsFiddle:
The code:
HTML<div class="container"><div id="animate"></div></div>
mootools code:var pos = $$('#animate').getPosition();
alert(pos.x);
i can alert getPosition by oject, but went i get like: myElement.getPosition().x
- this result = undefined :(.
Pls, correct my code, thanks!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
你的mootools代码是错误的。
$$ 表示
this.document.getElements()
(或现在的Slick.search
),它返回一个新的 Element Collection(具有元素原型的元素数组)。$$("#animate")
表示返回所有 id 为 animate 的元素的集合(我希望你只有一个:-p)。结果是:[object]
- HTML 集合。然后,您对其应用getPosition()
,这还将返回[{x: nnnn, y: nnn}]
数组。无论如何,这就是它失败的原因。
如何修复
当您打算通过 id 返回单个元素时,mootools对此非常具体:使用
document.id("animate")
或其快捷方式$(“动画”)
。请注意,与 jquery 不同,这里删除了 # - 它与本机 jsdocument.getElementById("animate")
的功能相同,除了它执行更多操作(例如扩展 proto 和分配 uid)。如果不确定,请始终使用 console.log 结果 - 它会向您显示数组。
NB 你无法获取不在 dom 中的元素的位置或大小,这一点不用说。
http://jsfiddle.net/dimitar/ZHkAb/2/
your mootools code is wrong.
$$ is saying,
this.document.getElements()
(orSlick.search
now) and it returns a new Element Collection (an array of elements with element prototypes).$$("#animate")
says, return a collection of all elements with id animate (I hope you have just one :-p). result of that is:[object]
- a HTML collection. You then apply thegetPosition()
on that, which will also return an array of[{x: nnnn, y: nnn}]
.Anyway, this is why it is failing.
How to fix
when you mean to return a single element by id, mootools is very specific about it: use
document.id("animate")
or the shortcut for it of$("animate")
. Notice that unlike jquery, the # is dropped here - it's identical to what the native jsdocument.getElementById("animate")
does, cept for it does more (like extend proto and assign uid).when not sure, always console.log the result - it would have shown you the array.
NB you cannot get position or size on elements that are not in the dom, bit that goes w/o saying.
http://jsfiddle.net/dimitar/ZHkAb/2/