javascript - 我如何检测 jQuery UI 碰撞何时翻转

标签 javascript jquery jquery-ui position collision

当鼠标悬停时,我制作了一个带有弹出窗口的表格 <td>使用 jQuery UI 位置。

HTML - 带左/右箭头绝对位置的弹出窗口。

<div id="compare-popup">
    <div id="arrow-left"></div>
    <div id="arrow-right"></div>
    <table cellspacing="0" class="table">
        <tr>
            <td colspan="8">January 4th</td>
        </tr>
        <tr>
            <td>12,086</td>
            <td>6,992</td>
            <td>7,277</td>
            <td>6,612</td>
        </tr>
    </table>
</div>

Java 脚本:

$(document).ready(function(){
    $('td.popup').hoverIntent(function(){
        $('#compare-popup').fadeIn();
        $('#compare-popup').position({
            my: 'left + 10 top',
            at: 'right + 10 top',
            of: $(this),
            collision: 'flip'
        });
    }, 
    function(){
        $('#compare-popup').fadeOut();
        $('#compare-popup').position({
            my: 'left + 10 top',
            at: 'right + 10 top',
            of: $(this),
            collision: 'flip'
        });
    })
});

现在 jquery UI 检测浏览器的边缘并使其翻转。
弹出窗口有左右箭头指向原始单元格。
请告诉我如何检测弹出窗口何时翻转,以便显示/隐藏每个侧边箭头。

请点击链接以更好地理解我的问题。 http://ninninny.com/question/

谢谢。

最佳答案

可能有更优雅的方法来做到这一点,但为了保持简单,您可以添加一个查看弹出窗口偏移量的 if 语句。像这样:

Working Example

$(document).ready(function () {
    $('td.popup').hoverIntent(function () {
        $('#compare-popup').fadeIn();
        $('#compare-popup').position({
            my: 'left+10 top',
            at: 'right+10 top',
            of: $(this), // or $("#otherdiv)
            collision: 'flip'
        });
        if ($('#compare-popup').offset().left > $(this).offset().left) {  //Important bit
            $('#arrow-left').show();
            $('#arrow-right').hide();
        } else {
            $('#arrow-left').hide();
            $('#arrow-right').show();
        }
    },

    function () {
        $('#compare-popup').fadeOut();
        $('#compare-popup').position({
            my: 'left+10 top',
            at: 'right+10 top',
            of: $(this), // or $("#otherdiv)
            collision: 'flip'
        });
    });
});

关于javascript - 我如何检测 jQuery UI 碰撞何时翻转,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20140695/

相关文章:

javascript - Flipclock js倒计时1小时无需重置

jquery - 如何在不提供任何现有容器的情况下将 jQuery.loadTemplate 放入新元素中?

jQuery Datepicker 删除单元格的边距

javascript - 是否有任何事件可以识别滚动条点击

javascript - 未找到 Hook "after_run"的脚本。 Cordova , ionic ,安卓

javascript - 从多个对象数组中返回具有最高值的对象

javascript - jQuery UI Sortable 当项目重新排列或在列表之间移动时触发

javascript - 通过在文本框中输入多个产品 ID 将多个产品添加到购物车

javascript - 更改所选菜单的背景颜色

jquery - 切换 HTML "spinner"输入的显示