I have got lots of emails from my readers asked that how to design a facebook style profile tooltip with cover page,profile picture, name, headline, add as friend & send message button..
Here I had explained a very basic version of facebook profile tooltip with all features they have asked.
You can use this script in your web & social networking projects with little customization.
I hope you all like this.. 🙂 thanks
Contents
CSS Code
body {
margin:0;
padding:0;
background: #e8ebed;
}
.container { margin:0 auto; width:50%; background:#fff; padding:20px; }
#profile-tip {
background: #fff;
border: 1px solid #BFBFBF;
width: 300px;
margin: 0 auto;
border-radius: 3px;
position: absolute;
display: none;
padding: 0 0 10px 0;
}
.profile-tip-padding {
padding: 20px 10px 10px 10px;
}
.profile-tip-cover img {
width: 100%;
height:100px;
}
.profile-tip-avatar {
text-align: left;
margin-top: -45px;
cursor:pointer;
margin-left:10px;
}
.profile-tip-avatar img {
width: 75px;
height: 75px;
padding:1px; border:1px solid #ccc;
background:#ccc;
cursor:pointer;
}
.profile-tip-info {
text-align: center;
}
.profile-tip-info .cover-username {
float: none;
margin-top: -55px;
margin-left:-20px;
font-size:16px;
font-weight:bold;
}
.profile-tip-info .cover-headline {
float: none;
margin-top: 10px;
margin-left:30px;
font-size:14px;
color:#333;
}
.profile-tip-info a { color:#fff; text-decoration:none; }
.profile-tip-buttons {
padding: 0 10px 0 10px;
overflow: auto;
}
.profile-tip-buttons-container {
width: 60px;
margin: 0 auto;
}
.profile-tip-divider {
width: 280px;
height: 1px;
background: #dee0e3;
margin: 10px auto;
}
.profile-tip-bio {
padding: 0 10px;
color: #AAA;
text-align: right;
}
.msg_body
{
min-height:70px;
margin-bottom:10px;
border-bottom:solid 1px #fafafa;
}
.msg_img img
{
float:left;
height:50px;
width:50px;
border:solid 1px #dedede;
padding:5px;
cursor:pointer;
}
.msg_text
{
margin-left:70px;
min-height:50px;
word-wrap:break-word;
overflow:hidden;
padding:5px;
display:block;
font-size:12px;
font-family:Verdana, Geneva, sans-serif;
}
.time { font-size:12px; font-style:italic; color:#999; }
.loader { background: url('loader.gif'); }
jQuery Code
function FacebookprofileTip(post, delay) {
if(delay == 1) {
clearInterval(TipTimer);
} else {
TipTimer = setInterval(function(){
var msgType = 'message';
// The position to be increased
var height = 58;
var left = 20;
// Start displaying the profile card with the preloader
$('#profile-tip').show();
$('#profile-tip').html('<div class="profile-tip-padding"><div class="loader"></div></div>');
// Get the position of the parent element
var position = $("#"+msgType+post).position();
// Store the position into an array
var pos = {
top: (position.top + height) + 'px',
left: (position.left + left) + 'px'
};
// Set the position of the profile card
$('#profile-tip').css(pos);
$.ajax({
type: "POST",
url: "fetch_profile.php",
cache: false,
success: function(html) {
$('#profile-tip').html(html);
}
});
clearInterval(TipTimer);
}, 500);
}
}
$(document).ready(function() {
$('#profile-tip').mouseleave(function() {
$('#profile-tip').hide();
});
});
HTML Code
<div class="msg_body" id="message1">
<div class="msg_img">
<img onmouseover="FacebookprofileTip(1, 0)" onmouseout="FacebookprofileTip(0, 1);" onclick="FacebookprofileTip(0, 1);" src="http://0.gravatar.com/avatar/82620dd66b22b34a915303b93b92929b" />
</div>
<div class="msg_text">
w3lessons.info Programming Blog <a href="http://www.w3lessons.info">http://w3lessons.info</a>
<div class="time">5 seconds ago</div>
</div>
</div>
<div id="profile-tip"></div>
Div  id=”message1”  – where message1 – 1 stands for message id for unique tooltip creations
fetch_profile.php
<div class="profile-tip-cover"><img src="https://fbcdn-sphotos-e-a.akamaihd.net/hphotos-ak-frc3/311522_4373718103997_1253579792_n.jpg">
</div>
<div class="profile-tip-avatar"> <a href="http://www.facebook.com/itzurkarthi" target="_blank"><img src="https://fbcdn-profile-a.akamaihd.net/hprofile-ak-ash3/c0.45.180.180/s160x160/581450_4755153199636_1162983977_a.jpg" /></a> </div>
<div class="profile-tip-info"> <a href="http://www.facebook.com/itzurkarthi">
<div class="cover-username">Karthikeyan K</div>
<div class="cover-headline">Founder @ w3lessons.info</div>
</a> </div>
<div class="profile-tip-divider"></div>
<div class="profile-tip-bio"><a class="uibutton confirm" href="http://www.facebook.com/itzurkarthi" target="_blank">Add as Friend</a> <a class="uibutton" href="http://www.facebook.com/itzurkarthi" target="_blank">Send Message</a></div>
You can pass the user id to fetch_profile.php to show different content with mysql as backend using jQuery Ajax.
Please don’t forget to share and subscribe to latest updates of the blog.
Thanks!
I have downloaded the script and the script itself works fine when we put in the images. However, please what is the purpose of the post field ? THANKS
Hi Max,
Post is nothing but post Id/article Id
Thanks
After the mouse is removed, it does not disappear immediately in the latest version of Firefox. Please how to solve this ?
The demo is not displaying any image
Karthikeyan, how can I pass the ID to fetch_profile.php?
For example, the page is displayed to the user through the URL:
http://server/page.php?id=2?
How is the line of jquery:
url: “page.php”,
thank you so much
You don’t need to do http://server/page.php?id=2 to get the id. You can take the id with javascript witih some few changes on the script directly from the image
Max, thank you very much!!!
I got it!!!!
It’s pleasure
How can i put the Image field to . Because my users have an avatar and it should by dynamic! Thank you for reading to now. Please help me.
My email: linhhonkhongnguyen_online@yahoo.com