$('#imgSW').click(function (e) {
var w=window.innerWidth/2;
if (e.pageX > w)(changeUp())
else(changeDown());
});
当#imgSw
水平居中时,此工作正常
但现在,它被放置在右侧div中,液体宽度
如何仅仅引用#imgSW
来获取光标坐标,而不是窗口。
答案 0 :(得分:1)
为此更改var w
:
var $this = $(this)
var w=$this.offset().left+($this.width()/2);
它应该有用。
答案 1 :(得分: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();
}
});