<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki.onlyfumos.com/w/index.php?action=history&amp;feed=atom&amp;title=MediaWiki%3AScrollUpButton.js</id>
	<title>MediaWiki:ScrollUpButton.js - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.onlyfumos.com/w/index.php?action=history&amp;feed=atom&amp;title=MediaWiki%3AScrollUpButton.js"/>
	<link rel="alternate" type="text/html" href="https://wiki.onlyfumos.com/w/index.php?title=MediaWiki:ScrollUpButton.js&amp;action=history"/>
	<updated>2026-11-07T20:34:35Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Touhou Wiki</subtitle>
	<generator>MediaWiki 1.46.0</generator>
	<entry>
		<id>https://wiki.onlyfumos.com/w/index.php?title=MediaWiki:ScrollUpButton.js&amp;diff=14575&amp;oldid=prev</id>
		<title>CrazyGermanOtaku: Die Seite wurde neu angelegt: „/**  * Copyright (c) 2021-present, 安忆.  *  * @author 安忆 (https://zh.wikipedia.org/wiki/User:安忆)  * @file scrollUpButton.js  * @license GPL v3  */ $(function scrollUpButton() {   var $window = $(window);   var scrollButtonIcon = &#039;/w/images/7/72/Font_Awesome_5_regular_arrow-circle-up_blue.webp&#039;;   var changeOpacity = function changeOpacity(event) {     event.currentTarget.style.opacity = event.type === &#039;mouseenter&#039; ? &#039;1&#039; : &#039;0.7&#039;;   };   var scro…“</title>
		<link rel="alternate" type="text/html" href="https://wiki.onlyfumos.com/w/index.php?title=MediaWiki:ScrollUpButton.js&amp;diff=14575&amp;oldid=prev"/>
		<updated>2026-11-05T23:00:25Z</updated>

		<summary type="html">&lt;p&gt;Die Seite wurde neu angelegt: „&lt;span class=&quot;autocomment&quot;&gt;*  * Copyright (c) 2021-present, 安忆.  *  * @author 安忆 (https://zh.wikipedia.org/wiki/User:安忆)  * @file scrollUpButton.js  * @license GPL v3: &lt;/span&gt; $(function scrollUpButton() {   var $window = $(window);   var scrollButtonIcon = &amp;#039;/w/images/7/72/Font_Awesome_5_regular_arrow-circle-up_blue.webp&amp;#039;;   var changeOpacity = function changeOpacity(event) {     event.currentTarget.style.opacity = event.type === &amp;#039;mouseenter&amp;#039; ? &amp;#039;1&amp;#039; : &amp;#039;0.7&amp;#039;;   };   var scro…“&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;/**&lt;br /&gt;
 * Copyright (c) 2021-present, 安忆.&lt;br /&gt;
 *&lt;br /&gt;
 * @author 安忆 (https://zh.wikipedia.org/wiki/User:安忆)&lt;br /&gt;
 * @file scrollUpButton.js&lt;br /&gt;
 * @license GPL v3&lt;br /&gt;
 */&lt;br /&gt;
$(function scrollUpButton() {&lt;br /&gt;
  var $window = $(window);&lt;br /&gt;
  var scrollButtonIcon = &amp;#039;/w/images/7/72/Font_Awesome_5_regular_arrow-circle-up_blue.webp&amp;#039;;&lt;br /&gt;
  var changeOpacity = function changeOpacity(event) {&lt;br /&gt;
    event.currentTarget.style.opacity = event.type === &amp;#039;mouseenter&amp;#039; ? &amp;#039;1&amp;#039; : &amp;#039;0.7&amp;#039;;&lt;br /&gt;
  };&lt;br /&gt;
  var scrollTop = function scrollTop(height) {&lt;br /&gt;
    $(&amp;#039;html, body&amp;#039;).animate({&lt;br /&gt;
      scrollTop: height&lt;br /&gt;
    }, 660);&lt;br /&gt;
  };&lt;br /&gt;
  var $scrollButton = $(&amp;#039;&amp;lt;span&amp;gt;Top&amp;lt;/span&amp;gt;&amp;lt;img&amp;gt;&amp;#039;).addClass(&amp;#039;noprint&amp;#039;).attr({&lt;br /&gt;
    draggable: &amp;#039;false&amp;#039;,&lt;br /&gt;
    src: scrollButtonIcon&lt;br /&gt;
  }).css({&lt;br /&gt;
    display: &amp;#039;none&amp;#039;,&lt;br /&gt;
    position: &amp;#039;fixed&amp;#039;,&lt;br /&gt;
    right: &amp;#039;18px&amp;#039;,&lt;br /&gt;
    cursor: &amp;#039;pointer&amp;#039;,&lt;br /&gt;
    opacity: &amp;#039;0.7&amp;#039;,&lt;br /&gt;
    &amp;#039;-moz-user-select&amp;#039;: &amp;#039;none&amp;#039;,&lt;br /&gt;
    &amp;#039;-webkit-user-select&amp;#039;: &amp;#039;none&amp;#039;,&lt;br /&gt;
    &amp;#039;user-select&amp;#039;: &amp;#039;none&amp;#039;&lt;br /&gt;
  });&lt;br /&gt;
  var $scrollDownButton = $scrollButton.clone().attr(&amp;#039;id&amp;#039;, &amp;#039;scrollDownButton&amp;#039;).css(&amp;#039;transform&amp;#039;, &amp;#039;rotate(180deg)&amp;#039;).on(&amp;#039;click&amp;#039;, function () {&lt;br /&gt;
    scrollTop(($(document).height() || 0) - ($window.height() || 0));&lt;br /&gt;
  });&lt;br /&gt;
  var $scrollUpButton = $scrollButton.clone().attr(&amp;#039;id&amp;#039;, &amp;#039;scrollUpButton&amp;#039;).on(&amp;#039;click&amp;#039;, function () {&lt;br /&gt;
    scrollTop(0);&lt;br /&gt;
  });&lt;br /&gt;
  var $elements = [$scrollDownButton, $scrollUpButton];&lt;br /&gt;
  $elements.forEach(function ($element) {&lt;br /&gt;
    $element.on(&amp;#039;mouseenter mouseleave&amp;#039;, changeOpacity).appendTo(document.body);&lt;br /&gt;
  });&lt;br /&gt;
  var fadeIn = function fadeIn() {&lt;br /&gt;
    $elements.forEach(function ($element) {&lt;br /&gt;
      $element.fadeIn(&amp;#039;slow&amp;#039;);&lt;br /&gt;
    });&lt;br /&gt;
  };&lt;br /&gt;
  var fadeOut = function fadeOut() {&lt;br /&gt;
    $elements.forEach(function ($element) {&lt;br /&gt;
      $element.fadeOut(&amp;#039;slow&amp;#039;);&lt;br /&gt;
    });&lt;br /&gt;
  };&lt;br /&gt;
  var left = function left(px) {&lt;br /&gt;
    $elements.forEach(function ($element) {&lt;br /&gt;
      $element.css(&amp;#039;left&amp;#039;, px ? px + &amp;#039;px&amp;#039; : &amp;#039;unset&amp;#039;);&lt;br /&gt;
    });&lt;br /&gt;
  };&lt;br /&gt;
  var right = function right(px) {&lt;br /&gt;
    $elements.forEach(function ($element) {&lt;br /&gt;
      $element.css(&amp;#039;right&amp;#039;, px ? px + &amp;#039;px&amp;#039; : &amp;#039;unset&amp;#039;);&lt;br /&gt;
    });&lt;br /&gt;
  };&lt;br /&gt;
  var mediaQueryList = window.matchMedia(&amp;#039;(min-width: 1400px)&amp;#039;);&lt;br /&gt;
  var isVector2022Match = false;&lt;br /&gt;
  if (mw.config.get(&amp;#039;skin&amp;#039;) === &amp;#039;vector-2022&amp;#039;) {&lt;br /&gt;
    var mediaQueryHandler = function mediaQueryHandler(event) {&lt;br /&gt;
      if (event.matches) {&lt;br /&gt;
        isVector2022Match = true;&lt;br /&gt;
        right(8);&lt;br /&gt;
      } else {&lt;br /&gt;
        isVector2022Match = false;&lt;br /&gt;
        right(18);&lt;br /&gt;
      }&lt;br /&gt;
    };&lt;br /&gt;
    // Check mediaQueryList as Safari doesn&amp;#039;t have support for mediaQueryList.addEventListener&lt;br /&gt;
    try {&lt;br /&gt;
      mediaQueryList.addEventListener(&amp;#039;change&amp;#039;, mediaQueryHandler);&lt;br /&gt;
    } catch (e) {&lt;br /&gt;
      mediaQueryList.addListener(mediaQueryHandler);&lt;br /&gt;
    }&lt;br /&gt;
    if (mediaQueryList.matches) {&lt;br /&gt;
      isVector2022Match = true;&lt;br /&gt;
      right(8);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  var scrollButtonTimer;&lt;br /&gt;
  $window.on(&amp;#039;scroll selectionchange&amp;#039;, function () {&lt;br /&gt;
    var dingHeight = $(&amp;#039;#bluedeck_ding&amp;gt;div&amp;#039;).height() || 0;&lt;br /&gt;
    var vector2022Height = isVector2022Match ? 24 : 0;&lt;br /&gt;
    $scrollDownButton.css(&amp;#039;bottom&amp;#039;, dingHeight + vector2022Height + 24 + &amp;#039;px&amp;#039;);&lt;br /&gt;
    $scrollUpButton.css(&amp;#039;bottom&amp;#039;, dingHeight + vector2022Height + 65 + &amp;#039;px&amp;#039;);&lt;br /&gt;
    if (mw.config.get(&amp;#039;wgGEHelpPanelEnabled&amp;#039;) &amp;amp;&amp;amp; $(&amp;#039;#mw-ge-help-panel-cta-button&amp;#039;).length || $(&amp;#039;#cat_a_lot&amp;#039;).length || $(&amp;#039;#proveit&amp;#039;).length || $(&amp;#039;.wordcount&amp;#039;).length) {&lt;br /&gt;
      left(10);&lt;br /&gt;
    } else {&lt;br /&gt;
      left();&lt;br /&gt;
    }&lt;br /&gt;
    var windowScrollTop = $window.scrollTop() || 0;&lt;br /&gt;
    if (windowScrollTop &amp;gt; 60) {&lt;br /&gt;
      fadeIn();&lt;br /&gt;
    } else {&lt;br /&gt;
      fadeOut();&lt;br /&gt;
    }&lt;br /&gt;
    clearTimeout(scrollButtonTimer);&lt;br /&gt;
    scrollButtonTimer = setTimeout(fadeOut, 2000);&lt;br /&gt;
  });&lt;br /&gt;
  $elements.forEach(function ($element) {&lt;br /&gt;
    $element.on(&amp;#039;mouseenter&amp;#039;, function () {&lt;br /&gt;
      clearTimeout(scrollButtonTimer);&lt;br /&gt;
    });&lt;br /&gt;
  });&lt;br /&gt;
});&lt;/div&gt;</summary>
		<author><name>CrazyGermanOtaku</name></author>
	</entry>
</feed>