如何使用gravatar和jquery加载页面?

发布于 2024-07-09 07:04:58 字数 206 浏览 7 评论 0原文

我正在使用 gravatar 为每个在页面上发布故事的用户加载头像。 我还使用 jquery 来圆化页面上某些 span 元素的角。 不幸的是,看起来从 gravatar 中获取头像是在应用 jquery 效果之前发生的(如果没有 gravatar 代码,元素会立即四舍五入),因此元素在网站上可见后外观会立即发生变化。 有什么办法可以解决这个问题吗? (我使用的是asp.net mvc)

I am using gravatar to load avatars for each user that posts a story on a page. I also am using jquery to round the corners of some span elements on the page. Unfortunately, it looks like grabbing the avatars from gravatar occurs before the jquery effects are applied (Without the gravatar code the elements are immediately rounded) so the elements change in appearance an instant after being visible on the site. Is there any way to work around this? (I am using asp.net mvc)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

悲歌长辞 2024-07-16 07:04:58

我想你是使用 url 加载 gravatars,而不是 ajax 等。
document.ready() 将在 DOM 加载时执行,而不一定在加载所有(gravatar)图像时执行。 您可以尝试在您的情况下使用 window.onload 事件。

I suppose you're loading gravatars using urls, not ajax etc.
document.ready() will execute when the DOM is loaded, not necessarily when all (gravatar) images are loaded. You might try to use window.onload event in your case.

听起来好像您的头像加载脚本是在外观修改 jQuery 调用之前执行的。 有什么办法可以手动调用头像加载吗? 如果是这样,您可以使用 jQuery 的 document.ready 首先调用您的修饰更改,然后调用 Gravatar 加载。 这样,您就不会在“更重要”的 UI 更改运行之前等待头像完成。

It sounds as though your gravatar loading script is executing before the appearance-modifying jQuery calls. Is there any way you can manually call the gravatar load? If so, you can use jQuery's document.ready to call your cosmetic changes first, then call the gravatar load. This way, you won't be waiting for the gravatars to finish before the "more important" UI changes get run.

喜你已久 2024-07-16 07:04:58

这是工作 JsFiddle 演示如何使用 JSONP 调用 API 来获取用户头像配置文件

   $("form").on("submit", function(e) {
        e.preventDefault();

        $.ajax("http://en.gravatar.com/" + md5($("#email").val()) + ".json", { dataType: "jsonp" })
        .done(function(result) { 
            for(var idx in result.entry)
            {
                var profile = result.entry[idx];
                console.log(profile);
                $("#displayName").text(profile.displayName);
                $("#avatar").attr("src", profile.thumbnailUrl);
            }
        }).fail(function(result) { console.log("fail", arguments); });


    });

Here is a working JsFiddle demo how to get a user gravatar profile using JSONP call to API

   $("form").on("submit", function(e) {
        e.preventDefault();

        $.ajax("http://en.gravatar.com/" + md5($("#email").val()) + ".json", { dataType: "jsonp" })
        .done(function(result) { 
            for(var idx in result.entry)
            {
                var profile = result.entry[idx];
                console.log(profile);
                $("#displayName").text(profile.displayName);
                $("#avatar").attr("src", profile.thumbnailUrl);
            }
        }).fail(function(result) { console.log("fail", arguments); });


    });
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文