0
$('#imgSW').click(function (e) {
var w=window.innerWidth/2;
if (e.pageX > w)(changeUp())
else(changeDown());
});

#imgSw这在水平居中时效果很好。
但现在,它被放置在一个右 div 内,具有液体宽度。
如何仅引用 而#imgSW不是窗口来获取光标坐标。

4

2 回答 2

1

为此改变你var w的:

var $this = $(this)
var w=$this.offset().left+($this.width()/2);

它应该工作。

于 2013-06-03T18:09:52.603 回答
1

您需要获取距窗口左边缘的元素距离,这将是从左侧偏移的元素,但由于这与文档相关,您还需要减去任何滚动距离以使其与可见窗口相关。

然后只需减去该距离(并在 if / else 中使用正确的花括号):

$('#imgSW').on('click', function(e) {
    var cursor_x  = e.pageX,
        elem_left = $(this).offset().left,
        wind_left = $(window).scrollLeft();

    var true_left = cursor_x - (elem_left - wind_left);

    var w = window.innerWidth/2;

    if (true_left > w) {
       changeUp();
    } else {
       changeDown();
    }
});
于 2013-06-03T18:11:23.740 回答