summaryrefslogtreecommitdiff
path: root/js
diff options
context:
space:
mode:
authorerdgeist <erdgeist@bauklotz.fritz.box>2016-08-08 21:30:24 +0200
committererdgeist <erdgeist@bauklotz.fritz.box>2016-08-08 21:30:24 +0200
commiteaeca0641498c353202285d9cdf6464c28f834f3 (patch)
tree3e11831f56c12776159a796e80660ebda24bc833 /js
parent9b703ebb8484808d76714a5409b3d961479f90cb (diff)
Improve scroller function
Diffstat (limited to 'js')
-rw-r--r--js/abmahn.js67
1 files changed, 38 insertions, 29 deletions
diff --git a/js/abmahn.js b/js/abmahn.js
index 7237901..1b8d7c1 100644
--- a/js/abmahn.js
+++ b/js/abmahn.js
@@ -12,40 +12,49 @@ function setText(input, text) {
12 document.getElementById(input).value = text; 12 document.getElementById(input).value = text;
13} 13}
14 14
15function scrollTo(to, duration) {
16 if (document.body.scrollTop == to) return;
17 var diff = to - document.body.scrollTop;
18 var scrollStep = Math.PI / (duration / 10);
19 var count = 0, currPos;
20 start = document.body.scrollTop;
21 scrollInterval = setInterval(function(){
22 if (document.body.scrollTop != to) {
23 count = count + 1;
24 currPos = start + diff * (0.5 - 0.5 * Math.cos(count * scrollStep));
25 document.body.scrollTop = currPos;
26 }
27 else { clearInterval(scrollInterval); }
28 },10);
29}
30
31
32function scroll(id) {
33// document.getElementById(id).scrollIntoView();
34 scrollTo( document.getElementById(id).offsetTop, 500 );
35}
36
37function setClass(id, classes) { 15function setClass(id, classes) {
38 document.getElementById(id).className = classes; 16 document.getElementById(id).className = classes;
39} 17}
40 18
19function scrollTo(el) {
20 if(document.querySelectorAll === void 0 || window.pageYOffset === void 0 || history.pushState === void 0) {
21 el.scrollIntoView();
22 return;
23 }
24 var duration = 500;
25 var start = window.pageYOffset;
26 var end = document.getElementById(el).getBoundingClientRect().top + window.pageYOffset;
27
28 var clock = Date.now();
29 var requestAnimationFrame = window.requestAnimationFrame ||
30 window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame ||
31 function(fn){window.setTimeout(fn, 15);};
32
33 var step = function(){
34 var elapsed = Date.now() - clock;
35 var t = elapsed / duration;
36 if (elapsed > duration)
37 var pos =end;
38 else
39 var pos = start + (end - start) * (t<.5 ? 4*t*t*t : (t-1)*(2*t-2)*(2*t-2)+1);
40
41 window.scroll(window.pageXOffset, pos);
42
43 if (elapsed <= duration) {
44 requestAnimationFrame(step);
45 }
46 }
47 step();
48}
49
41function step0_cancel() { setClass('wrapper', 'stepcancel'); } 50function step0_cancel() { setClass('wrapper', 'stepcancel'); }
42function step0_done() { setClass('wrapper', 'step1'); scrollTo(document.body, 0, 100); } 51function step0_done() { setClass('wrapper', 'step1'); scrollTo('head1'); }
43function step1_done() { setClass('wrapper', 'step2'); scroll('head1'); } 52function step1_done() { setClass('wrapper', 'step2'); scrollTo('head1'); }
44function step2_done() { setClass('wrapper', 'step3'); scroll('head2'); } 53function step2_done() { setClass('wrapper', 'step3'); scrollTo('head2'); }
45function step3_done() { setClass('wrapper', 'step4'); scroll('head3'); } 54function step3_done() { setClass('wrapper', 'step4'); scrollTo('head3'); }
46function step4_done() { setClass('wrapper', 'step5'); scroll('head4'); } 55function step4_done() { setClass('wrapper', 'step5'); scrollTo('head4'); }
47function step5_done() { setClass('wrapper', 'step6'); scroll('head5'); } 56function step5_done() { setClass('wrapper', 'step6'); scrollTo('head5'); }
48function step6_done() { setClass('wrapper', 'step7'); scroll('head6'); } 57function step6_done() { setClass('wrapper', 'step7'); scrollTo('head6'); }
49 58
50function waldorff() { 59function waldorff() {
51 setText('abmahnender_kanzlei', 'Waldorff & Frommer RAe'); 60 setText('abmahnender_kanzlei', 'Waldorff & Frommer RAe');