【问题标题】:Jquery Align DIV to LinkJquery将DIV对齐到链接
【发布时间】:2015-01-30 23:16:58
【问题描述】:

我正在尝试显示一个隐藏的 DIV,但我希望它显示在调用它的链接旁边,而不是页面下方。

页面上可能有多个超链接或图像链接,我想将“弹出”div 对齐显示在已单击的链接或图像旁边。

我该怎么做。 ?

这是我正在使用的 jquery:

function deselect(e) {
  $('.pop').slideFadeToggle(function() {
    e.removeClass('selected');
  });    
}

$(function() {
        $("[id$='contact']").click(function(){

    if($(this).hasClass('selected')) {
      deselect($(this));               
    } else {
      $(this).addClass('selected');
      $("#messagepop").css( {position:"absolute", top:event.pageY, left: event.pageX});
      $('.pop').slideFadeToggle();
    }
    return false;
  });

  $('.close').on('click', function() {
    deselect($('#contact'));
    return false;
  });
});

$.fn.slideFadeToggle = function(easing, callback) {
  return this.animate({ opacity: 'toggle', height: 'toggle' }, 'fast', easing, callback);
};

我创建了一个 FIDDLE 来展示我目前所拥有的。

谢谢

【问题讨论】:

标签: jquery html alignment


【解决方案1】:

主要是您通过 id (#messagepop) 而不是类 (.messagepop) 引用 messagepop

其次,你可以让它出现在链接旁边,通过使用offset()来获取链接的位置:

$(".messagepop").css( {position:"absolute",
                       top:$(this).offset().top,
                       left: $(this).offset().left});

Updated Fiddle

【讨论】:

  • 谢谢,效果很好.. 无论如何要在右上角添加一个关闭图标?
  • 是的,您可以在右上角position:absolute 一个链接。只需记住将其连接到相同的 $('.close').click 处理程序 - jsfiddle.net/bm0sascz/5
  • - 谢谢最后一个问题。如果再次单击相同的链接,是否有停止弹出窗口的关闭?或者如果单击了新链接?所以你必须先关闭当前的?
猜你喜欢
  • 2014-03-03
  • 1970-01-01
  • 2010-12-16
  • 2021-11-08
  • 2014-06-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-29
相关资源
最近更新 更多