jquery获取一个div的一半位置

标签 jquery offset

我在 jquery 中遇到了一些基本问题,但我无法解决。

代码如下:http://jsfiddle.net/pdQsY/

如何获取div的一半位置。(鼠标悬停在div左侧200px,输出字体颜色#ff0。鼠标悬停在div右侧200px,输出字体颜色#336)

我使用e.pageX - div.offsetLeft,但是这个回显NaN,谢谢。

最佳答案

使用.offset().left代替不存在的jQuery属性offsetLeft

出于效率考虑,您应该缓存 $("#main")$('p') 变量。您在 mousemove 处理程序中调用了两次。 mousemove 处理程序经常被触发,因此您最终会轻松调用 $("#main") 数千次。

演示:http://jsfiddle.net/pdQsY/2/

var $main  = $("#main");
var $p = $('p');
$main.mousemove(function(e) {
    var mouseX = e.pageX;
    var offsetLeft = $main.offset().left;
    if(mouseX < 200 + offsetLeft){
         $p.css('color','#ff0');
    } else {
         $p.css('color','#336');
    }
    $p.html(mouseX - offsetLeft);
    e.preventDefault();
});

关于jquery获取一个div的一半位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9344095/

相关文章:

javascript - 使用 jQuery 的内联元素的左偏移量

azure - Azure 中 VM 之间的时间同步偏差和偏移 (VMSS)

jquery - 使用 transform 平移节点,直到它到达其父节点的位置

php - 重新加载页面时使选项卡保持不变

javascript 等待 DOM 元素实际绘制并完成

asp.net - 在母版页上进行 jQuery Ajax 调用?

math - 累积同质变换 : rotations work, 但翻译却没有?

javascript - 如果单击其他地方,如何将元素样式恢复正常?

php - 从数据库中获取记录并将它们显示为不同的值

jquery - 将 JS 文件放在 Css 之前导致边距错误