「MediaWiki:Common.js」:修訂間差異
(建立內容為「→此 JavaScript 會用於使用者載入的每一個頁面。: /* scrollUpButton * Add a button to scroll up to the top of the current page. * @rev 3 (2019-28…」的新頁面) |
無編輯摘要 |
||
第1行: | 第1行: | ||
/* 此 JavaScript 會用於使用者載入的每一個頁面。 */ | /* 此 JavaScript 會用於使用者載入的每一個頁面。 */ | ||
/* scrollUpButton | /* scrollUpButton | ||
* Add a button to scroll up to the top of the current page. | * Add a button to scroll up to the top of the current page. | ||
* @rev 3 (2019-28-07) | * @rev 3 (2019-28-07) | ||
* @author Kwj2772 | * @author Kwj2772 | ||
* @contributor Perhelion | * @contributor Perhelion | ||
* No internationalisation required | * No internationalisation required | ||
* | * [kowiki] Fixed an issue with help-panel-button ([[ko:User:ykhwong]]) | ||
*/ | * [zhwiki] Add a timer to autohide button, check more gadgets. Add scrollDownButton | ||
* @from https://ko.wikipedia.org/?oldid=25440719 | |||
$( | * @maintainer 安忆 ([[zh:User:AnYiLin]]) | ||
' | */ | ||
(function($, mw) { | |||
var scrollDownButtonId = 'scrollDownButton', | |||
scrollUpButtonId = 'scrollUpButton'; | |||
if (mw.config.get('wgServerName').match(/wikimirror\.org$/)) { | |||
scrollDownButtonId += '-zhwiki'; | |||
scrollUpButtonId += '-zhwiki' | |||
} | |||
var | var scrollButtonIcon = '//upload.wikimedia.org/wikipedia/commons/5/59/Font_Awesome_5_regular_arrow-circle-up_blue.svg'; | ||
if (!document.implementation.hasFeature('http://www.w3.org/TR/SVG11/feature#Image', '1.1')) | |||
scrollButtonIcon = '//upload.wikimedia.org/wikipedia/commons/thumb/5/59/Font_Awesome_5_regular_arrow-circle-up_blue.svg/32px-Font_Awesome_5_regular_arrow-circle-up_blue.svg.png'; | |||
$scrollDownButton = $('<img>', { | |||
$ | src: scrollButtonIcon, | ||
id: scrollDownButtonId | |||
}).css({ | |||
cursor: 'pointer', | |||
opacity: 0.7, | |||
}).css({ | |||
position: 'fixed', | position: 'fixed', | ||
display: 'none', | |||
right: '18px', | right: '18px', | ||
transform: 'rotate(180deg)', | |||
'-webkit-transform': 'rotate(180deg)', | |||
'-moz-transform': 'rotate(180deg)', | |||
'-o-transform': 'rotate(180deg)', | |||
'-ms-transform': 'rotate(180deg)' | |||
}).on('click', function() { | |||
$('html, body').animate({ | |||
scrollTop: $(document).height() - $(window).height() | |||
}, 660) | |||
}).on('mouseenter mouseleave', function(e) { | |||
this.style.opacity = e.type === 'mouseenter' ? 1 : 0.7 | |||
}).appendTo('body'); | |||
$scrollUpButton = $('<img>', { | |||
src: scrollButtonIcon, | |||
id: scrollUpButtonId | |||
}).css({ | |||
cursor: 'pointer', | |||
opacity: 0.7, | opacity: 0.7, | ||
position: 'fixed', | |||
display: 'none' | display: 'none', | ||
}).on('click', function () { | right: '18px' | ||
}).on('click', function() { | |||
$('html, body').animate({ scrollTop: 0 }, 660) | $('html, body').animate({ | ||
}).on('mouseenter mouseleave', function (e) { | scrollTop: 0 | ||
this.style.opacity = e.type === 'mouseenter' ? 1 : 0.7 | }, 660) | ||
}).on('mouseenter mouseleave', function(e) { | |||
this.style.opacity = e.type === 'mouseenter' ? 1 : 0.7 | |||
}).appendTo('body'); | }).appendTo('body'); | ||
$(window).on('scroll', function () { | var scrollButtonTimer; | ||
$(window).on('scroll', function() { | |||
var dingHeight = $('#bluedeck_ding>div').height() ? $('#bluedeck_ding>div').height() : 0; | |||
$('#mw-ge-help-panel-cta-button').length > 0 ? $scrollDownButton.css('bottom', dingHeight + 75 + 'px') && $scrollUpButton.css('bottom', dingHeight + 116 + 'px') : $scrollDownButton.css('bottom', dingHeight + 24 + 'px') && $scrollUpButton.css('bottom', dingHeight + 65 + 'px'); | |||
}); | $('#cat_a_lot').length > 0 || $('#proveit').length > 0 || $('.wordcount').length > 0 ? $scrollDownButton.css('left', '10px') && $scrollUpButton.css('left', '10px') : $scrollDownButton.css('left', 'unset') && $scrollUpButton.css('left', 'unset'); | ||
$(this).scrollTop() > 60 ? $scrollDownButton.fadeIn('slow') && $scrollUpButton.fadeIn('slow') : $scrollDownButton.fadeOut('slow') && $scrollUpButton.fadeOut('slow'); | |||
}()); | this.clearTimeout(scrollButtonTimer); | ||
scrollButtonTimer = this.setTimeout(function() { | |||
$scrollDownButton.fadeOut('slow'); | |||
$scrollUpButton.fadeOut('slow') | |||
}, 2000) | |||
}); | |||
$scrollDownButton.on('mouseenter', function() { | |||
window.clearTimeout(scrollButtonTimer) | |||
}); | |||
$scrollUpButton.on('mouseenter', function() { | |||
window.clearTimeout(scrollButtonTimer) | |||
}) | |||
})(jQuery, mw); |
於 2021年3月22日 (一) 01:11 的修訂
/* 此 JavaScript 會用於使用者載入的每一個頁面。 */
/* scrollUpButton
* Add a button to scroll up to the top of the current page.
* @rev 3 (2019-28-07)
* @author Kwj2772
* @contributor Perhelion
* No internationalisation required
* [kowiki] Fixed an issue with help-panel-button ([[ko:User:ykhwong]])
* [zhwiki] Add a timer to autohide button, check more gadgets. Add scrollDownButton
* @from https://ko.wikipedia.org/?oldid=25440719
* @maintainer 安忆 ([[zh:User:AnYiLin]])
*/
(function($, mw) {
var scrollDownButtonId = 'scrollDownButton',
scrollUpButtonId = 'scrollUpButton';
if (mw.config.get('wgServerName').match(/wikimirror\.org$/)) {
scrollDownButtonId += '-zhwiki';
scrollUpButtonId += '-zhwiki'
}
var scrollButtonIcon = '//upload.wikimedia.org/wikipedia/commons/5/59/Font_Awesome_5_regular_arrow-circle-up_blue.svg';
if (!document.implementation.hasFeature('http://www.w3.org/TR/SVG11/feature#Image', '1.1'))
scrollButtonIcon = '//upload.wikimedia.org/wikipedia/commons/thumb/5/59/Font_Awesome_5_regular_arrow-circle-up_blue.svg/32px-Font_Awesome_5_regular_arrow-circle-up_blue.svg.png';
$scrollDownButton = $('<img>', {
src: scrollButtonIcon,
id: scrollDownButtonId
}).css({
cursor: 'pointer',
opacity: 0.7,
position: 'fixed',
display: 'none',
right: '18px',
transform: 'rotate(180deg)',
'-webkit-transform': 'rotate(180deg)',
'-moz-transform': 'rotate(180deg)',
'-o-transform': 'rotate(180deg)',
'-ms-transform': 'rotate(180deg)'
}).on('click', function() {
$('html, body').animate({
scrollTop: $(document).height() - $(window).height()
}, 660)
}).on('mouseenter mouseleave', function(e) {
this.style.opacity = e.type === 'mouseenter' ? 1 : 0.7
}).appendTo('body');
$scrollUpButton = $('<img>', {
src: scrollButtonIcon,
id: scrollUpButtonId
}).css({
cursor: 'pointer',
opacity: 0.7,
position: 'fixed',
display: 'none',
right: '18px'
}).on('click', function() {
$('html, body').animate({
scrollTop: 0
}, 660)
}).on('mouseenter mouseleave', function(e) {
this.style.opacity = e.type === 'mouseenter' ? 1 : 0.7
}).appendTo('body');
var scrollButtonTimer;
$(window).on('scroll', function() {
var dingHeight = $('#bluedeck_ding>div').height() ? $('#bluedeck_ding>div').height() : 0;
$('#mw-ge-help-panel-cta-button').length > 0 ? $scrollDownButton.css('bottom', dingHeight + 75 + 'px') && $scrollUpButton.css('bottom', dingHeight + 116 + 'px') : $scrollDownButton.css('bottom', dingHeight + 24 + 'px') && $scrollUpButton.css('bottom', dingHeight + 65 + 'px');
$('#cat_a_lot').length > 0 || $('#proveit').length > 0 || $('.wordcount').length > 0 ? $scrollDownButton.css('left', '10px') && $scrollUpButton.css('left', '10px') : $scrollDownButton.css('left', 'unset') && $scrollUpButton.css('left', 'unset');
$(this).scrollTop() > 60 ? $scrollDownButton.fadeIn('slow') && $scrollUpButton.fadeIn('slow') : $scrollDownButton.fadeOut('slow') && $scrollUpButton.fadeOut('slow');
this.clearTimeout(scrollButtonTimer);
scrollButtonTimer = this.setTimeout(function() {
$scrollDownButton.fadeOut('slow');
$scrollUpButton.fadeOut('slow')
}, 2000)
});
$scrollDownButton.on('mouseenter', function() {
window.clearTimeout(scrollButtonTimer)
});
$scrollUpButton.on('mouseenter', function() {
window.clearTimeout(scrollButtonTimer)
})
})(jQuery, mw);