/[bfilter]/trunk/hide.js
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Annotation of /trunk/hide.js

Parent Directory Parent Directory | Revision Log Revision Log


Revision 17 - (hide annotations)
Sun Sep 12 20:30:47 2004 UTC (19 years, 7 months ago) by dpavlin
File MIME type: application/javascript
File size: 2211 byte(s)
new function to outline and display element by id

1 dpavlin 16 /*
2     simple yet powerful implementation of show/hide effect
3     with history navigation (back/forward/default)
4    
5     Dobrica Pavlinusic <dpavlin@rot13.org> 2004-09-12
6     */
7    
8 dpavlin 15 var changed_display_ids = [];
9     var changed_display_pos = 0;
10 dpavlin 16 var id_cache = [];
11 dpavlin 15
12 dpavlin 16 function element_id(id) {
13     if (id_cache[id]) {
14     return id_cache[id];
15     } else {
16     var el = document.getElementById(id);
17     if (el) {
18     id_cache[id] = el;
19     return el;
20     }
21     }
22     }
23    
24 dpavlin 15 function toggle_display(name,dont_save) {
25 dpavlin 16 var el = element_id(name);
26 dpavlin 14 if (el) {
27 dpavlin 13 if (el.style.display=='none')
28     el.style.display = '';
29     else
30     el.style.display = 'none';
31 dpavlin 15
32     if (! dont_save) changed_display_ids[changed_display_pos++] = name;
33 dpavlin 13 }
34    
35     return false;
36     }
37 dpavlin 14
38 dpavlin 16 function default_display() {
39 dpavlin 15 for (var i = 0; i <= changed_display_pos; i++) {
40     toggle_display( changed_display_ids[i], 1 );
41     }
42     changed_display_pos = 0;
43     return false;
44     }
45    
46     function back_display() {
47     if (changed_display_pos == 0) {
48     alert("can't go back in history");
49     return;
50     }
51     toggle_display( changed_display_ids[--changed_display_pos], 1 );
52     }
53    
54     function forward_display() {
55     if (changed_display_pos == changed_display_ids.length) {
56     alert("can't go forward in history");
57     return;
58     }
59    
60     toggle_display( changed_display_ids[changed_display_pos++], 1 );
61     }
62    
63 dpavlin 16 function reset_changed() {
64     changed_display_ids.length = 0;
65     changed_display_pos = 0;
66     }
67 dpavlin 15
68 dpavlin 14 function set_display(name,display) {
69 dpavlin 16 var el = element_id(name);
70 dpavlin 14
71     if (el) el.style.display = display
72     else alert("can't set_display("+name+","+display+")");
73    
74     return false;
75     }
76    
77     function show_display(show) {
78     for (var i = 0; i < show.length; i++) {
79     set_display(show[i],'');
80     }
81 dpavlin 16 reset_changed();
82 dpavlin 14 }
83    
84     function hide_display(hide) {
85     for (var i = 0; i < hide.length; i++) {
86     set_display(hide[i],'none');
87     }
88 dpavlin 16 reset_changed();
89 dpavlin 14 }
90    
91     function show_hide_display(show,hide) {
92     show_display(show);
93     hide_display(hide);
94     }
95 dpavlin 17
96     function outline_display(name) {
97    
98     var el = element_id(name);
99    
100     if (el) {
101     el.style.background = "#e0e0e0";
102     el.style.border = "1px dashed #c0c0c0";
103    
104     if (el.style.display=='none') toggle_display(el.id);
105    
106     // recursivly show elements to root
107     while (el.parentNode) {
108     var el=el.parentNode;
109     if (el.style.display=='none') toggle_display(el.id);
110     }
111     }
112     }

  ViewVC Help
Powered by ViewVC 1.1.26