MediaWiki:Gadget-scrollUpButton.js: Perbedaan antara revisi
Tampilan
Konten dihapus Konten ditambahkan
+ |
Hidayatsrf (bicara | kontrib) gunakan ikon OOUI supaya lebih seragam dengan antarmuka lain,https://commons.wikimedia.org/wiki/OOUI_icons Tag: Suntingan perangkat seluler Suntingan peramban seluler Suntingan seluler lanjutan |
||
Baris 14: | Baris 14: | ||
scrollUpButtonId = 'scrollUpButton-zhwiki'; |
scrollUpButtonId = 'scrollUpButton-zhwiki'; |
||
var scrollButtonIcon = '//upload.wikimedia.org/wikipedia/commons/ |
var scrollButtonIcon = '//upload.wikimedia.org/wikipedia/commons/8/81/OOjs_UI_icon_upTriangle-progressive.svg'; |
||
if (!document.implementation.hasFeature('http://www.w3.org/TR/SVG11/feature#Image', '1.1')) |
if (!document.implementation.hasFeature('http://www.w3.org/TR/SVG11/feature#Image', '1.1')) |
||
scrollButtonIcon = '//upload.wikimedia.org/wikipedia/commons/thumb/ |
scrollButtonIcon = '//upload.wikimedia.org/wikipedia/commons/thumb/8/81/OOjs_UI_icon_upTriangle-progressive.svg/32px-OOjs_UI_icon_upTriangle-progressive.svg.png'; |
||
$scrollDownButton = $('<img>', { |
$scrollDownButton = $('<img>', { |
Revisi per 17 Juni 2024 18.39
/* 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-zhwiki',
scrollUpButtonId = 'scrollUpButton-zhwiki';
var scrollButtonIcon = '//upload.wikimedia.org/wikipedia/commons/8/81/OOjs_UI_icon_upTriangle-progressive.svg';
if (!document.implementation.hasFeature('http://www.w3.org/TR/SVG11/feature#Image', '1.1'))
scrollButtonIcon = '//upload.wikimedia.org/wikipedia/commons/thumb/8/81/OOjs_UI_icon_upTriangle-progressive.svg/32px-OOjs_UI_icon_upTriangle-progressive.svg.png';
$scrollDownButton = $('<img>', {
src: scrollButtonIcon,
id: scrollDownButtonId
}).css({
cursor: 'pointer',
opacity: 0.7,
position: 'fixed',
display: 'none',
right: '18px',
transform: 'rotate(180deg)',
'user-select': 'none'
}).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
}).attr('draggable', 'false').appendTo('body');
$scrollUpButton = $('<img>', {
src: scrollButtonIcon,
id: scrollUpButtonId
}).css({
cursor: 'pointer',
opacity: 0.7,
position: 'fixed',
display: 'none',
right: '18px',
'user-select': 'none'
}).on('click', function() {
$('html, body').animate({
scrollTop: 0
}, 660)
}).on('mouseenter mouseleave', function(e) {
this.style.opacity = e.type === 'mouseenter' ? 1 : 0.7
}).attr('draggable', 'false').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);