如何在Mootools中获取div的位置?

发布于 2024-12-07 15:37:31 字数 445 浏览 0 评论 0原文

我是 Mootools World 的新手,我正在学习它。我陷入了一个小维度的困境。这是我的代码,我插入到 jsFiddle 中:

FIddle 示例代码

代码: 超文本标记语言

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:

FIddle sample code

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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

东风软 2024-12-14 15:37:31

你的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 不同,这里删除了 # - 它与本机 js document.getElementById("animate") 的功能相同,除了它执行更多操作(例如扩展 proto 和分配 uid)。

如果不确定,请始终使用 console.log 结果 - 它会向您显示数组。

NB 你无法获取不在 dom 中的元素的位置或大小,这一点不用说。

http://jsfiddle.net/dimitar/ZHkAb/2/

your mootools code is wrong.

$$ is saying, this.document.getElements() (or Slick.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 the getPosition() 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 js document.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/

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文