MediaWiki:Gadget-scrollUpButton.js
来自UTASOY
注意:在发布之后,您可能需要清除浏览器缓存才能看到所作出的变更的影响。
- Firefox或Safari:按住Shift的同时单击刷新,或按Ctrl-F5或Ctrl-R(Mac为⌘-R)
- Google Chrome:按Ctrl-Shift-R(Mac为⌘-Shift-R)
- Internet Explorer或Edge:按住Ctrl的同时单击刷新,或按Ctrl-F5
- Opera:按 Ctrl-F5。
/* 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]]) * Copy from https://otomad.wiki/MediaWiki:Gadget-scrollUpButton.js */ (function($, mw) { var scrollDownButtonId = 'scrollDownButton', scrollUpButtonId = 'scrollUpButton'; if (mw.config.get('wgServerName').match(/wikimirror\.org$/)) { scrollDownButtonId += '-zhwiki'; scrollUpButtonId += '-zhwiki' } var scrollButtonIcon = '/images/arrow.svg'; if (!document.implementation.hasFeature('http://www.w3.org/TR/SVG11/feature#Image', '1.1')) scrollButtonIcon = '/images/f/f6/Round_arrow_circle_up_black_24dp.png'; $scrollDownButton = $('<img>', { src: scrollButtonIcon, id: scrollDownButtonId }).css({ cursor: 'pointer', opacity: 0.51, position: 'fixed', display: 'none', right: '28px', 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() }, 400) }).on('mouseenter mouseleave', function(e) { this.style.opacity = e.type === 'mouseenter' ? 1 : 0.51 }).appendTo('body'); $scrollUpButton = $('<img>', { src: scrollButtonIcon, id: scrollUpButtonId }).css({ cursor: 'pointer', opacity: 0.51, position: 'fixed', display: 'none', right: '28px' }).on('click', function() { $('html, body').animate({ scrollTop: 0 }, 400) }).on('mouseenter mouseleave', function(e) { this.style.opacity = e.type === 'mouseenter' ? 1 : 0.51 }).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);