MediaWiki:Gadget-UserLinkAvatar.js:修订间差异
跳到导航
跳到搜索
imported>=海豚= 无编辑摘要 |
小无编辑摘要 |
||
(未显示3个用户的33个中间版本) | |||
第3行: | 第3行: | ||
var magnifierOn = +mw.user.options.get("gadget-userLinkAvatarMagnifier", 0) === 1; | var magnifierOn = +mw.user.options.get("gadget-userLinkAvatarMagnifier", 0) === 1; | ||
var $window = $(window); | var $window = $(window); | ||
var loadingImage = mw.config.get("wgServer") + mw.config.get("wgScriptPath") + '/images/2/28/Moehime.jpg'; | |||
$window.on('load.UserLinkAvatar', function() { | $window.on('load.UserLinkAvatar', function() { | ||
var images = []; | |||
$('.mw-userlink:not(.user-avatar-added)').each(function() { | $('.mw-userlink:not(.user-avatar-added)').each(function() { | ||
var item = $(this); | var item = $(this); | ||
var src = mw.config.get("wgServer | var src = mw.config.get("wgServer") + mw.config.get("wgScriptPath") + '/extensions/Avatar/avatar.php?user=' + encodeURIComponent(item.text()); | ||
var img = $('<img/>'). | var img = $('<img/>').one('error', function() { | ||
window.setTimeout(function() { | |||
img.attr('src', loadingImage); | |||
}, 0); | |||
}).addClass('userlink-avatar-small').attr({ | |||
"data-src": src, | |||
"src": loadingImage | |||
}); | |||
images.push(img[0]); | |||
var bigAvatar = $('<span/>').addClass('userlink-avatar'); | var bigAvatar = $('<span/>').addClass('userlink-avatar'); | ||
item.prepend(bigAvatar.append(img)); | item.prepend(bigAvatar.append(img)); | ||
第18行: | 第26行: | ||
var magnifierImg = $('<img/>', { | var magnifierImg = $('<img/>', { | ||
attr: { | attr: { | ||
src: src | "data-src": src, | ||
"src": loadingImage | |||
}, | }, | ||
on: { | on: { | ||
error: function() { | error: function() { | ||
window.setTimeout(function() { | |||
magnifierImg.closest('.userlink-avatar-large').remove(); | |||
}, 0); | |||
} | } | ||
} | } | ||
}); | }); | ||
images.push(magnifierImg[0]); | |||
bigAvatar.on('click', function() { | bigAvatar.on('click', function() { | ||
window.open(mw.config.get("wgServer | window.open(mw.config.get("wgServer") + mw.config.get("wgScriptPath") + '/index.php?title=Special%3A查看头像&user=' + encodeURIComponent(item.text()), '_blank'); | ||
return false; | return false; | ||
}).append($('<div/>', { | }).append($('<div/>', { | ||
第36行: | 第47行: | ||
}).prepend(magnifierImg)).addClass('userlink-avatar-hover'); | }).prepend(magnifierImg)).addClass('userlink-avatar-hover'); | ||
item.before(bigAvatar); | item.before(bigAvatar); | ||
} | } | ||
}); | }); | ||
if (typeof window.lazyload === "function") { | |||
lazyload(images); | |||
} else { | |||
images.forEach(function(ele) { | |||
ele.src = ele.dataset.src; | |||
}); | |||
} | |||
}); | }); | ||
$(function() { | $(function() { |
2022年11月20日 (日) 14:18的最新版本
// <pre>
(function() {
var magnifierOn = +mw.user.options.get("gadget-userLinkAvatarMagnifier", 0) === 1;
var $window = $(window);
var loadingImage = mw.config.get("wgServer") + mw.config.get("wgScriptPath") + '/images/2/28/Moehime.jpg';
$window.on('load.UserLinkAvatar', function() {
var images = [];
$('.mw-userlink:not(.user-avatar-added)').each(function() {
var item = $(this);
var src = mw.config.get("wgServer") + mw.config.get("wgScriptPath") + '/extensions/Avatar/avatar.php?user=' + encodeURIComponent(item.text());
var img = $('<img/>').one('error', function() {
window.setTimeout(function() {
img.attr('src', loadingImage);
}, 0);
}).addClass('userlink-avatar-small').attr({
"data-src": src,
"src": loadingImage
});
images.push(img[0]);
var bigAvatar = $('<span/>').addClass('userlink-avatar');
item.prepend(bigAvatar.append(img));
item.addClass("user-avatar-added");
if (magnifierOn) {
var magnifierImg = $('<img/>', {
attr: {
"data-src": src,
"src": loadingImage
},
on: {
error: function() {
window.setTimeout(function() {
magnifierImg.closest('.userlink-avatar-large').remove();
}, 0);
}
}
});
images.push(magnifierImg[0]);
bigAvatar.on('click', function() {
window.open(mw.config.get("wgServer") + mw.config.get("wgScriptPath") + '/index.php?title=Special%3A查看头像&user=' + encodeURIComponent(item.text()), '_blank');
return false;
}).append($('<div/>', {
attr: {
class: 'userlink-avatar-large'
}
}).prepend(magnifierImg)).addClass('userlink-avatar-hover');
item.before(bigAvatar);
}
});
if (typeof window.lazyload === "function") {
lazyload(images);
} else {
images.forEach(function(ele) {
ele.src = ele.dataset.src;
});
}
});
$(function() {
$window.trigger("load.UserLinkAvatar");
});
})();
// </pre>