0

我试图检测一个 jQuery 插件使可拖动的元素何时移出窗口的左边缘。

我在拖动自定义事件中有一个 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);
 }
4

1 回答 1

0

我建议使用元素的边界框,因为它是由浏览器为元素所在的页面计算的,使用element.getBoundingClientRect().left(这可能与 jQuery 的 offset.left 相同)并简单地检查它是否小于 0。如果是这样,您的元素至少部分不在屏幕上。然后,作为第二次检查,如果element.getBoundingClientRect().left + element.getBoundingClientRect().width小于 0,则您的元素完全不在屏幕上。

于 2013-06-13T01:01:57.673 回答