<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki.stephanschlegel.de/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=91.33.209.1</id>
	<title>Wikizone - Benutzerbeiträge [de]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.stephanschlegel.de/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=91.33.209.1"/>
	<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=Spezial:Beitr%C3%A4ge/91.33.209.1"/>
	<updated>2026-05-07T03:59:56Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.35.14</generator>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=JavaScript_-_Snippets&amp;diff=22310</id>
		<title>JavaScript - Snippets</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=JavaScript_-_Snippets&amp;diff=22310"/>
		<updated>2017-05-13T21:21:43Z</updated>

		<summary type="html">&lt;p&gt;91.33.209.1: /* Beispiel Markup für ToTop Navigation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Links ==&lt;br /&gt;
Siehe auch&lt;br /&gt;
&lt;br /&gt;
[[JavaScript - Plugins]]&lt;br /&gt;
&lt;br /&gt;
[[JavaScripts - Basics]]&lt;br /&gt;
&lt;br /&gt;
[[jQuery - Snippets]]&lt;br /&gt;
&lt;br /&gt;
== Sonderzeichen in Alert-Meldungen ==&lt;br /&gt;
&lt;br /&gt;
Oft sieht man im Web sehr hässliche alert-Meldungen , in denen die Umlaute nicht korrekt dargestellt sind. Das liegt auch daran, dass unterschiedliche Betriebssystem Zeichen unterschiedlich kodieren. Damit so etwas möglichst vermieden wird, sollte man solche Meldungen mit alert(unescape(&amp;quot;...&amp;quot;)) anzeigen.&lt;br /&gt;
&lt;br /&gt;
Beispiel: &lt;br /&gt;
 alert(unescape(&amp;quot;So was d%E4mliches%21&amp;quot;));&lt;br /&gt;
&lt;br /&gt;
Zeichen	so verschlüsseln:&lt;br /&gt;
\	\\&lt;br /&gt;
&amp;quot;	\&amp;quot;&lt;br /&gt;
&amp;#039;	\&amp;#039;&lt;br /&gt;
Zeilenumbruch	\n&lt;br /&gt;
Wagenrücklauf	\r&lt;br /&gt;
(Den Unterschied zum Zeilenumbruch habe ich auch noch nicht begriffen.)&lt;br /&gt;
Tabulator	\t&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Zeichen	so:&lt;br /&gt;
Ä	%C4&lt;br /&gt;
Ö	%D6&lt;br /&gt;
Ü	%DC&lt;br /&gt;
ä	%E4&lt;br /&gt;
ö	%F6&lt;br /&gt;
ü	%FC&lt;br /&gt;
ß	%DF&lt;br /&gt;
€	%u20AC&lt;br /&gt;
$	%24&lt;br /&gt;
%	%25&lt;br /&gt;
&lt;br /&gt;
Generier Tool:&lt;br /&gt;
http://www.salesianer.de/util/alert-umlaute.html&lt;br /&gt;
&lt;br /&gt;
== Teil einer Seite drucken ==&lt;br /&gt;
Old School JavaScript, sollte sich  aber relativ einfach auf jQuery übertragen lassen.&lt;br /&gt;
&lt;br /&gt;
Quelle: http://www.webstool.de/de/tipps_down_druck3.html Zugriff: 10/2011&lt;br /&gt;
&lt;br /&gt;
Mit einem einfachen JavaScript lässt sich mit relativ wenig Aufwand eine druckerfreundliche Version einer Webseite bei Bedarf erzeugen.&lt;br /&gt;
&lt;br /&gt;
Das JavaScript wird nachstehend vorgestellt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
function ausgabe()&lt;br /&gt;
{&lt;br /&gt;
var ref = document.getElementById(&amp;quot;auswahl&amp;quot;);&lt;br /&gt;
var ausgabe;&lt;br /&gt;
// nächste Zeile öffnet ein Fenster der Größe 800 x 600 Pixel&lt;br /&gt;
ausgabe=window.open(&amp;quot;#&amp;quot;,&amp;quot;fenster&amp;quot;,&amp;quot;width=800,height=600,resizable=yes,menubar=yes,left=50,top=50&amp;quot;);&lt;br /&gt;
ausgabe.document.open();&lt;br /&gt;
ausgabe.document.write(&amp;#039;&amp;lt;html&amp;gt;\n&amp;lt;head&amp;gt;\n&amp;lt;title&amp;gt;Druckversion&amp;lt;/title&amp;gt;\n&amp;#039;);&lt;br /&gt;
ausgabe.document.write(&amp;#039;&amp;lt;meta http-equiv=&amp;quot;Content-Type&amp;quot; content=&amp;quot;text/html; charset=iso-8859-1&amp;quot;&amp;gt;\n&amp;#039;);&lt;br /&gt;
// in der nächsten Zeile an das eigene Stylesheet anpassen&lt;br /&gt;
ausgabe.document.write(&amp;#039;&amp;lt;link rel=&amp;quot;stylesheet&amp;quot; href=&amp;quot;../css/design1.css&amp;quot;&amp;gt;\n&amp;lt;/head&amp;gt;\n&amp;#039;);&lt;br /&gt;
ausgabe.document.write(&amp;#039;&amp;lt;body&amp;gt;\n&amp;lt;h1 align=&amp;quot;center&amp;quot;&amp;gt;&amp;amp;copy; web s tool - Partner f&amp;amp;uuml;r Ihren Internetauftritt&amp;lt;/h1&amp;gt;\n&amp;#039;);&lt;br /&gt;
ausgabe.document.write(&amp;#039;&amp;lt;div&amp;gt;\n&amp;#039;);&lt;br /&gt;
// Ausgabe aller Inhalte mit der id = auswahl&lt;br /&gt;
while (ref!=null)&lt;br /&gt;
{&lt;br /&gt;
ausgabe.document.write(ref.innerHTML + &amp;#039;\n&amp;#039;);&lt;br /&gt;
ref = ref.nextSibling;&lt;br /&gt;
}&lt;br /&gt;
ausgabe.document.write(&amp;#039;&amp;lt;/div&amp;gt;\n&amp;lt;p align=&amp;quot;center&amp;quot;&amp;gt;&amp;lt;a href=&amp;quot;javascript:window.print()&amp;quot;&amp;gt;drucken&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;\n&amp;lt;/body&amp;gt;\n&amp;lt;/html&amp;gt;\n&amp;#039;);&lt;br /&gt;
ausgabe.document.close();&lt;br /&gt;
ausgabe.focus();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die externe Einbindung des JavaScripts erfolgt dabei z.B. im head-Bereich der Webseite über&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;script language=&amp;quot;JavaScript&amp;quot; src=&amp;quot;../scripts/ausgabe4print.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt; .&lt;br /&gt;
&lt;br /&gt;
Von entscheidender Bedeutung ist, dass auf der Seite das auszuwählende Objekt mit der id = &amp;quot;auswahl&amp;quot; (bitte bei Bedarf anpassen) versehen ist. Das auszuwählende Objekt kann dabei eine Tabelle oder ein div-Container sein.&lt;br /&gt;
&lt;br /&gt;
Der Aufruf erfolgt z.B. durch den Link &amp;lt;a href=&amp;quot;javascript:ausgabe();&amp;quot;&amp;gt; Druckversion&amp;lt;/a&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Fehler Behandlung ==&lt;br /&gt;
=== Prüfen ob ein Element existiert (normales JavaScript)===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
function isElement(obj) {&lt;br /&gt;
  try {&lt;br /&gt;
    //Using W3 DOM2 (works for FF, Opera and Chrom)&lt;br /&gt;
    return obj instanceof HTMLElement;&lt;br /&gt;
  }&lt;br /&gt;
  catch(e){&lt;br /&gt;
    return (typeof obj===&amp;quot;object&amp;quot;) &amp;amp;&amp;amp;&lt;br /&gt;
      (obj.nodeType===1) &amp;amp;&amp;amp; (typeof obj.style === &amp;quot;object&amp;quot;) &amp;amp;&amp;amp;&lt;br /&gt;
      (typeof obj.ownerDocument ===&amp;quot;object&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Prüfen ob ein Element in einem Objekt-Literal existiert und nicht null ist ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
var data = {&lt;br /&gt;
    &amp;quot;key1&amp;quot; : val,&lt;br /&gt;
    &amp;quot;key2&amp;quot; : val,&lt;br /&gt;
    &amp;quot;key3&amp;quot; : val&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
if( &amp;quot;key2&amp;quot; in data &amp;amp;&amp;amp; data.key2 != null){&lt;br /&gt;
...&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Eingaben Validieren ==&lt;br /&gt;
=== Handynummer validieren (normales JavaScript) ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
function phone_is_valid(nr){&lt;br /&gt;
	var reg2 = /^([0-9]{4,6})+\/([0-9]{6,11})$/;&lt;br /&gt;
	return reg2.test(nr);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Datum validieren (normales JavaScript) ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
function date_is_valid(myDate){&lt;br /&gt;
	var isValid = false;&lt;br /&gt;
	var today = new Date();&lt;br /&gt;
	if (!myDate) return false;&lt;br /&gt;
	myDate=myDate.toString();&lt;br /&gt;
	arrDate=myDate.split(&amp;quot;.&amp;quot;);&lt;br /&gt;
	if (arrDate.length!=3) return false;&lt;br /&gt;
	arrDate[0]=parseInt(arrDate[0],10);&lt;br /&gt;
	arrDate[1]=parseInt(arrDate[1],10)-1;&lt;br /&gt;
	if (arrDate[2].length==2) arrDate[2]=&amp;quot;20&amp;quot;+arrDate[2]&lt;br /&gt;
	var kontrolldatum=new Date(arrDate[2],arrDate[1],arrDate[0]);&lt;br /&gt;
	// Datum gültig ?&lt;br /&gt;
	if (kontrolldatum.getDate()==arrDate[0] &amp;amp;&amp;amp; kontrolldatum.getMonth()==arrDate[1] &amp;amp;&amp;amp; kontrolldatum.getFullYear()==arrDate[2])&lt;br /&gt;
	{&lt;br /&gt;
		// in der Zukunft&lt;br /&gt;
		if (kontrolldatum.getTime()-today.getTime()+(24*60*60*1000) &amp;gt; 0)&lt;br /&gt;
			return true; 		&lt;br /&gt;
	}&lt;br /&gt;
	return false;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== Maus ==&lt;br /&gt;
[[JavaScript - Maus]]&lt;br /&gt;
== Timer ==&lt;br /&gt;
Quelle: http://blog.agrafix.net/2011/10/javascript-timers-mit-jquery/&lt;br /&gt;
&lt;br /&gt;
Benötigte Funktionen sind window.setTimeout und window.setInterval&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// funktion verzögert aufrufen&lt;br /&gt;
function machWas() {&lt;br /&gt;
   alert(&amp;#039;alert() mit 1000ms verzögerung!&amp;#039;);&lt;br /&gt;
}&lt;br /&gt;
window.setTimeout(machWas, 1000);&lt;br /&gt;
 &lt;br /&gt;
// funktion alle X Millisekunden aufruden&lt;br /&gt;
function machWasOft() {&lt;br /&gt;
   alert(&amp;#039;alle 1000ms ein alert()&amp;#039;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
window.setInterval(machWasOft, 1000);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Doch was ist, wenn ich jetzt einen solchen Timer ändern oder abbrechen möchte? Das ist eigentlich auch nicht schwer – die Funktionen setTimeout/setInterval geben ein Objekt zurück über das sie sich wieder beenden lassen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
var x = 0;&lt;br /&gt;
function machWasAbbrechbarOft() {&lt;br /&gt;
    x += 1;&lt;br /&gt;
    if (x &amp;gt; 200) {&lt;br /&gt;
        window.clearInterval(running); // beende das &amp;quot;Interval&amp;quot; nach 201 Ausführungen&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
var running = window.setInterval(machWasAbbrechbarOft, 1000);&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Timer mit jQuery ===&lt;br /&gt;
Für größere Projekte gibt es ein komfortableres jQuery Plugin&lt;br /&gt;
&lt;br /&gt;
Mit diesem Plugin geht das “Interval” setzen dann wie folgt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$(document).everyTime(1000, &amp;quot;machWasOftAbbrechbar&amp;quot;, function(i) { // alle 1000ms&lt;br /&gt;
  alert(&amp;#039;Hallo ich bin der &amp;#039; + i + &amp;#039;te Aufruf!&amp;#039;); // machWasOftAbbrechbar, hier die funktion die aufgerufen werden soll&lt;br /&gt;
}, 200); // 200 mal ausführen&lt;br /&gt;
Der zweite Parameter, machWasOftAbbrechbar, stellt hierbei ein sogenanntes “label” dar, über das man den gestarten Timer dann wieder abbrechen kann:&lt;br /&gt;
&lt;br /&gt;
$(document).stopTime(&amp;quot;machWasOftAbbrechbar&amp;quot;); // stoppe machWasOftAbbrechbar&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Viel mehr gibt’s eigentlich nicht dazu zu sagen – die Dokumentation dazu findet man, genau wie das Plugin selbst, unter http://plugins.jquery.com/project/timers.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== JavaScript - Objekte ==&lt;br /&gt;
[[JavaScript - Objektorientierte Programmierung]]&lt;br /&gt;
=== Objekte löschen ===&lt;br /&gt;
 for (prop in allOverlays) { if (allOverlays.hasOwnProperty(prop)) { delete allOverlays[prop]; } } //ie 6 gc problems&lt;br /&gt;
 //allOverlays = {};&lt;br /&gt;
&lt;br /&gt;
== JavaScript - Strings ==&lt;br /&gt;
[[JavaScript - Strings]]&lt;br /&gt;
&lt;br /&gt;
== JavaScript - HTML5 Audio ==&lt;br /&gt;
[[JavaScript - HTML5 Audio]]&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
[[JavaScript - Tricks mit Links]]&lt;br /&gt;
&lt;br /&gt;
== JavaScript - Verschiedenes ==&lt;br /&gt;
=== Enter 2 Tabs ===&lt;br /&gt;
JQuery&lt;br /&gt;
&lt;br /&gt;
Wenn der User in einem Formular die Eingabetaste drückt wird in vielen Browsxern das Formular abgesendet. Stattdessen, kann man den Tastendruck in einen Tab verwandeln, dann kommt der User stattdessen ins nächste Eingabefeld. In diesem Beispiel wird der Cursor zu Beginn gleich ins erste Feld gesetzt (eingesetzt bei Mietlager XL Rechner).&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
// enter2tab for textboxes&lt;br /&gt;
$(document).ready(function() {&lt;br /&gt;
	$(&amp;#039;input:text:first&amp;#039;).focus();&lt;br /&gt;
	$(&amp;#039;input:text&amp;#039;).bind(&amp;#039;keydown&amp;#039;, function(e) {&lt;br /&gt;
		if (e.keyCode == 13) {&lt;br /&gt;
			e.preventDefault();&lt;br /&gt;
			var nextIndex = $(&amp;#039;input:text&amp;#039;).index(this) + 1;&lt;br /&gt;
			var maxIndex = $(&amp;#039;input:text&amp;#039;).length;&lt;br /&gt;
			if (nextIndex &amp;lt; maxIndex) {&lt;br /&gt;
				$(&amp;#039;input:text:eq(&amp;#039; + nextIndex+&amp;#039;)&amp;#039;).focus();&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
	});&lt;br /&gt;
});&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== JavaScript Animation ===&lt;br /&gt;
Siehe [[Animation im Web]]&lt;br /&gt;
&lt;br /&gt;
=== Sortieren ===&lt;br /&gt;
http://www.javascriptkit.com/javatutors/arraysort.shtml&lt;br /&gt;
&lt;br /&gt;
=== Scrolling ===&lt;br /&gt;
==== Scroll / Fixed Navbar ====&lt;br /&gt;
jQuery&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
$(document).ready(function() {&lt;br /&gt;
  var stickyNavTop = $(&amp;#039;.nav&amp;#039;).offset().top;&lt;br /&gt;
  var stickyNav = function(){&lt;br /&gt;
    var scrollTop = $(window).scrollTop();  &lt;br /&gt;
    if (scrollTop &amp;gt; stickyNavTop) { &lt;br /&gt;
      $(&amp;#039;.nav&amp;#039;).addClass(&amp;#039;sticky&amp;#039;);&lt;br /&gt;
    } else {&lt;br /&gt;
      $(&amp;#039;.nav&amp;#039;).removeClass(&amp;#039;sticky&amp;#039;); &lt;br /&gt;
    }&lt;br /&gt;
  };&lt;br /&gt;
  stickyNav();&lt;br /&gt;
  $(window).scroll(function() {&lt;br /&gt;
    stickyNav();&lt;br /&gt;
  });&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
CSS - wichtig vor allem fixed.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;css&amp;quot;&amp;gt;&lt;br /&gt;
.sticky {&lt;br /&gt;
  position: fixed;&lt;br /&gt;
  width: 100%;&lt;br /&gt;
  left: 0;&lt;br /&gt;
  top: 0;&lt;br /&gt;
  z-index: 100;&lt;br /&gt;
  border-top: 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Smooth Scrolling für Anchor Tags oder toTop Links ====&lt;br /&gt;
===== Beispiel 1 (jQuery)  =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$(&amp;#039;a[href*=#]:not([href=#])&amp;#039;).click(function() {&lt;br /&gt;
    if (location.pathname.replace(/^\//,&amp;#039;&amp;#039;) == this.pathname.replace(/^\//,&amp;#039;&amp;#039;) &lt;br /&gt;
        || location.hostname == this.hostname) {&lt;br /&gt;
&lt;br /&gt;
        var target = $(this.hash);&lt;br /&gt;
        target = target.length ? target : $(&amp;#039;[name=&amp;#039; + this.hash.slice(1) +&amp;#039;]&amp;#039;);&lt;br /&gt;
           if (target.length) {&lt;br /&gt;
             $(&amp;#039;html,body&amp;#039;).animate({&lt;br /&gt;
                 scrollTop: target.offset().top&lt;br /&gt;
            }, 1000);&lt;br /&gt;
            return false;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
});&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Beispiel 2 (jQuery) mit Offset =====&lt;br /&gt;
statt &lt;br /&gt;
 .top&lt;br /&gt;
einfach&lt;br /&gt;
 .top-100&lt;br /&gt;
http://1stwebmagazine.com/jquery-scroll-to-anchor-point&lt;br /&gt;
&lt;br /&gt;
===== Beispiel 3 Materialize Pushpin ToTop =====&lt;br /&gt;
jQuery Plugin enthalten in MaterializeCSS http://materializecss.com/pushpin.html&lt;br /&gt;
&lt;br /&gt;
Kann für ToTop Navigation oder Fixed Navigations etc. eingesetzt werden. Liegt im Verzeichnis js/pushpin geht aber nicht ohne weiteres Standalone&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
//PUSHPIN TOTOP&lt;br /&gt;
$( document ).ready(function(){&lt;br /&gt;
  $(&amp;#039;.totop&amp;#039;).pushpin({&lt;br /&gt;
    top: 500,// distance where pin becomes fixed (class)- default 0&lt;br /&gt;
    bottom: &amp;#039;infinity&amp;#039;, // distance when pin stops being fixed - default infinity&lt;br /&gt;
    offset: 24 // style=&amp;quot;top:[offset]&amp;quot;&amp;quot;&amp;quot; - default 0&lt;br /&gt;
  })&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
//You can remove pushpin and pushpin classes&lt;br /&gt;
$(&amp;#039;.tabs-wrapper .row&amp;#039;).pushpin(&amp;#039;remove&amp;#039;);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
CSS&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;css&amp;quot;&amp;gt;&lt;br /&gt;
/* Class for when element is above threshold */&lt;br /&gt;
.pin-top {&lt;br /&gt;
  position: relative;&lt;br /&gt;
}&lt;br /&gt;
/* Class for when element is below threshold*/&lt;br /&gt;
.pin-bottom {&lt;br /&gt;
  position: relative;&lt;br /&gt;
}&lt;br /&gt;
/* Class for when element is pinned */&lt;br /&gt;
.pinned {&lt;br /&gt;
  position: fixed !important;&lt;br /&gt;
  right: 24px;&lt;br /&gt;
  bottom: 24px;&lt;br /&gt;
  z-index: 9;&lt;br /&gt;
}&lt;br /&gt;
/* Only necessary for window height sized blocks. */&lt;br /&gt;
  html, body, .block {&lt;br /&gt;
    height: 100%;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Beispiel Markup für ToTop Navigation =====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html5&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
  &amp;lt;a class=&amp;quot;anchor&amp;quot; name=&amp;quot;top&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;&lt;br /&gt;
  ...&lt;br /&gt;
&amp;lt;!-- totop --&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;totop&amp;quot; style=&amp;quot;display:none;&amp;quot;&amp;gt;&amp;lt;a href=&amp;quot;top&amp;quot;&amp;gt;&amp;lt;i class=&amp;quot;fa fa-angle-double-up fa-2x&amp;quot;&amp;gt;&amp;lt;/i&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
$(document).ready(function() {&lt;br /&gt;
  $(&amp;#039;.totop&amp;#039;).hide();&lt;br /&gt;
  $(window).scroll(function(){&lt;br /&gt;
    var value = 200; // Toplink beim vertikalen scrollen ab einem Wert von XXX &amp;#039;px&amp;#039; anzeigen&lt;br /&gt;
    var scrolling = $(window).scrollTop();&lt;br /&gt;
    if (scrolling &amp;gt; value) {&lt;br /&gt;
      $(&amp;#039;.totop&amp;#039;).fadeIn();&lt;br /&gt;
    } else {&lt;br /&gt;
      $(&amp;#039;.totop&amp;#039;).fadeOut();&lt;br /&gt;
    }&lt;br /&gt;
  });&lt;br /&gt;
  $(&amp;#039;.totop&amp;#039;).click(function(){&lt;br /&gt;
    $(&amp;#039;html, body&amp;#039;).animate({scrollTop:&amp;#039;0px&amp;#039;}, 400);&lt;br /&gt;
    return false;&lt;br /&gt;
  });&lt;br /&gt;
});&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>91.33.209.1</name></author>
	</entry>
	<entry>
		<id>https://wiki.stephanschlegel.de/index.php?title=JavaScript_-_Snippets&amp;diff=22309</id>
		<title>JavaScript - Snippets</title>
		<link rel="alternate" type="text/html" href="https://wiki.stephanschlegel.de/index.php?title=JavaScript_-_Snippets&amp;diff=22309"/>
		<updated>2017-05-13T20:56:38Z</updated>

		<summary type="html">&lt;p&gt;91.33.209.1: /* Beispiel Markup für ToTop Navigation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Links ==&lt;br /&gt;
Siehe auch&lt;br /&gt;
&lt;br /&gt;
[[JavaScript - Plugins]]&lt;br /&gt;
&lt;br /&gt;
[[JavaScripts - Basics]]&lt;br /&gt;
&lt;br /&gt;
[[jQuery - Snippets]]&lt;br /&gt;
&lt;br /&gt;
== Sonderzeichen in Alert-Meldungen ==&lt;br /&gt;
&lt;br /&gt;
Oft sieht man im Web sehr hässliche alert-Meldungen , in denen die Umlaute nicht korrekt dargestellt sind. Das liegt auch daran, dass unterschiedliche Betriebssystem Zeichen unterschiedlich kodieren. Damit so etwas möglichst vermieden wird, sollte man solche Meldungen mit alert(unescape(&amp;quot;...&amp;quot;)) anzeigen.&lt;br /&gt;
&lt;br /&gt;
Beispiel: &lt;br /&gt;
 alert(unescape(&amp;quot;So was d%E4mliches%21&amp;quot;));&lt;br /&gt;
&lt;br /&gt;
Zeichen	so verschlüsseln:&lt;br /&gt;
\	\\&lt;br /&gt;
&amp;quot;	\&amp;quot;&lt;br /&gt;
&amp;#039;	\&amp;#039;&lt;br /&gt;
Zeilenumbruch	\n&lt;br /&gt;
Wagenrücklauf	\r&lt;br /&gt;
(Den Unterschied zum Zeilenumbruch habe ich auch noch nicht begriffen.)&lt;br /&gt;
Tabulator	\t&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Zeichen	so:&lt;br /&gt;
Ä	%C4&lt;br /&gt;
Ö	%D6&lt;br /&gt;
Ü	%DC&lt;br /&gt;
ä	%E4&lt;br /&gt;
ö	%F6&lt;br /&gt;
ü	%FC&lt;br /&gt;
ß	%DF&lt;br /&gt;
€	%u20AC&lt;br /&gt;
$	%24&lt;br /&gt;
%	%25&lt;br /&gt;
&lt;br /&gt;
Generier Tool:&lt;br /&gt;
http://www.salesianer.de/util/alert-umlaute.html&lt;br /&gt;
&lt;br /&gt;
== Teil einer Seite drucken ==&lt;br /&gt;
Old School JavaScript, sollte sich  aber relativ einfach auf jQuery übertragen lassen.&lt;br /&gt;
&lt;br /&gt;
Quelle: http://www.webstool.de/de/tipps_down_druck3.html Zugriff: 10/2011&lt;br /&gt;
&lt;br /&gt;
Mit einem einfachen JavaScript lässt sich mit relativ wenig Aufwand eine druckerfreundliche Version einer Webseite bei Bedarf erzeugen.&lt;br /&gt;
&lt;br /&gt;
Das JavaScript wird nachstehend vorgestellt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
function ausgabe()&lt;br /&gt;
{&lt;br /&gt;
var ref = document.getElementById(&amp;quot;auswahl&amp;quot;);&lt;br /&gt;
var ausgabe;&lt;br /&gt;
// nächste Zeile öffnet ein Fenster der Größe 800 x 600 Pixel&lt;br /&gt;
ausgabe=window.open(&amp;quot;#&amp;quot;,&amp;quot;fenster&amp;quot;,&amp;quot;width=800,height=600,resizable=yes,menubar=yes,left=50,top=50&amp;quot;);&lt;br /&gt;
ausgabe.document.open();&lt;br /&gt;
ausgabe.document.write(&amp;#039;&amp;lt;html&amp;gt;\n&amp;lt;head&amp;gt;\n&amp;lt;title&amp;gt;Druckversion&amp;lt;/title&amp;gt;\n&amp;#039;);&lt;br /&gt;
ausgabe.document.write(&amp;#039;&amp;lt;meta http-equiv=&amp;quot;Content-Type&amp;quot; content=&amp;quot;text/html; charset=iso-8859-1&amp;quot;&amp;gt;\n&amp;#039;);&lt;br /&gt;
// in der nächsten Zeile an das eigene Stylesheet anpassen&lt;br /&gt;
ausgabe.document.write(&amp;#039;&amp;lt;link rel=&amp;quot;stylesheet&amp;quot; href=&amp;quot;../css/design1.css&amp;quot;&amp;gt;\n&amp;lt;/head&amp;gt;\n&amp;#039;);&lt;br /&gt;
ausgabe.document.write(&amp;#039;&amp;lt;body&amp;gt;\n&amp;lt;h1 align=&amp;quot;center&amp;quot;&amp;gt;&amp;amp;copy; web s tool - Partner f&amp;amp;uuml;r Ihren Internetauftritt&amp;lt;/h1&amp;gt;\n&amp;#039;);&lt;br /&gt;
ausgabe.document.write(&amp;#039;&amp;lt;div&amp;gt;\n&amp;#039;);&lt;br /&gt;
// Ausgabe aller Inhalte mit der id = auswahl&lt;br /&gt;
while (ref!=null)&lt;br /&gt;
{&lt;br /&gt;
ausgabe.document.write(ref.innerHTML + &amp;#039;\n&amp;#039;);&lt;br /&gt;
ref = ref.nextSibling;&lt;br /&gt;
}&lt;br /&gt;
ausgabe.document.write(&amp;#039;&amp;lt;/div&amp;gt;\n&amp;lt;p align=&amp;quot;center&amp;quot;&amp;gt;&amp;lt;a href=&amp;quot;javascript:window.print()&amp;quot;&amp;gt;drucken&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;\n&amp;lt;/body&amp;gt;\n&amp;lt;/html&amp;gt;\n&amp;#039;);&lt;br /&gt;
ausgabe.document.close();&lt;br /&gt;
ausgabe.focus();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Die externe Einbindung des JavaScripts erfolgt dabei z.B. im head-Bereich der Webseite über&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;script language=&amp;quot;JavaScript&amp;quot; src=&amp;quot;../scripts/ausgabe4print.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt; .&lt;br /&gt;
&lt;br /&gt;
Von entscheidender Bedeutung ist, dass auf der Seite das auszuwählende Objekt mit der id = &amp;quot;auswahl&amp;quot; (bitte bei Bedarf anpassen) versehen ist. Das auszuwählende Objekt kann dabei eine Tabelle oder ein div-Container sein.&lt;br /&gt;
&lt;br /&gt;
Der Aufruf erfolgt z.B. durch den Link &amp;lt;a href=&amp;quot;javascript:ausgabe();&amp;quot;&amp;gt; Druckversion&amp;lt;/a&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Fehler Behandlung ==&lt;br /&gt;
=== Prüfen ob ein Element existiert (normales JavaScript)===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
function isElement(obj) {&lt;br /&gt;
  try {&lt;br /&gt;
    //Using W3 DOM2 (works for FF, Opera and Chrom)&lt;br /&gt;
    return obj instanceof HTMLElement;&lt;br /&gt;
  }&lt;br /&gt;
  catch(e){&lt;br /&gt;
    return (typeof obj===&amp;quot;object&amp;quot;) &amp;amp;&amp;amp;&lt;br /&gt;
      (obj.nodeType===1) &amp;amp;&amp;amp; (typeof obj.style === &amp;quot;object&amp;quot;) &amp;amp;&amp;amp;&lt;br /&gt;
      (typeof obj.ownerDocument ===&amp;quot;object&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Prüfen ob ein Element in einem Objekt-Literal existiert und nicht null ist ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
var data = {&lt;br /&gt;
    &amp;quot;key1&amp;quot; : val,&lt;br /&gt;
    &amp;quot;key2&amp;quot; : val,&lt;br /&gt;
    &amp;quot;key3&amp;quot; : val&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
if( &amp;quot;key2&amp;quot; in data &amp;amp;&amp;amp; data.key2 != null){&lt;br /&gt;
...&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Eingaben Validieren ==&lt;br /&gt;
=== Handynummer validieren (normales JavaScript) ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
function phone_is_valid(nr){&lt;br /&gt;
	var reg2 = /^([0-9]{4,6})+\/([0-9]{6,11})$/;&lt;br /&gt;
	return reg2.test(nr);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Datum validieren (normales JavaScript) ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
function date_is_valid(myDate){&lt;br /&gt;
	var isValid = false;&lt;br /&gt;
	var today = new Date();&lt;br /&gt;
	if (!myDate) return false;&lt;br /&gt;
	myDate=myDate.toString();&lt;br /&gt;
	arrDate=myDate.split(&amp;quot;.&amp;quot;);&lt;br /&gt;
	if (arrDate.length!=3) return false;&lt;br /&gt;
	arrDate[0]=parseInt(arrDate[0],10);&lt;br /&gt;
	arrDate[1]=parseInt(arrDate[1],10)-1;&lt;br /&gt;
	if (arrDate[2].length==2) arrDate[2]=&amp;quot;20&amp;quot;+arrDate[2]&lt;br /&gt;
	var kontrolldatum=new Date(arrDate[2],arrDate[1],arrDate[0]);&lt;br /&gt;
	// Datum gültig ?&lt;br /&gt;
	if (kontrolldatum.getDate()==arrDate[0] &amp;amp;&amp;amp; kontrolldatum.getMonth()==arrDate[1] &amp;amp;&amp;amp; kontrolldatum.getFullYear()==arrDate[2])&lt;br /&gt;
	{&lt;br /&gt;
		// in der Zukunft&lt;br /&gt;
		if (kontrolldatum.getTime()-today.getTime()+(24*60*60*1000) &amp;gt; 0)&lt;br /&gt;
			return true; 		&lt;br /&gt;
	}&lt;br /&gt;
	return false;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== Maus ==&lt;br /&gt;
[[JavaScript - Maus]]&lt;br /&gt;
== Timer ==&lt;br /&gt;
Quelle: http://blog.agrafix.net/2011/10/javascript-timers-mit-jquery/&lt;br /&gt;
&lt;br /&gt;
Benötigte Funktionen sind window.setTimeout und window.setInterval&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// funktion verzögert aufrufen&lt;br /&gt;
function machWas() {&lt;br /&gt;
   alert(&amp;#039;alert() mit 1000ms verzögerung!&amp;#039;);&lt;br /&gt;
}&lt;br /&gt;
window.setTimeout(machWas, 1000);&lt;br /&gt;
 &lt;br /&gt;
// funktion alle X Millisekunden aufruden&lt;br /&gt;
function machWasOft() {&lt;br /&gt;
   alert(&amp;#039;alle 1000ms ein alert()&amp;#039;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
window.setInterval(machWasOft, 1000);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Doch was ist, wenn ich jetzt einen solchen Timer ändern oder abbrechen möchte? Das ist eigentlich auch nicht schwer – die Funktionen setTimeout/setInterval geben ein Objekt zurück über das sie sich wieder beenden lassen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
var x = 0;&lt;br /&gt;
function machWasAbbrechbarOft() {&lt;br /&gt;
    x += 1;&lt;br /&gt;
    if (x &amp;gt; 200) {&lt;br /&gt;
        window.clearInterval(running); // beende das &amp;quot;Interval&amp;quot; nach 201 Ausführungen&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
var running = window.setInterval(machWasAbbrechbarOft, 1000);&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Timer mit jQuery ===&lt;br /&gt;
Für größere Projekte gibt es ein komfortableres jQuery Plugin&lt;br /&gt;
&lt;br /&gt;
Mit diesem Plugin geht das “Interval” setzen dann wie folgt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$(document).everyTime(1000, &amp;quot;machWasOftAbbrechbar&amp;quot;, function(i) { // alle 1000ms&lt;br /&gt;
  alert(&amp;#039;Hallo ich bin der &amp;#039; + i + &amp;#039;te Aufruf!&amp;#039;); // machWasOftAbbrechbar, hier die funktion die aufgerufen werden soll&lt;br /&gt;
}, 200); // 200 mal ausführen&lt;br /&gt;
Der zweite Parameter, machWasOftAbbrechbar, stellt hierbei ein sogenanntes “label” dar, über das man den gestarten Timer dann wieder abbrechen kann:&lt;br /&gt;
&lt;br /&gt;
$(document).stopTime(&amp;quot;machWasOftAbbrechbar&amp;quot;); // stoppe machWasOftAbbrechbar&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Viel mehr gibt’s eigentlich nicht dazu zu sagen – die Dokumentation dazu findet man, genau wie das Plugin selbst, unter http://plugins.jquery.com/project/timers.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== JavaScript - Objekte ==&lt;br /&gt;
[[JavaScript - Objektorientierte Programmierung]]&lt;br /&gt;
=== Objekte löschen ===&lt;br /&gt;
 for (prop in allOverlays) { if (allOverlays.hasOwnProperty(prop)) { delete allOverlays[prop]; } } //ie 6 gc problems&lt;br /&gt;
 //allOverlays = {};&lt;br /&gt;
&lt;br /&gt;
== JavaScript - Strings ==&lt;br /&gt;
[[JavaScript - Strings]]&lt;br /&gt;
&lt;br /&gt;
== JavaScript - HTML5 Audio ==&lt;br /&gt;
[[JavaScript - HTML5 Audio]]&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
[[JavaScript - Tricks mit Links]]&lt;br /&gt;
&lt;br /&gt;
== JavaScript - Verschiedenes ==&lt;br /&gt;
=== Enter 2 Tabs ===&lt;br /&gt;
JQuery&lt;br /&gt;
&lt;br /&gt;
Wenn der User in einem Formular die Eingabetaste drückt wird in vielen Browsxern das Formular abgesendet. Stattdessen, kann man den Tastendruck in einen Tab verwandeln, dann kommt der User stattdessen ins nächste Eingabefeld. In diesem Beispiel wird der Cursor zu Beginn gleich ins erste Feld gesetzt (eingesetzt bei Mietlager XL Rechner).&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
// enter2tab for textboxes&lt;br /&gt;
$(document).ready(function() {&lt;br /&gt;
	$(&amp;#039;input:text:first&amp;#039;).focus();&lt;br /&gt;
	$(&amp;#039;input:text&amp;#039;).bind(&amp;#039;keydown&amp;#039;, function(e) {&lt;br /&gt;
		if (e.keyCode == 13) {&lt;br /&gt;
			e.preventDefault();&lt;br /&gt;
			var nextIndex = $(&amp;#039;input:text&amp;#039;).index(this) + 1;&lt;br /&gt;
			var maxIndex = $(&amp;#039;input:text&amp;#039;).length;&lt;br /&gt;
			if (nextIndex &amp;lt; maxIndex) {&lt;br /&gt;
				$(&amp;#039;input:text:eq(&amp;#039; + nextIndex+&amp;#039;)&amp;#039;).focus();&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
	});&lt;br /&gt;
});&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== JavaScript Animation ===&lt;br /&gt;
Siehe [[Animation im Web]]&lt;br /&gt;
&lt;br /&gt;
=== Sortieren ===&lt;br /&gt;
http://www.javascriptkit.com/javatutors/arraysort.shtml&lt;br /&gt;
&lt;br /&gt;
=== Scrolling ===&lt;br /&gt;
==== Scroll / Fixed Navbar ====&lt;br /&gt;
jQuery&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
$(document).ready(function() {&lt;br /&gt;
  var stickyNavTop = $(&amp;#039;.nav&amp;#039;).offset().top;&lt;br /&gt;
  var stickyNav = function(){&lt;br /&gt;
    var scrollTop = $(window).scrollTop();  &lt;br /&gt;
    if (scrollTop &amp;gt; stickyNavTop) { &lt;br /&gt;
      $(&amp;#039;.nav&amp;#039;).addClass(&amp;#039;sticky&amp;#039;);&lt;br /&gt;
    } else {&lt;br /&gt;
      $(&amp;#039;.nav&amp;#039;).removeClass(&amp;#039;sticky&amp;#039;); &lt;br /&gt;
    }&lt;br /&gt;
  };&lt;br /&gt;
  stickyNav();&lt;br /&gt;
  $(window).scroll(function() {&lt;br /&gt;
    stickyNav();&lt;br /&gt;
  });&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
CSS - wichtig vor allem fixed.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;css&amp;quot;&amp;gt;&lt;br /&gt;
.sticky {&lt;br /&gt;
  position: fixed;&lt;br /&gt;
  width: 100%;&lt;br /&gt;
  left: 0;&lt;br /&gt;
  top: 0;&lt;br /&gt;
  z-index: 100;&lt;br /&gt;
  border-top: 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Smooth Scrolling für Anchor Tags oder toTop Links ====&lt;br /&gt;
===== Beispiel 1 (jQuery)  =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$(&amp;#039;a[href*=#]:not([href=#])&amp;#039;).click(function() {&lt;br /&gt;
    if (location.pathname.replace(/^\//,&amp;#039;&amp;#039;) == this.pathname.replace(/^\//,&amp;#039;&amp;#039;) &lt;br /&gt;
        || location.hostname == this.hostname) {&lt;br /&gt;
&lt;br /&gt;
        var target = $(this.hash);&lt;br /&gt;
        target = target.length ? target : $(&amp;#039;[name=&amp;#039; + this.hash.slice(1) +&amp;#039;]&amp;#039;);&lt;br /&gt;
           if (target.length) {&lt;br /&gt;
             $(&amp;#039;html,body&amp;#039;).animate({&lt;br /&gt;
                 scrollTop: target.offset().top&lt;br /&gt;
            }, 1000);&lt;br /&gt;
            return false;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
});&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Beispiel 2 (jQuery) mit Offset =====&lt;br /&gt;
statt &lt;br /&gt;
 .top&lt;br /&gt;
einfach&lt;br /&gt;
 .top-100&lt;br /&gt;
http://1stwebmagazine.com/jquery-scroll-to-anchor-point&lt;br /&gt;
&lt;br /&gt;
===== Beispiel 3 Materialize Pushpin ToTop =====&lt;br /&gt;
jQuery Plugin enthalten in MaterializeCSS http://materializecss.com/pushpin.html&lt;br /&gt;
&lt;br /&gt;
Kann für ToTop Navigation oder Fixed Navigations etc. eingesetzt werden. Liegt im Verzeichnis js/pushpin geht aber nicht ohne weiteres Standalone&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
//PUSHPIN TOTOP&lt;br /&gt;
$( document ).ready(function(){&lt;br /&gt;
  $(&amp;#039;.totop&amp;#039;).pushpin({&lt;br /&gt;
    top: 500,// distance where pin becomes fixed (class)- default 0&lt;br /&gt;
    bottom: &amp;#039;infinity&amp;#039;, // distance when pin stops being fixed - default infinity&lt;br /&gt;
    offset: 24 // style=&amp;quot;top:[offset]&amp;quot;&amp;quot;&amp;quot; - default 0&lt;br /&gt;
  })&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
//You can remove pushpin and pushpin classes&lt;br /&gt;
$(&amp;#039;.tabs-wrapper .row&amp;#039;).pushpin(&amp;#039;remove&amp;#039;);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
CSS&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;css&amp;quot;&amp;gt;&lt;br /&gt;
/* Class for when element is above threshold */&lt;br /&gt;
.pin-top {&lt;br /&gt;
  position: relative;&lt;br /&gt;
}&lt;br /&gt;
/* Class for when element is below threshold*/&lt;br /&gt;
.pin-bottom {&lt;br /&gt;
  position: relative;&lt;br /&gt;
}&lt;br /&gt;
/* Class for when element is pinned */&lt;br /&gt;
.pinned {&lt;br /&gt;
  position: fixed !important;&lt;br /&gt;
  right: 24px;&lt;br /&gt;
  bottom: 24px;&lt;br /&gt;
  z-index: 9;&lt;br /&gt;
}&lt;br /&gt;
/* Only necessary for window height sized blocks. */&lt;br /&gt;
  html, body, .block {&lt;br /&gt;
    height: 100%;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Beispiel Markup für ToTop Navigation =====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html5&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
  &amp;lt;a class=&amp;quot;anchor&amp;quot; name=&amp;quot;top&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;&lt;br /&gt;
  ...&lt;br /&gt;
  &amp;lt;div class=&amp;quot;totop&amp;quot;&amp;gt;&amp;lt;a href=&amp;quot;top&amp;quot;&amp;gt;&amp;lt;i class=&amp;quot;fa fa-angle-double-up fa-2x&amp;quot;&amp;gt;&amp;lt;/i&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
$(document).ready(function() {&lt;br /&gt;
  $(&amp;#039;a.totop&amp;#039;).hide();&lt;br /&gt;
  $(window).scroll(function(){&lt;br /&gt;
    var value = 200; // Toplink beim vertikalen scrollen ab einem Wert von XXX &amp;#039;px&amp;#039; anzeigen&lt;br /&gt;
    var scrolling = $(window).scrollTop();&lt;br /&gt;
    if (scrolling &amp;gt; value) {&lt;br /&gt;
      $(&amp;#039;a.totop&amp;#039;).fadeIn();&lt;br /&gt;
    } else {&lt;br /&gt;
      $(&amp;#039;a.totop&amp;#039;).fadeOut();&lt;br /&gt;
    }&lt;br /&gt;
  });&lt;br /&gt;
  $(&amp;#039;a.totop&amp;#039;).click(function(){&lt;br /&gt;
    $(&amp;#039;html, body&amp;#039;).animate({scrollTop:&amp;#039;0px&amp;#039;}, 400);&lt;br /&gt;
    return false;&lt;br /&gt;
  });&lt;br /&gt;
});&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>91.33.209.1</name></author>
	</entry>
</feed>