{{indexmenu_n>20}}
====== Back to Top Link Knopf fade in/out ======
**Ein Toplink Button erscheint autom. auf der Seite (fade in/out) wenn etwa 2/3 der Seitenlänge durch das Scrollen erreicht sind. **
V 1.30: Der Sprung an den Seitenanfang ist als optischer "harter Sprung ausgebildet", wie bei einem normalen Link zu einem Anker.
**Update 27.07.2011:** \\
V 1.31 Der "harte" Sprung zum Seitenanfang wird durch ein "SmoothScroll" ersetzt. Der User sieht also dass die Seite nach oben rollt.
IE6 wird nicht unterstützt!!
**Idee:** gonchuki und Nicolas Sanguinetti [[http://blog.gonchuki.com/archives/usability-101-adding-a-global-back-to-top-to-your-site/]] \\
**Ergänzend:** David Walsh [[http://davidwalsh.name/mootools-watermark|"Top" Watermark Using MooTools]] \\
**Beispiel:** --
\\
{{:deutsch:andere-erweiterungen:mootools:fe_mootools_totop_1.gif|}}
\\
Docu: -- \\
Forum: --
**Autor:** gonchuki und Nicolas Sanguinetti \\
wiki-Autor: K.Heermann (flip-flop) http://planmatrix.de) 27.07.2011\\
**CMS Version:** >= 1.4.7 (r4xx) \\
**Version:** V1.30 \\
**Update** 27.07.2011 KH nach Version 1.3.1: Der "harte" Sprung zum Seitenanfang wird durch ein "SmoothScroll" ersetzt. \\
Tag: -- \\
**Dateinamen:**
* template/lib/mootools/plugin-1.2/mootools.back-to-top-1.2.js
* template/lib/mootools/plugin-1.3/mootools.back-to-top-1.3.js
* template/img/mootools/ui.totop.png
* template/inc_css/specific/mootools/back-to-top.css
**Verzeichnis:** template/lib/mootools/plugin-1.2 [plugin-1.3]
**Bedingung:** -> [[http://www.phpwcms-docu.de/confincphp_de.phtml|/config/phpwcms/conf.inc.php]] \\
* $phpwcms['allow_cntPHP_rt'] = 1;
* JS im Browser eingeschaltet
\\
===== Beschreibung: =====
Der JS-Code, die CSS-Datei und das Buttonbild werden in den oben angegebenen Verzeichnissen abgelegt.
* In der betreffenden Vorlage wird bei **JS Bibliothek:** ##mootools 1.2 oder 1.3## gewählt.
* Im HTML-Kopf der Vorlage wird die CSS-Datei geladen mit
* In der Vorlage werden in "HAUPT:" an irgendeiner Stelle die JS-Plugins initialisiert oder
* Das Bild für den Button wird in "template/img/mootools/ui.totop.png" abgelegt.
* + V 1.31: Das MooTools Plugin "Fx.Scroll" muss hinzugeladen werden:
\\
===== V 1.30 =====
==== Vorlage: ====
{{:deutsch:andere-erweiterungen:mootools:be_mootools_totop_1.gif|}}
\\
\\
==== JS-Code ====
**Version für Mootools V1.2**\\
**Datei** ##template/lib/mootools/plugin-1.2/mootools.back-to-top-1.2.js##
/**
* back-to-top: unobtrusive global 'back to top' link using mootools 1.2.x
*
* copyright (c) 2007-2009 by gonchuki - http://blog.gonchuki.com
* and Nicolas Sanguinetti - http://nicolassanguinetti.info
*
* version: 1.2
* released: November 11, 2007
* last modified: February 27, 2009
*
* This work is licensed under a Creative Commons Attribution-Share Alike 3.0 License.
* http://creativecommons.org/licenses/by-sa/3.0/
*/
// hide the effect from IE6, better not having it at all than being choppy.
if (!Browser.Engine.trident4) {
// element added onload for IE to avoid the "operation aborted" bug. not yet verified for IE8 as it's still on beta as of this modification.
window.addEvent((Browser.Engine.trident ? 'load' : 'domready'), function(){
var target_opacity = 0.64;
new Element('span', {
'id': 'back-to-top',
'styles': {
opacity: target_opacity,
display: 'none',
position: 'fixed',
bottom: 0,
right: 0,
cursor: 'pointer'
},
'text': 'back to top',
'tween': {
duration: 200,
onComplete: function(el) { if (el.get('opacity') == 0) el.setStyle('display', 'none')}
},
'events': {'click': function() {
if (window.location.hash) { window.location.hash = '#top'; }
else { window.scrollTo(0, 0); }
}}
}).inject(document.body);
window.addEvent('scroll', function() {
var visible = window.getScroll().y > (window.getSize().y * 0.8);
if (visible == arguments.callee.prototype.last_state) return;
// fade if supported
if (Fx && Fx.Tween) {
if (visible) $('back-to-top').fade('hide').setStyle('display', 'inline').fade(target_opacity);
else $('back-to-top').fade('out');
} else {
$('back-to-top').setStyle('display', (visible ? 'inline' : 'none'));
}
arguments.callee.prototype.last_state = visible
});
});
}
\\
**Version für Mootools V1.3**\\
**Datei** ##template/lib/mootools/plugin-1.3/mootools.back-to-top-1.3.js##
/**
* back-to-top: unobtrusive global 'back to top' link using mootools 1.2.x
*
* copyright (c) 2007-2009 by gonchuki - http://blog.gonchuki.com
* and Nicolas Sanguinetti - http://nicolassanguinetti.info
*
* version: 1.2
* released: November 11, 2007
* last modified: February 27, 2009
*
* This work is licensed under a Creative Commons Attribution-Share Alike 3.0 License.
* http://creativecommons.org/licenses/by-sa/3.0/
*/
// hide the effect from IE6, better not having it at all than being choppy.
//-KH v1.2 if (!Browser.Engine.trident4) {
if (!(Browser.name == 'ie' && Browser.version == 6)) {
// element added onload for IE to avoid the "operation aborted" bug. not yet verified for IE8 as it's still on beta as of this modification.
//-KH v1.2 window.addEvent((Browser.Engine.trident ? 'load' : 'domready'), function(){
window.addEvent((Browser.name == 'ie' ? 'load' : 'domready'), function(){
var target_opacity = 0.64;
new Element('span', {
'id': 'back-to-top',
'styles': {
opacity: target_opacity,
display: 'none',
position: 'fixed',
bottom: 0,
right: 0,
cursor: 'pointer'
},
'text': 'back to top',
'tween': {
duration: 200,
onComplete: function(el) { if (el.get('opacity') == 0) el.setStyle('display', 'none')}
},
'events': {'click': function() {
if (window.location.hash) { window.location.hash = '#top'; }
else { window.scrollTo(0, 0); }
}}
}).inject(document.body);
window.addEvent('scroll', function() {
var visible = window.getScroll().y > (window.getSize().y * 0.8);
if (visible == arguments.callee.prototype.last_state) return;
// fade if supported
if (Fx && Fx.Tween) {
if (visible) $('back-to-top').fade('hide').setStyle('display', 'inline').fade(target_opacity);
else $('back-to-top').fade('out');
} else {
$('back-to-top').setStyle('display', (visible ? 'inline' : 'none'));
}
arguments.callee.prototype.last_state = visible
});
});
}
\\
===== V 1.31 =====
==== Vorlage: ====
{{:deutsch:andere-erweiterungen:mootools:be_mootools_totop_v131_1.gif|}}
==== JS-Code ====
**Version 1.31 für Mootools V1.2**\\
**Datei** ##template/lib/mootools/plugin-1.2/mootools.back-to-top-1.2.js##
/**
* --------------------------------------------------------------------------
* back-to-top: unobtrusive global 'back to top' link using mootools 1.2.x
*
* copyright (c) 2007-2009 by gonchuki - http://blog.gonchuki.com
* and Nicolas Sanguinetti - http://nicolassanguinetti.info
*
* version: 1.3
* released: November 11, 2007
* last modified: February 27, 2009
* version: 1.31
* last modified: July 28, 2011 KH: http://phpwcms-howto.de
*
* This work is licensed under a Creative Commons Attribution-Share Alike 3.0 License.
* http://creativecommons.org/licenses/by-sa/3.0/
* --------------------------------------------------------------------------
*/
// hide the effect from IE6, better not having it at all than being choppy.
if (!Browser.Engine.trident4) {
// element added onload for IE to avoid the "operation aborted" bug. not yet verified for IE8 as it's still on beta as of this modification.
window.addEvent((Browser.Engine.trident ? 'load' : 'domready'), function(){
var scrollUp = new Fx.Scroll(window); // +KH 28.07.2011 SmoothScroll
var target_opacity = 0.64;
new Element('span', {
'id': 'back-to-top',
'styles': {
opacity: target_opacity,
display: 'none',
position: 'fixed',
bottom: 0,
right: 0,
cursor: 'pointer'
},
'text': 'back to top',
'tween': {
duration: 600,
onComplete: function(el) { if (el.get('opacity') == 0) el.setStyle('display', 'none')}
},
'events': {'click': function() {
// if (window.location.hash) { window.location.hash = '#top'; }
// else { window.scrollTo(0, 0); }
scrollUp.toTop(); //+KH: go to the top;
}}
}).inject(document.body);
window.addEvent('scroll', function() {
var visible = window.getScroll().y > (window.getSize().y * 0.7);
if (visible == arguments.callee.prototype.last_state) return;
// fade if supported
if (Fx && Fx.Tween) {
if (visible) $('back-to-top').fade('hide').setStyle('display', 'inline').fade(target_opacity);
else $('back-to-top').fade('out');
} else {
$('back-to-top').setStyle('display', (visible ? 'inline' : 'none'));
}
arguments.callee.prototype.last_state = visible
});
});
}
\\
**Version 1.31 für Mootools V1.3**\\
**Datei** ##template/lib/mootools/plugin-1.3/mootools.back-to-top-1.3.js##
/**
* --------------------------------------------------------------------------
* back-to-top: unobtrusive global 'back to top' link using mootools 1.3.x
*
* copyright (c) 2007-2009 by gonchuki - http://blog.gonchuki.com
* and Nicolas Sanguinetti - http://nicolassanguinetti.info
*
* version: 1.3
* released: November 11, 2007
* last modified: February 27, 2009
* version: 1.31
* last modified: July 28, 2011 KH: http://phpwcms-howto.de
*
* This work is licensed under a Creative Commons Attribution-Share Alike 3.0 License.
* http://creativecommons.org/licenses/by-sa/3.0/
* --------------------------------------------------------------------------
*/
// hide the effect from IE6, better not having it at all than being choppy.
//-KH moo v1.2 if (!Browser.Engine.trident4) {
if (!(Browser.name == 'ie' && Browser.version == 6)) {
// element added onload for IE to avoid the "operation aborted" bug. not yet verified for IE8 as it's still on beta as of this modification.
//-KH moo v1.2 window.addEvent((Browser.Engine.trident ? 'load' : 'domready'), function(){
window.addEvent((Browser.name == 'ie' ? 'load' : 'domready'), function(){
var scrollUp = new Fx.Scroll(window); // +KH 28.07.2011 SmoothScroll
var target_opacity = 0.64;
new Element('span', {
'id': 'back-to-top',
'styles': {
opacity: target_opacity,
display: 'none',
position: 'fixed',
bottom: 0,
right: 0,
cursor: 'pointer'
},
'text': 'back to top',
'tween': {
duration: 600,
onComplete: function(el) { if (el.get('opacity') == 0) el.setStyle('display', 'none')}
},
'events': {'click': function() {
// if (window.location.hash) { window.location.hash = '#top'; }
// else { window.scrollTo(0, 0); }
scrollUp.toTop(); //+KH: go to the top;
}}
}).inject(document.body);
window.addEvent('scroll', function() {
var visible = window.getScroll().y > (window.getSize().y * 0.7);
if (visible == arguments.callee.prototype.last_state) return;
// fade if supported
if (Fx && Fx.Tween) {
if (visible) $('back-to-top').fade('hide').setStyle('display', 'inline').fade(target_opacity);
else $('back-to-top').fade('out');
} else {
$('back-to-top').setStyle('display', (visible ? 'inline' : 'none'));
}
arguments.callee.prototype.last_state = visible
});
});
}
\\
\\
===== CSS =====
**Datei** ##template/inc_css/specific/mootools/back-to-top.css##
/**
* back-to-top: unobtrusive global 'back to top' link using mootools
*
* copyright (c) 2007-2009 by gonchuki - http://blog.gonchuki.com
* and Nicolas Sanguinetti - http://nicolassanguinetti.info
*
* Enhanced by KH 27.07.2011: link button instead of link text.
*/
#back-to-top {
/* background: #666 url(../../../img/mootools/triangle-gray-up.png) no-repeat right center;
color: #fff;
font: bold 14px Arial, Helvetica, sans-serif;
padding: 3px 17px 3px 7px; */
background:url(../../../img/mootools/ui.totop.png) no-repeat left top;
margin:10px;
position:fixed;
bottom:10px;
right:10px;
overflow:hidden;
width:51px;
height:51px;
border:none;
text-indent:-999px;
display:none;
text-decoration:none;
}
#back-to-top:hover {
background:url(../../../img/mootools/ui.totop.png) no-repeat left -51px;
width:51px;
height:51px;
display:block;
overflow:hidden;
float:left;
opacity: 0;
-moz-opacity: 0;
filter:alpha(opacity=0);
}
\\
===== Download =====
Version 1.30: {{:deutsch:andere-erweiterungen:mootools:mootools_totop_v130.zip|}}
Version 1.31: {{:deutsch:andere-erweiterungen:mootools:mootools_totop_v131.zip|}} //(mit SmoothScroll)//
\\