在浏览器窗口外部分弹出显示

我正在使用CSS在我的页面上创建一个弹出窗口。 我有一个标签内设置为显示:无;。 然后,当你将鼠标悬停在标签上时,弹出单词的定义。 这对我来说非常有用,但有时弹出窗口会出现在浏览器窗口之外。 有没有办法确保整个弹出窗口保留在CSS的浏览器窗口中,或者我需要添加一些Javascript? 我真的很喜欢弹出窗口出现在链接的位置,但我不在乎它是左右移动,以便在窗口内可见。

这是我的代码:

a span {
display: none;
}

a:hover span {
display: block;
position: absolute;
width: 300px;
z-index: 1000;
}

预先感谢您的帮助! :-)


因此,如果您将类“hvrpop-link”放在您悬停的元素上,那么您将类“hvrpop-win”放在弹出的窗口/菜单上。 然后,下面的内容会将弹出式窗口/菜单推到左侧,使其保持在屏幕上。 注意 - 您在弹出窗口中已经有一个空白左边的余量,您可能需要将其保存在“数据”或其他内容中,以便在调整窗口大小时返回到正确的位置。

它似乎一直工作回到IE7:

$(function() {
    $('.hvrpop-link').hover(function() {
        var win=$(this).find('.hvrpop-win:visible');
        if(win.length>0) {
            var screenwidth=$('body').width();
            var width=win.width();
            var pos=win.position();
            var rightpos=width+pos.left;
            if(rightpos>screenwidth) {
                var moveleft=rightpos-screenwidth;
                win.css('margin-left','-'+moveleft+'px');
            } else {
                win.css('margin-left','0px');
            }
        }
    });
});

您可以使用jQuery检查弹出窗口的角落是否在窗口内。 看看这个:如何检查一个元素是否在屏幕外


将更好地使用CSS代码:

a span {
    position: absolute;
    z-index: 100000;
    display: none;
    min-width: 100px;
    max-width: 50%;
    left: 50%;
    margin-left: -25%;
}
a:hover span {
    display: block;
}
链接地址: http://www.djcxy.com/p/14629.html

上一篇: popup displaying partly outside browser window

下一篇: Use jQuery to hide a DIV when the user clicks outside of it