javascript - 悬停方向根据容器大小

标签 javascript jquery html css hoverintent

我想根据容器大小改变悬停方向,如果容器上没有足够的空间来显示右侧的悬停,它应该显示在左侧。

详情见 fiddle :

http://jsfiddle.net/jHgkp/3/

我使用 hoverIntent,但完整的细节在上面的 fiddle 上:

            $(document).ready(function(){
                $(".discover").hoverIntent({
                over: makeVisible,
                out: makeInvisible,
                timeout: 200
                });
            }); // close document.ready

            function makeVisible() {
            $(this).find('ul').fadeIn(100);}
            function makeInvisible() {
            $(this).find('ul').fadeOut(300);}

最佳答案

有几种方法。

1) 您可以在第三个元素上设置工具提示样式以显示在左侧(不是动态的)

2) 您可以将元素 offest().left + element.width + 工具提示宽度与支架宽度进行比较。 (动态)

3) Yo 可以使用工具提示 offest + width 并将其直接与支架宽度进行比较。 (动态)

这取决于你到底想要什么......

这是唯一添加的 JS。

var holderWidth = $('.container').outerWidth();

//where 260 is left 150 + width 110
var pos = $(this).offset().left + 260
if(holderWidth < pos){
    $(this).addClass('leftPos');
}else{
    $(this).removeClass('leftPos');
}

和 1 行 css:

.leftPos ul { left: auto; right: 150px; }

Demo

关于javascript - 悬停方向根据容器大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20023395/

相关文章:

javascript - 如何使用 JavaScript 从网页中获取突出显示的文本

javascript - AJAX请求很慢,在其他页面找不到解决方案

jQuery 显示/隐藏 - CSS 显示值影响我的布局

javascript - Angular IE8 attrs.$set/element.attr 不起作用

jquery - 如何最好地使用 jQuery : with HTML or CSS for formatting

Jquery - 滚动上的导航栏颜色变化不会逆转

javascript - 使用 jquery/ajax 在 CodeIgniter 的 Controller 中调用函数

javascript - jquery,点击放大图片,然后点击agian让它回到之前的宽度

javascript - 如何阻止点击事件在多次点击时排队?

javascript - 禁止在空表单字段上搜索