在javascript中检测元素是否偏离屏幕右边缘60%

时间:2013-06-13 18:27:00

标签: javascript jquery

使用Javascript的本机拖动,如何检测对象何时离屏幕/窗口的右边缘60%。意思是它的40%显示出来了?

60%,我的意思是等于窗口当前宽度的60%。因此,当隐藏窗口当前宽度的60%时,窗口宽度的40%或更少显示。

我需要将此作为if条件,其套件可以是jQuery代码。

我尝试过的是使用Pep.js插件,如果在拖动选项中,则使用第一个插件。这个和代码在这里更详细:jQuery code in if statement not running even though alert in if statement happens

1 个答案:

答案 0 :(得分:1)

好的,来了。

剧本:

window.onload = function () {
    var AniMove = function (doc, element) {
        var ox, oy, mx, my,
            w = element.offsetWidth,
            mouseMove = function (e) {
                e.preventDefault();
                if (element.offsetLeft + 0.4 * w > window.innerWidth) {
                    // 60% of the element's width is outside of the window now... do something
                    return;
                }               
                element.style.left = element.offsetLeft + e.clientX - mx + 'px';
                element.style.top = element.offsetTop + e.clientY - my + 'px';
                mx = e.clientX;
                my = e.clientY;
                return false;
            },
            mouseUp = function () {
                doc.removeEventListener('mousemove', mouseMove);
                doc.removeEventListener('mouseup', mouseUp);
                return;
            },
            mouseDown = function (e) {
                ox = mx = e.clientX;
                oy = my = e.clientY;
                doc.addEventListener('mousemove', mouseMove, false);
                doc.addEventListener('mouseup', mouseUp, false);
                return;
            };
        element.addEventListener('mousedown', mouseDown, false);
    },
    drag = new AniMove(document, document.getElementById('square'));    
}

和HTML:

<div id="square"></div>

最后是CSS:

DIV {
    position: fixed;
    width: 100px;
    height: 100px;
    background: #f00;
}

完成所有这些后,我们有一个demo at jsFiddle。我希望这段代码包含您需要的所有信息。