$('#imgSW').click(function (e) {
var w=window.innerWidth/2;
if (e.pageX > w)(changeUp())
else(changeDown());
});
#imgSw
这在水平居中时效果很好。
但现在,它被放置在一个右 div 内,具有液体宽度。
如何仅引用 而#imgSW
不是窗口来获取光标坐标。
$('#imgSW').click(function (e) {
var w=window.innerWidth/2;
if (e.pageX > w)(changeUp())
else(changeDown());
});
#imgSw
这在水平居中时效果很好。
但现在,它被放置在一个右 div 内,具有液体宽度。
如何仅引用 而#imgSW
不是窗口来获取光标坐标。
为此改变你var w
的:
var $this = $(this)
var w=$this.offset().left+($this.width()/2);
它应该工作。
您需要获取距窗口左边缘的元素距离,这将是从左侧偏移的元素,但由于这与文档相关,您还需要减去任何滚动距离以使其与可见窗口相关。
然后只需减去该距离(并在 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();
}
});