目前我有一些jQuery代码告诉名为div
的{{1}}跟随我的光标。我从a post on stack overflow学到了如何实现这一目标。
我稍微修改了脚本以满足我自己的要求。但是,当我向small-circle
课程添加另一个big-circle
时,会出现问题。似乎正在发生的事情是,container
的{{1}}不允许在id
轴上的small-circle2
内移动。我认为它与
big-circle2
x
和var mouseXval = 0, mouseYval = 0, limitX = 120-30, limitY= 120-30;
值可能需要更改,因为我正在添加另一个名为limitX
的{{1}}。所以我尝试通过将limitY
添加到div
来尝试此方法,但唯一改变的是圈子的位置。 big-circle2
没有跟踪60
轴上的光标。仍然只有limitX = 120-60, limitY= 120-60;
轴。
我认为可能的解决方案可能是small-circle2
和x
轴内的数学运算。另一个问题可能是尝试在y
内添加多个圈子。
这是fiddle.
谢谢!
答案 0 :(得分:0)
Thax到@blex我能看到我离开的地方。事实证明,limitX
和limitY
中的数学没有任何问题,并且它不是容器问题。我在想什么!
问题出现在pageOffset
变量
// issue with selecting both classes
var pageOffset = $(".big-circle, .big-circle2").offset();
此处的问题是同时选择".big-circle, .big-circle2"
来触发offset()
方法。我应该使用offset()
关键字来触发我在上面的两个圈子中的任何一个,而不是选择每个班级然后应用this
。
// use `this` to trigger the elements I hover on
var pageOffset = $(this).offset();
当用户将鼠标移到".big-circle, .big-circle2"
上时,jQuery会触发一个传递给mousemove
事件的回调函数。一旦我们的回调被触发,jQuery就会将当前范围设置为发起事件的DOM元素,在这种情况下是.big-circle
和.big-circle2
。关于所有这一切的很酷的部分是,jQuery使我们能够访问使用mousemove
关键字发起this
事件的元素。
所以我们设置var offsetPage = $(this).offset();
,我们的big-circle2
现在有一个小圆圈,后面是光标。
// jQuery sets the scope of callback to `big-circle, big-circle2`
$(".big-circle, .big-circle2").mousemove(function(event){
// `this` accesses our elements
var pageOffset = $(this).offset();
});