我需要创建一个非常类似于Rdio在其网站上执行此操作的弹出框。在Rdio上,当您单击用户的缩略图时,将出现一个弹出框,其中包含用户个人资料详细信息。我想知道如何才能完成这样的事情。我正在Ruby on Rails中开发我的网站。首先想到的是jQuery对话框。我还需要Ajax吗?有任何想法吗?

这是指向Rdio的链接。在右侧栏上,将鼠标悬停在用户缩略图上,然后单击向下箭头。弹出框将会出现。 http://www.rdio.com/#/artist/Kings_Of_Leon/album/Only_By_The_Night_1/

最佳答案

肯定有很多jQuery插件可以做到这一点。我自己远离他们,因为我感觉自己可以完全控制自己创造的一切。如果您想要最简单,最快的解决方案,我会说qTip是一个非常简单的解决方案。

http://craigsworks.com/projects/qtip/

否则,MIMIC在rdio站点上看到的基本概念是将每个用户缩略图包装在相对的div中,并给它第二个孩子以保存隐藏的绝对数据。您可以提供附加了用户ID的事物ID。然后,当查看器单击缩略图时,您可以使用ajax从php页面检索必要的HTML。

<div class="wrap relative">
  <div class="thumbnail" id="user_1"></div>
  <div class="hidden absolute" id="userinfo_1">user info will go here</div>
</div>


现在,一些简单的JS助您一臂之力。

$(document).ready(function(){
  $('.thumbnail').click(function(){
    // this will get the ID of the element and extract the user ID from it
    var id = $(this).attr('id').split('_').pop();

    // use ajax and send the user id to a page to retrieve HTML
    // and place this into the hidden info div and show it
    $.get(
      "getinfo.php",
      {"user_id" : id}
      function(data){
        $('#userinfo_'+id).html(data).show();
      }
    );
  });
});


显然,您将不得不考虑单击div来以某种方式重新隐藏用户信息。您可能会在php页面的HTML内制作一个X div,以自动隐藏它,但这将需要一些我现在不打算讨论的额外JS。

您还将需要使用top和left css属性将信息div放置在所需的位置。

这显然是一个非常简单的开始,但我希望它能激发您的想法。

10-06 02:41