当元素移出窗口左侧时的条件



我试图检测当一个元素,一个jQuery插件使可拖动,移动离开窗口的左边缘。

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

这让我觉得我的if-condition出了问题。

对我来说,这意味着向左移动,当任何大于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,因为它已经为浏览器计算了元素所在的页面。如果是这样,您的元素至少部分不在屏幕上。然后,作为第二次检查,如果element.getBoundingClientRect().left + element.getBoundingClientRect().width小于0,则元素完全不在屏幕上。

最新更新