Javascript 当鼠标悬停在缩略图上时,Google plus弹出框?
我想知道如何在鼠标上创建一个弹出框,上面有用户配置文件的详细信息,就像你在google plus上看到的那样。将鼠标悬停在缩略图上时,会出现一个弹出窗口,其中包含将此人添加到您的圆圈中的选项 使用jQuery似乎有点简单,但我一直找不到简单的解决方案。我遇到的大多数插件都太复杂,需要做很多调整。任何关于如何做到这一点的帮助都将不胜感激!Javascript 当鼠标悬停在缩略图上时,Google plus弹出框?,javascript,jquery,Javascript,Jquery,我想知道如何在鼠标上创建一个弹出框,上面有用户配置文件的详细信息,就像你在google plus上看到的那样。将鼠标悬停在缩略图上时,会出现一个弹出窗口,其中包含将此人添加到您的圆圈中的选项 使用jQuery似乎有点简单,但我一直找不到简单的解决方案。我遇到的大多数插件都太复杂,需要做很多调整。任何关于如何做到这一点的帮助都将不胜感激! 最简单的解决方案是在环绕您的个人资料照片的元素中添加一个隐藏的div <div class="profile-popup" style="display:
最简单的解决方案是在环绕您的个人资料照片的元素中添加一个隐藏的div
<div class="profile-popup" style="display: none;">
<!-- Popup info goes here -->
</div>
这只是一个基本概念(代码可能需要稍微调整)。您必须添加一些额外的逻辑,以便在用户将鼠标移到弹出窗口时使其保持打开状态,但这应该可以让您开始
更优雅的解决方案是将JSON数据传递给jQuery脚本,并让它在悬停时动态生成弹出div,但这有点高级。最简单的解决方案是向环绕您的个人资料照片的元素添加隐藏div
<div class="profile-popup" style="display: none;">
<!-- Popup info goes here -->
</div>
这只是一个基本概念(代码可能需要稍微调整)。您必须添加一些额外的逻辑,以便在用户将鼠标移到弹出窗口时使其保持打开状态,但这应该可以让您开始
更优雅的解决方案是将JSON数据传递给jQuery脚本,并让它在悬停时动态生成弹出div,但这有点高级。您可能需要这样做。它不能处理您需要的所有情况(当用户进入弹出窗口时,您需要悬停保持活动状态);但我希望你能解决其中一些问题
以下是基本的jQuery代码:
jQuery(function($) {
function getMyContent($img) {
// do your fancy ajax calls or append your control links and such here
return $('<p />').append($img.clone()).append('Here is my fancy hoverbox');
}
$('#content img').mouseenter(function(e) {
var $this = $(this), off = $this.offset();
var pos = {
// or you could position it relative to the mouse
top: (e.clientY + 2) + 'px',
left: (e.clientX + 2) + 'px'
};
$('#hoverbox').css(pos)
.append(getMyContent($this))
.fadeTo('slow', .95);
}).mouseleave(function(e) {
$('#hoverbox').fadeOut('slow', function() { $(this).html(''); });
});
});
jQuery(函数($){
函数getMyContent($img){
//您可以在这里进行ajax调用或附加控件链接之类的操作
返回$('').append($img.clone()).append('这是我的花式鼠标悬停盒');
}
$(“#内容img”).mouseenter(函数(e){
var$this=$(this),off=$this.offset();
var pos={
//或者您可以相对于鼠标定位它
顶部:(e.clientY+2)+“px”,
左:(e.clientX+2)+“px”
};
$('#hoverbox').css(pos)
.append(getMyContent($this))
.fadeTo('slow',.95);
}).mouseleave(功能(e){
$('#hoverbox').fadeOut('slow',function(){$(this.html('');});
});
});
更新:在弹出窗口中为您更新(是的,我还在胡闹;为什么?您会想的。它不能处理您需要的所有情况(当用户进入弹出窗口时,您需要悬停保持活动状态);但我希望你能解决其中一些问题
以下是基本的jQuery代码:
jQuery(function($) {
function getMyContent($img) {
// do your fancy ajax calls or append your control links and such here
return $('<p />').append($img.clone()).append('Here is my fancy hoverbox');
}
$('#content img').mouseenter(function(e) {
var $this = $(this), off = $this.offset();
var pos = {
// or you could position it relative to the mouse
top: (e.clientY + 2) + 'px',
left: (e.clientX + 2) + 'px'
};
$('#hoverbox').css(pos)
.append(getMyContent($this))
.fadeTo('slow', .95);
}).mouseleave(function(e) {
$('#hoverbox').fadeOut('slow', function() { $(this).html(''); });
});
});
jQuery(函数($){
函数getMyContent($img){
//您可以在这里进行ajax调用或附加控件链接之类的操作
返回$('').append($img.clone()).append('这是我的花式鼠标悬停盒');
}
$(“#内容img”).mouseenter(函数(e){
var$this=$(this),off=$this.offset();
var pos={
//或者您可以相对于鼠标定位它
顶部:(e.clientY+2)+“px”,
左:(e.clientX+2)+“px”
};
$('#hoverbox').css(pos)
.append(getMyContent($this))
.fadeTo('slow',.95);
}).mouseleave(功能(e){
$('#hoverbox').fadeOut('slow',function(){$(this.html('');});
});
});
更新:在为您弹出的弹出窗口中(是的,我仍在胡闹;为什么?谢谢,我更喜欢您的:p谢谢,我必须试试。谢谢,我更喜欢您的:p谢谢,我必须试试。我喜欢,但它似乎有点问题。在chrome中有一个奇怪的随机图像加倍。我还需要定位弹出窗口,使其保持打开状态,直到我将鼠标移出。更新的弹出链接保持打开状态,直到鼠标移出。当mouseenter事件在mouseleave动画完成之前再次发生时,会发生图像加倍;这对你来说应该很容易解决。肯定会有像这样的小小提琴需要你去做;另一种选择是使用你不想要的LIB:)谢谢,我真的很感激。我只需要找出如何修复bug:)当然,让它工作起来,并用具体问题展示一些例子;我相信有人会帮你度过难关的!这是你的密码我喜欢,但它似乎有点像马车。在chrome中有一个奇怪的随机图像加倍。我还需要定位弹出窗口,使其保持打开状态,直到我将鼠标移出。更新的弹出链接保持打开状态,直到鼠标移出。当mouseenter事件在mouseleave动画完成之前再次发生时,会发生图像加倍;这对你来说应该很容易解决。肯定会有像这样的小小提琴需要你去做;另一种选择是使用你不想要的LIB:)谢谢,我真的很感激。我只需要找出如何修复bug:)当然,让它工作起来,并用具体问题展示一些例子;我相信有人会帮你度过难关的!这是你的密码