【问题标题】:jquery show div below svg circlejquery在svg圆下面显示div
【发布时间】:2015-08-17 19:23:38
【问题描述】:

我有一个带有一排圆圈的 SVG,每次你点击一个圆圈时,我希望一个弹出窗口直接出现在圆圈下方,并带有类似工具提示的箭头,

我遇到的问题是工具提示的位置取决于鼠标单击的位置,而不是相对于圆圈(我希望它出现在圆圈的中间)。

我目前正在使用 jquery ui 位置实用程序来执行此操作。

这里是代码

thisSeat.click(function(e){ 
    $('#' + seatID).position({
        my: "top",
        at: "center bottom",
        of: e,
        offset: "-8 12",
       collision: "none"
   });
});

任何帮助将不胜感激。

【问题讨论】:

  • 我们真的需要看到更多,我们可以作为堆栈运行 sn-p 或 jsfiddle 的东西是最好的。
  • 您可以获得圆的偏移位置并将弹出框移动到圆的中心。

标签: jquery css jquery-ui svg


【解决方案1】:

没有必要使用 JQuery UI :) 您可以对点击的圆圈使用偏移量。试试这个:

$("circle").each(function () {
    var seatID = $(this).attr('class');
    $(this).click(function (e) {
        $(".ticket-price").not('#' + seatID).hide();
        $("#" + seatID).show();

        var offset = $(this).offset();
        var popoverWidth = $('#' + seatID).width()

        $('#' + seatID).css(
            {position: 'absolute', 
             top: (offset.top + 20)+'px', 
             left: offset.left - (popoverWidth/2) - 5 + 'px'
            });
    });
});

这是 JSFiddle:http://jsfiddle.net/1wp1zLf7/2/。注意绝对定位和对元素位置的小调整以显示在圆的中心。

【讨论】:

  • 感谢这个效果很好,我必须减去父偏移量才能使其正确定位,但之后看起来很棒!
猜你喜欢
  • 1970-01-01
  • 2020-06-05
  • 2017-08-24
  • 2018-01-19
  • 1970-01-01
  • 2012-07-05
  • 2015-03-03
  • 1970-01-01
  • 2021-11-18
相关资源
最近更新 更多