[提問交流]ThinkBox仿thinkphp頭像名片

發表於2020-04-04
演示效果參考:http://www.erdangjiade.com/js/869.html


下面是兩個頭像,只要給.avatar加上user_id即可在其右側出現名片彈出層。
<div class="avatar" user_id="365"> 
    <a href="http://www.erdangjiade.com/" target="blank" title="進入素材火的主頁"><img src="images/80_80.gif" /></a>  </div>   <div class="avatar" user_id="520"> 
    <a href="http://www.erdangjiade.com/js" target="blank" title="進入特效的主頁"><img src="http://www.erdangjiade.com/Public/images/logo.png" /></a>  </div>
ThinkBox名片外掛呼叫方法
//所有頭像繫結ajax獲取名片  var ajaxGetCard;  var timeout; 
 
$(document).delegate('.avatar,.ThinkBox-wrapper', 'mouseenter', function(event) { 
    //延遲執行滑鼠移除事件 
    clearTimeout(timeout); 
    var ele = $(this); 
    var user_id = ele.attr('user_id'); 
    if (user_id == undefined) { 
        return false; 
    } 
 
    //獲取當前元素的位置,計算彈出框位置 
    var ele_l = ele.offset().left; 
    var ele_t = ele.offset().top; 
    var x = ele_l + 53; 
    var y = ele_t; 
 
    //如果已經載入過了,則直接顯示 
    var card = ele.find('.card-box'); 
    if (card.html() != null) { 
        box = $.ThinkBox( 
                card.get(0).outerHTML, 
                { 
                    'fixed': false, 
                    'center': false, 
                    'unload': true, 
                    'close': '', 
                    'dataEle': '', 
                    'style': '', 
                    'x': x, 
                    'y': y, 
                    'modal': false 
                } 
        ); 
    } else { 
        ajaxGetCard = $.get('ajax.php', {'uid': user_id}, 
        function(data) { 
            box = $.ThinkBox( 
                    data, 
                    { 
                        'fixed': false, 
                        'onload': true, 
                        'center': false, 
                        'close': '', 
                        'dataEle': '', 
                        'style': '', 
                        'x': x, 
                        'y': y, 
                        'modal': false 
                    } 
            ); 
            ele.append(data); 
            ele.find('.card-box').hide(); 
        }); 
    } 
    event.stopPropagation();  }).delegate('.avatar,.ThinkBox-wrapper', 'mouseleave', function(event) { 
    var user_id = $(this).attr('user_id'); 
    if (user_id == undefined && $(this).attr('class') != 'ThinkBox-wrapper ThinkBox-') { 
        return false; 
    } 
    ajaxGetCard.abort(); 
    //延遲執行滑鼠移除事件 
    timeout = setTimeout("$('.ThinkBox-wrapper').remove();", 30); 
    event.stopPropagation();  });
回覆

相關文章