如果元素从窗口左侧移开的条件

时间:2013-06-13 00:47:47

标签: javascript jquery

我试图检测一个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);
 }

1 个答案:

答案 0 :(得分:0)

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