jquery获得一个div的一半位置

时间:2012-02-18 18:47:52

标签: jquery offset

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

以下是代码:http://jsfiddle.net/pdQsY/

如何获得div的一半位置。(鼠标移开div的200px,输出字体颜色#ff0。鼠标右移200px的div,输出字体颜色#336)

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

1 个答案:

答案 0 :(得分:4)

使用.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();
});