我试图检测一个jQuery插件可以拖动的元素何时从窗口的左边缘移开。
我在on drag custom-event中有一个if条件。该事件会在拖动时触发,但当元素移出屏幕左边缘时,条件内的警报不会触发。
这让我觉得我的if条件有问题。
对我来说,这是左边的读数,当屏幕左边缘有任何大于0%的内容时。
$('#tabViewWindow').pep({
axis:'x',
useCSSTranslation:false,
drag:function(ev, obj){
if(obj.dx>0 && obj.$el.offset().left>$(window).width()*0){
obj.velocityQueue = new Array(5);
alert("left and moving towards off screen");
return false;
}
handleOpacity(ev, obj)
},
});
function handleOpacity(ev, obj){
var opacity = 1 - (parseInt(obj.$el.css('left'))/$(window).width());
obj.$el.css('opacity', opacity);
}
答案 0 :(得分:0)
我建议使用元素的边界框,因为浏览器使用element.getBoundingClientRect().left
计算元素所在的页面(这可能与jQuery的offset.left相同)并且只是检查是否它小于0.如果是这样,你的元素至少部分偏离屏幕。然后,作为第二次检查,如果element.getBoundingClientRect().left + element.getBoundingClientRect().width
小于0,则您的元素完全在屏幕外。