/lenasys/trunk

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/lenasys/trunk

« back to all changes in this revision

Viewing changes to codeigniter/user_guide/nav/moo.fx.js

  • Committer: galaxyAbstractor
  • Date: 2013-04-10 15:49:32 UTC
  • mto: (19.1.5 lenasys)
  • mto: This revision was merged to the branch mainline in revision 23.
  • Revision ID: galaxyabstractor@gmail.com-20130410154932-4vizlzk0ar5gykvi
* Added an simple admin panel to the codeviewer-cmssy stuff
* Redesigned a bit like the mockups - still stuff to come
* Implemented the codeviewer + admin panel again using the Framework CodeIgniter instead 

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
moo.fx, simple effects library built with prototype.js (http://prototype.conio.net).
 
3
by Valerio Proietti (http://mad4milk.net) MIT-style LICENSE.
 
4
for more info (http://moofx.mad4milk.net).
 
5
10/24/2005
 
6
v(1.0.2)
 
7
*/
 
8
 
 
9
//base
 
10
var fx = new Object();
 
11
fx.Base = function(){};
 
12
fx.Base.prototype = {
 
13
        setOptions: function(options) {
 
14
        this.options = {
 
15
                duration: 500,
 
16
                onComplete: ''
 
17
        }
 
18
        Object.extend(this.options, options || {});
 
19
        },
 
20
 
 
21
        go: function() {
 
22
                this.duration = this.options.duration;
 
23
                this.startTime = (new Date).getTime();
 
24
                this.timer = setInterval (this.step.bind(this), 13);
 
25
        },
 
26
 
 
27
        step: function() {
 
28
                var time  = (new Date).getTime();
 
29
                var Tpos   = (time - this.startTime) / (this.duration);
 
30
                if (time >= this.duration+this.startTime) {
 
31
                        this.now = this.to;
 
32
                        clearInterval (this.timer);
 
33
                        this.timer = null;
 
34
                        if (this.options.onComplete) setTimeout(this.options.onComplete.bind(this), 10);
 
35
                }
 
36
                else {
 
37
                        this.now = ((-Math.cos(Tpos*Math.PI)/2) + 0.5) * (this.to-this.from) + this.from;
 
38
                        //this time-position, sinoidal transition thing is from script.aculo.us
 
39
                }
 
40
                this.increase();
 
41
        },
 
42
 
 
43
        custom: function(from, to) {
 
44
                if (this.timer != null) return;
 
45
                this.from = from;
 
46
                this.to = to;
 
47
                this.go();
 
48
        },
 
49
 
 
50
        hide: function() {
 
51
                this.now = 0;
 
52
                this.increase();
 
53
        },
 
54
 
 
55
        clearTimer: function() {
 
56
                clearInterval(this.timer);
 
57
                this.timer = null;
 
58
        }
 
59
}
 
60
 
 
61
//stretchers
 
62
fx.Layout = Class.create();
 
63
fx.Layout.prototype = Object.extend(new fx.Base(), {
 
64
        initialize: function(el, options) {
 
65
                this.el = $(el);
 
66
                this.el.style.overflow = "hidden";
 
67
                this.el.iniWidth = this.el.offsetWidth;
 
68
                this.el.iniHeight = this.el.offsetHeight;
 
69
                this.setOptions(options);
 
70
        }
 
71
});
 
72
 
 
73
fx.Height = Class.create();
 
74
Object.extend(Object.extend(fx.Height.prototype, fx.Layout.prototype), {
 
75
        increase: function() {
 
76
                this.el.style.height = this.now + "px";
 
77
        },
 
78
 
 
79
        toggle: function() {
 
80
                if (this.el.offsetHeight > 0) this.custom(this.el.offsetHeight, 0);
 
81
                else this.custom(0, this.el.scrollHeight);
 
82
        }
 
83
});