Tumblr style UserHoverCard

前端 未结 2 1749
不知归路
不知归路 2020-12-11 07:23

Hi everyone i have one problem with ajax hover. I am trying to make a userHoverCard like tumblr. But the hover animation not working when i use it with ajax.

This is

相关标签:
2条回答
  • 2020-12-11 07:26

    When you are showing the card, it only contains the loading message. When the content arrives and you put it in the card, that isn't a CSS change, so the transition isn't activated.

    If you wait until the content has arrives to show the card, there is something to animate.

    0 讨论(0)
  • 2020-12-11 07:30

    Essentially, I've created a pretty clever workaround. It is a mask that covers the image (invisible) until the html is loaded, then the hover css takes place after the z-index is lowered. The hover javascript is on the container.

    FIDDLE

    .summary {
        margin: -50px auto 0;
        width: 50px;
        height: 50px;
        position: relative;
        z-index: 0;
    }
    .summary-mask {
        margin: 50px auto 0;
        width: 50px;
        height: 50px;
        position: relative;
        z-index: 1;
    }
    .loaded .summary-mask {
        z-index: -1;
    }
    

    HTML

    <div class="the-container">
        <div class="summary-mask"></div>
        <div class="summary" data-id="100"> <a href="http://kraigo.tumblr.com/" class="profile-ava"></a>
    
            <div class="user-container"></div>
        </div>
    </div>
    

    JS

    var response = '<div class="p-tooltip"> <div class="profile-header"></div> <div class="profile-navigation"> <a href="http://kraigo.tumblr.com/" class="profile-action">Follow</a> <p class="profile-nick"> <a href="http://kraigo.tumblr.com/">Page Name</a> </p> </div> <div class="profile-ava"></div> <div class="profile-info"> <h1 class="profile-title">Username</h1> <p class="profile-description">Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry\'s standard dummy ..</p> </div> <ul class="profile-items"> <li></li> <li></li> <li></li> </ul> </div>';
    
    $(document).ready(function () {
    
        function showProfileTooltip(e, id) {
            //send id & get info from get_profile.php 
            $.ajax({
                url: '/echo/html/',
                data: {
                    html: response,
                    delay: 0
                },
                method: 'post',
                success: function (returnHtml) {
                    e.find('.user-container').html(returnHtml).promise().done(function () {
                        $('.the-container').addClass('loaded');
                    });
                }
            });
    
        }
    
        function hideProfileTooltip() {
            $('.the-container').removeClass('loaded');
        }
        $('.the-container').hover(function (e) {
    
            var id = $(this).find('.summary').attr('data-id');
            showProfileTooltip($(this), id);
    
        }, function () {
            hideProfileTooltip();
        });
    });
    
    0 讨论(0)
提交回复
热议问题