« MediaWiki:Common.js » : différence entre les versions
mAucun résumé des modifications |
(test autre script) |
||
| Ligne 1 : | Ligne 1 : | ||
/* Tout JavaScript ici sera chargé avec chaque page accédée par n’importe quel utilisateur. */ | /* Tout JavaScript ici sera chargé avec chaque page accédée par n’importe quel utilisateur. */ | ||
// A script that adds a "Back To Top" button in the footer of the Oasis theme. | |||
// I don't like scrolling back to top on long pages neither do you :) | |||
// Created by Noemon from Dead Space Wiki | |||
// Used files: [[File:BackToTopArrow_white.png]] [[File:BlackToTopArrow.png]] | |||
(function(window, $, mw) { | |||
'use strict'; | |||
var buttonStart = typeof window.BackToTopStart === 'number' ? | |||
window.BackToTopStart : | |||
window.innerHeight, | |||
scrollSpeed = typeof window.BackToTopSpeed === 'number' ? | |||
window.BackToTopSpeed : | |||
}); | 600, | ||
fadeSpeed = typeof window.BackToTopFade === 'number' ? | |||
window.BackToTopFade : | |||
600, | |||
$button, | |||
cc = mw.config.get('wgSassParams')['color-community-header'], | |||
theme; | |||
// Double-run protection | |||
if (window.BackToTopLoaded) { | |||
return; | |||
} | |||
window.BackToTopLoaded = true; | |||
function init() { | |||
$button.children('div').hide(); | |||
$(window).scroll($.throttle(100, function() { | |||
if ($(this).scrollTop() > buttonStart) { | |||
switch (fadeSpeed) { | |||
case 0: | |||
$button.children('div').show(); | |||
break; | |||
default: | |||
$button.children('div').fadeIn(fadeSpeed); | |||
break; | |||
} | |||
} else { | |||
switch (fadeSpeed) { | |||
case 0: | |||
$button.children('div').hide(); | |||
break; | |||
default: | |||
$button.children('div').fadeOut(fadeSpeed); | |||
break; | |||
} | |||
} | |||
})); | |||
mw.hook('dev.BackToTopButton').fire($button); | |||
} | |||
function click() { | |||
$('body, html').animate({ | |||
scrollTop: 0 | |||
}, scrollSpeed); | |||
return false; | |||
} | |||
function modernPreload(l) { | |||
if (++_loaded == l) { | |||
modernInit(window.dev.wds, window.dev.colors); | |||
} | |||
} | |||
function modernInit(wds, colors) { | |||
cc = colors.parse(cc); | |||
theme = cc.isBright() ? '#000000' : '#ffffff'; | |||
cc = cc.hex(); | |||
$button = $('<div>', { | |||
id: 'BackToTopBtn', | |||
append: [ | |||
$('<div>', { | |||
css: { | |||
background: cc, | |||
color: theme, | |||
}, | |||
'html': wds.icon('menu-control') | |||
}) | |||
], | |||
click: click | |||
}).appendTo(document.body); | |||
$.proxy(modernReposition, $button.children('div'))(); | |||
$(window).on('resize', $.throttle(100, $.proxy(modernReposition, $button.children('div')))); | |||
init(); | |||
} | |||
function modernReposition() { | |||
this.css({ | |||
'right':$(window).width()/100*5, | |||
'bottom':$('#WikiaBar #WikiaBarWrapper').height()+8 | |||
}); | |||
} | |||
function arrowInit() { | |||
$button = $('<li>', { | |||
click: click, | |||
id: 'backtotop' | |||
}).append( | |||
$('<img>', { | |||
src: 'https://images.wikia.nocookie.net/dev/images/' + ( | |||
(theme === 'black' || window.BackToTopArrowBlack) ? | |||
'f/f2/BlackToTopArrow' : | |||
'c/c3/BackToTopArrow_white' | |||
) + '.png' | |||
}) | |||
).appendTo('#WikiaBarWrapper .toolbar > .tools'); | |||
init(); | |||
} | |||
function oldInit(i18n) { | |||
$button = $('<li>', { | |||
click: click, | |||
id: 'backtotop' | |||
}).append( | |||
$('<button>', { | |||
css: { | |||
height: '20px' | |||
}, | |||
type: 'button', | |||
text: (typeof window.BackToTopText === 'string' && window.BackToTopText) || i18n.msg('backToTop').plain() | |||
}) | |||
).appendTo('#WikiaBarWrapper .toolbar > .tools'); | |||
init(); | |||
} | |||
if (window.BackToTopModern) { | |||
var _loaded = 0; | |||
[ | |||
{ | |||
h: 'wds', | |||
s: 'u:dev:WDSIcons/code.js' | |||
}, | |||
{ | |||
h:'colors', | |||
s: 'u:dev:Colors/code.js' | |||
} | |||
].forEach(function(lib, i, a) { | |||
importArticle({ | |||
type: 'script', | |||
article: lib.s | |||
}); | |||
mw.hook('dev.' + lib.h).add( | |||
$.proxy(modernPreload, null, a.length) | |||
); | |||
}); | |||
} else if (window.BackToTopArrow) { | |||
arrowInit(); | |||
} else { | |||
importArticle({ | |||
type: 'script', | |||
article: 'u:dev:MediaWiki:I18n-js/code.js' | |||
}); | |||
mw.hook('dev.i18n').add(function (i18n) { | |||
i18n.loadMessages('BackToTopButton').done(oldInit); | |||
}); | |||
} | |||
importArticle({ | |||
type: 'style', | |||
article: 'u:dev:MediaWiki:BackToTopButton.css' | |||
}); | |||
}(this, jQuery, mediaWiki)); | |||
Version du 23 août 2020 à 02:52
/* Tout JavaScript ici sera chargé avec chaque page accédée par n’importe quel utilisateur. */
// A script that adds a "Back To Top" button in the footer of the Oasis theme.
// I don't like scrolling back to top on long pages neither do you :)
// Created by Noemon from Dead Space Wiki
// Used files: [[File:BackToTopArrow_white.png]] [[File:BlackToTopArrow.png]]
(function(window, $, mw) {
'use strict';
var buttonStart = typeof window.BackToTopStart === 'number' ?
window.BackToTopStart :
window.innerHeight,
scrollSpeed = typeof window.BackToTopSpeed === 'number' ?
window.BackToTopSpeed :
600,
fadeSpeed = typeof window.BackToTopFade === 'number' ?
window.BackToTopFade :
600,
$button,
cc = mw.config.get('wgSassParams')['color-community-header'],
theme;
// Double-run protection
if (window.BackToTopLoaded) {
return;
}
window.BackToTopLoaded = true;
function init() {
$button.children('div').hide();
$(window).scroll($.throttle(100, function() {
if ($(this).scrollTop() > buttonStart) {
switch (fadeSpeed) {
case 0:
$button.children('div').show();
break;
default:
$button.children('div').fadeIn(fadeSpeed);
break;
}
} else {
switch (fadeSpeed) {
case 0:
$button.children('div').hide();
break;
default:
$button.children('div').fadeOut(fadeSpeed);
break;
}
}
}));
mw.hook('dev.BackToTopButton').fire($button);
}
function click() {
$('body, html').animate({
scrollTop: 0
}, scrollSpeed);
return false;
}
function modernPreload(l) {
if (++_loaded == l) {
modernInit(window.dev.wds, window.dev.colors);
}
}
function modernInit(wds, colors) {
cc = colors.parse(cc);
theme = cc.isBright() ? '#000000' : '#ffffff';
cc = cc.hex();
$button = $('<div>', {
id: 'BackToTopBtn',
append: [
$('<div>', {
css: {
background: cc,
color: theme,
},
'html': wds.icon('menu-control')
})
],
click: click
}).appendTo(document.body);
$.proxy(modernReposition, $button.children('div'))();
$(window).on('resize', $.throttle(100, $.proxy(modernReposition, $button.children('div'))));
init();
}
function modernReposition() {
this.css({
'right':$(window).width()/100*5,
'bottom':$('#WikiaBar #WikiaBarWrapper').height()+8
});
}
function arrowInit() {
$button = $('<li>', {
click: click,
id: 'backtotop'
}).append(
$('<img>', {
src: 'https://images.wikia.nocookie.net/dev/images/' + (
(theme === 'black' || window.BackToTopArrowBlack) ?
'f/f2/BlackToTopArrow' :
'c/c3/BackToTopArrow_white'
) + '.png'
})
).appendTo('#WikiaBarWrapper .toolbar > .tools');
init();
}
function oldInit(i18n) {
$button = $('<li>', {
click: click,
id: 'backtotop'
}).append(
$('<button>', {
css: {
height: '20px'
},
type: 'button',
text: (typeof window.BackToTopText === 'string' && window.BackToTopText) || i18n.msg('backToTop').plain()
})
).appendTo('#WikiaBarWrapper .toolbar > .tools');
init();
}
if (window.BackToTopModern) {
var _loaded = 0;
[
{
h: 'wds',
s: 'u:dev:WDSIcons/code.js'
},
{
h:'colors',
s: 'u:dev:Colors/code.js'
}
].forEach(function(lib, i, a) {
importArticle({
type: 'script',
article: lib.s
});
mw.hook('dev.' + lib.h).add(
$.proxy(modernPreload, null, a.length)
);
});
} else if (window.BackToTopArrow) {
arrowInit();
} else {
importArticle({
type: 'script',
article: 'u:dev:MediaWiki:I18n-js/code.js'
});
mw.hook('dev.i18n').add(function (i18n) {
i18n.loadMessages('BackToTopButton').done(oldInit);
});
}
importArticle({
type: 'style',
article: 'u:dev:MediaWiki:BackToTopButton.css'
});
}(this, jQuery, mediaWiki));