1. Advertising
    y u no do it?

    Advertising (learn more)

    Advertise virtually anything here, with CPM banner ads, CPM email ads and CPC contextual links. You can target relevant areas of the site and show ads based on geographical location of the user if you wish.

    Starts at just $1 per CPM or $0.10 per CPC.

Profile when Mouse Over

Discussion in 'JavaScript' started by samuvk, Oct 9, 2015.

  1. #1
    Hi,

    How can I do something like display a profile while mouseover an item? Either in HTML or JavaScript.


    [​IMG]

    I have the following:

    <a href="#" onmouseover="showDetails()" onmouseout="hideDetails()">John</a>

    How could I building the profile itself? Developing the showDetail() function do display:

    [​IMG]

    Thank you very much

    See images attached
     

    Attached Files:

    samuvk, Oct 9, 2015 IP
  2. rehan.khalid.9235

    rehan.khalid.9235 Active Member

    Messages:
    78
    Likes Received:
    2
    Best Answers:
    1
    Trophy Points:
    85
    #2
    i am not sure what exactly you want, but here is what i will do to display profile for showDetails() function.

    
       
    <a href="#" onmouseover="showDetails(this)" onmouseout="hideDetails()">John</a>
            <div id="profilePopup">
                <div class="left">
                    <div>
                        <div class="adjacent">Name: </div><div class="adjacent" id="firstName"></div>
                    </div>
                    <div>
                        <div class="adjacent">Last Name: </div><div class="adjacent" id="lastName"></div>
                    </div>
                    <div>
                        <div class="adjacent">DOB: </div><div class="adjacent" id="dob"></div>
                    </div>
                    <div>
                        <div class="adjacent">Place of Birth: </div><div class="adjacent" id="placeofBirth"></div>
                    </div>
                </div>
                <div class="right">
                    <img src="http://orig03.deviantart.net/e1d4/f/2012/241/8/8/profile_picture_by_pratikartist-d5cuu1m.jpg" width="35" height="35" alt="profile pic"/>
                </div>
            </div>
    HTML:
    then here's my JavaScript

    
      
    function showDetails(ele) {
                    var brect = ele.getBoundingClientRect();
                    var top = brect.y ? brect.y : brect.top;
                    var left = brect.x ? brect.x : brect.left;
                    var width = brect.width;
                    var height = brect.height;
    
                    var padding_left = 5;
                    left += width + padding_left;
    
                    var profilePopup = document.getElementById('profilePopup');
                    profilePopup.style.display = 'block';
                    profilePopup.style.left = left + 'px';
                    profilePopup.style.top = top + 'px';
    
                    var data = {
                        firstName: 'Rehan',
                        lastName: 'Khalid',
                        dob: '05/15/1986',
                        placeofBirth: 'Lahore'
                    };
                    var firstName = document.getElementById('firstName');
                    firstName.innerHTML = data.firstName;
    
                    var lastName = document.getElementById('lastName');
                    lastName.innerHTML = data.lastName;
    
                    var dob = document.getElementById('dob');
                    dob.innerHTML = data.dob;
    
                    var placeofBirth = document.getElementById('placeofBirth');
                    placeofBirth.innerHTML = data.placeofBirth;
                }
                function hideDetails() {             
                    var profilePopup = document.getElementById('profilePopup');
                    profilePopup.style.display = 'none';
                }
    Code (JavaScript):
    lastly , here is my Css

     
    #profilePopup{
                    display: none;
                    position: absolute;
                    z-index: 100;              
                    border: 2px solid #385D8A;
                    padding: 5px;
                    background-color: #DCE6F2;
                }
                .adjacent {
                    display: inline-block;
                    margin-left: 2px;
                }
                .right {
                    float: right;
                }
                .left {
                    float: left;
                }
    Code (CSS):
    *now important point is , you have to make a mechanism (structure) to get user data. like, you can pass 'id' of user in showdetail() and then fetch the user data on basis of that id.

    * here is a demo video of my code , you can see its working
    http://screencast.com/t/LjxRF66fCG2

    Hope this helps :)
     
    rehan.khalid.9235, Oct 9, 2015 IP