Javascript 元素离开窗口左侧时的If条件

Javascript 元素离开窗口左侧时的If条件,javascript,jquery,Javascript,Jquery,我试图检测一个元素(jQuery插件使其可拖动)何时离开窗口的左边缘 我在on drag自定义事件中有一个if条件。事件在拖动时触发,但当元素移出屏幕左边缘时,条件内的警报不会触发 $('#tabViewWindow').pep({ axis:'x', useCSSTranslation:false, drag:function(ev, obj){ if(obj.dx>0 && obj.$el.offset().left>$(windo

我试图检测一个元素(jQuery插件使其可拖动)何时离开窗口的左边缘

我在on drag自定义事件中有一个if条件。事件在拖动时触发,但当元素移出屏幕左边缘时,条件内的警报不会触发

$('#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);
 }
这让我觉得我的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);
 }

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

您能显示一下
obj
的分配位置吗?为什么要乘以0?@Asad更新了问题以显示我的完整js/jQuery代码。@Qantas94Heavy表示窗口宽度的0%。当这个数量或更多超过边缘时。那么0本身就足够了吗?我不想知道它何时完全脱离屏幕。我想知道它什么时候离开屏幕,什么时候离开窗口,哪怕是一点点。我还更新了我的代码以显示我的所有代码/实现。在这种情况下,
。左<0
就是您所需要的。我仍然感到困惑。什么元素,左?你能准确地把我应该在你的答案中的if语句中写下什么吗?你写下“当元素离开屏幕左边缘时,条件中的警报不会触发”。这个元素。它有一个边界框“left”值,如果该值低于0,则该元素已超过屏幕的左边缘。