Mercurial > hg > MPIWGWeb
annotate js/mpiwg.js @ 134:9f45ed6ffeab
bugs in publications
zeigt jetzt auch links
author | dwinter |
---|---|
date | Fri, 31 May 2013 11:39:30 +0200 |
parents | 4f522104ca62 |
children | 529d397e04f6 |
rev | line source |
---|---|
66
68b3d71eed27
formatting for preprint list. javascript for foldable divs.
casties
parents:
diff
changeset
|
1 /* |
68b3d71eed27
formatting for preprint list. javascript for foldable divs.
casties
parents:
diff
changeset
|
2 * Javascript for MPIWG website |
112 | 3 * (C) 2013 MPIWG Berlin |
88 | 4 */ |
66
68b3d71eed27
formatting for preprint list. javascript for foldable divs.
casties
parents:
diff
changeset
|
5 |
112 | 6 /* |
7 * AjaxSlider plugin. | |
8 */ | |
108
782477730916
CLOSED - # 57: Research/ Research Units: Karussell f?r die Projekte in einem Department
casties
parents:
103
diff
changeset
|
9 (function ($) { |
782477730916
CLOSED - # 57: Research/ Research Units: Karussell f?r die Projekte in einem Department
casties
parents:
103
diff
changeset
|
10 $.fn.AjaxSlider = function (opts) { |
782477730916
CLOSED - # 57: Research/ Research Units: Karussell f?r die Projekte in einem Department
casties
parents:
103
diff
changeset
|
11 var settings = $.extend({ |
782477730916
CLOSED - # 57: Research/ Research Units: Karussell f?r die Projekte in einem Department
casties
parents:
103
diff
changeset
|
12 dataUrl : null, |
782477730916
CLOSED - # 57: Research/ Research Units: Karussell f?r die Projekte in einem Department
casties
parents:
103
diff
changeset
|
13 dataSel : '', |
112 | 14 windowSel : 'div.slidewindow', |
15 contentSel : 'div.row', | |
117 | 16 minHeight : 0, |
112 | 17 buttonWidth : '20px', |
108
782477730916
CLOSED - # 57: Research/ Research Units: Karussell f?r die Projekte in einem Department
casties
parents:
103
diff
changeset
|
18 scrollBy: '100px', |
782477730916
CLOSED - # 57: Research/ Research Units: Karussell f?r die Projekte in einem Department
casties
parents:
103
diff
changeset
|
19 }, opts); |
782477730916
CLOSED - # 57: Research/ Research Units: Karussell f?r die Projekte in einem Department
casties
parents:
103
diff
changeset
|
20 var url = settings.dataUrl + ' ' + settings.dataSel; |
782477730916
CLOSED - # 57: Research/ Research Units: Karussell f?r die Projekte in einem Department
casties
parents:
103
diff
changeset
|
21 var $slider = this; |
116 | 22 var winW = this.width() - 2 * settings.buttonWidth; |
108
782477730916
CLOSED - # 57: Research/ Research Units: Karussell f?r die Projekte in einem Department
casties
parents:
103
diff
changeset
|
23 var sliderH = this.height(); |
119 | 24 //var sliderH = "200px"; |
25 | |
26 | |
27 | |
28 | |
108
782477730916
CLOSED - # 57: Research/ Research Units: Karussell f?r die Projekte in einem Department
casties
parents:
103
diff
changeset
|
29 this.load(url, function () { |
112 | 30 var $window = $slider.find(settings.windowSel); |
116 | 31 var $content = $slider.find(settings.contentSel); |
112 | 32 // fix window width and height and hide overflow |
117 | 33 var winH = Math.max($content.height(), settings.minHeight); |
116 | 34 $window.css({'width':winW, 'height':winH, 'margin':'0 '+settings.buttonWidth, |
112 | 35 'overflow':'hidden', 'position':'relative'}); |
108
782477730916
CLOSED - # 57: Research/ Research Units: Karussell f?r die Projekte in einem Department
casties
parents:
103
diff
changeset
|
36 // content will be moved |
782477730916
CLOSED - # 57: Research/ Research Units: Karussell f?r die Projekte in einem Department
casties
parents:
103
diff
changeset
|
37 $content.css({'position':'absolute', 'left':'0'}); |
782477730916
CLOSED - # 57: Research/ Research Units: Karussell f?r die Projekte in einem Department
casties
parents:
103
diff
changeset
|
38 $slider.find('.slidebutton.prev').show().on('click', function () { |
782477730916
CLOSED - # 57: Research/ Research Units: Karussell f?r die Projekte in einem Department
casties
parents:
103
diff
changeset
|
39 $content.animate({'left':'+='+settings.scrollBy}, 'fast'); |
782477730916
CLOSED - # 57: Research/ Research Units: Karussell f?r die Projekte in einem Department
casties
parents:
103
diff
changeset
|
40 }); |
782477730916
CLOSED - # 57: Research/ Research Units: Karussell f?r die Projekte in einem Department
casties
parents:
103
diff
changeset
|
41 $slider.find('.slidebutton.next').show().on('click', function () { |
782477730916
CLOSED - # 57: Research/ Research Units: Karussell f?r die Projekte in einem Department
casties
parents:
103
diff
changeset
|
42 $content.animate({'left':'-='+settings.scrollBy}, 'fast'); |
782477730916
CLOSED - # 57: Research/ Research Units: Karussell f?r die Projekte in einem Department
casties
parents:
103
diff
changeset
|
43 }); |
782477730916
CLOSED - # 57: Research/ Research Units: Karussell f?r die Projekte in einem Department
casties
parents:
103
diff
changeset
|
44 }); |
119 | 45 |
46 | |
47 | |
113 | 48 }; |
108
782477730916
CLOSED - # 57: Research/ Research Units: Karussell f?r die Projekte in einem Department
casties
parents:
103
diff
changeset
|
49 }(jQuery)); |
782477730916
CLOSED - # 57: Research/ Research Units: Karussell f?r die Projekte in einem Department
casties
parents:
103
diff
changeset
|
50 |
782477730916
CLOSED - # 57: Research/ Research Units: Karussell f?r die Projekte in einem Department
casties
parents:
103
diff
changeset
|
51 |
119 | 52 /* experimental function for adding swiping functionallities to the slider */ |
53 | |
54 var startX; | |
55 var startY; | |
56 var endX | |
57 var endY | |
58 | |
59 | |
60 function touchStart(event){ | |
61 | |
62 | |
63 startX = event.touches[0].pageX; | |
64 startY = event.touches[0].pageY; | |
65 }; | |
66 | |
67 function touchMove(event){ | |
68 | |
69 endX = event.targetTouches[0].pageX; | |
70 | |
71 endY = event.targetTouches[0].pageY; | |
72 | |
73 | |
74 }; | |
75 function touchEnd(event){ | |
76 var scrollBy='143px'; | |
77 var contentSel = 'div.row'; | |
78 | |
79 //slider = document.getElementById('newBooksSlider'); | |
80 slider=event.currentTarget; | |
81 | |
82 content = $(slider).find(contentSel); | |
83 | |
84 if((startX-endX) > 0){ | |
85 | |
86 content.animate({'left':'-='+scrollBy}, 'fast'); | |
87 | |
88 } | |
89 if((startX-endX) < 0){ | |
90 content.animate({'left':'+='+scrollBy}, 'fast'); | |
91 } | |
92 | |
93 } | |
94 | |
95 | |
96 | |
97 | |
98 function initialize_swipe(selector){ | |
99 | |
100 $('.ajaxSlider').each(function(){ | |
101 this.addEventListener("touchstart",touchStart,false); | |
102 this.addEventListener("touchend",touchEnd,false); | |
103 this.addEventListener("touchmove",touchMove,false); | |
104 | |
105 } ); | |
106 }; | |
107 | |
66
68b3d71eed27
formatting for preprint list. javascript for foldable divs.
casties
parents:
diff
changeset
|
108 $(document).ready(function() { |
88 | 109 /* |
110 * autosubmit forms | |
111 */ | |
112 $('form.autosubmit').find('.autosubmit').change(function() { | |
113 this.form.submit(); | |
114 }); | |
115 // hide submit button | |
116 $('form.autosubmit input[type="submit"].autosubmit').hide(); | |
117 | |
118 /* | |
119 * foldout divs | |
103 | 120 * |
121 * foldable: .foldable is ancestor of .fold_head and .fold_body | |
122 * that are folded simultaneously. | |
123 * | |
124 * foldableById: .foldableById is ancestor of multiple .fold_head and .fold_body | |
125 * where each pair has a common unique .foldId_xxx. | |
126 * | |
127 * Clicking on .fold_head folds and unfolds .fold_body. | |
128 * | |
129 * If .foldable has .initially_open .fold_body is initially shown, else its | |
130 * initally hidden. | |
88 | 131 */ |
103 | 132 $('.foldable').each(function () { |
88 | 133 var $this = $(this); |
134 var $head = $this.find('.fold_head'); | |
135 var $img = $head.find('img'); | |
136 var $body = $this.find('.fold_body'); | |
103 | 137 $head.on('click', function () { |
88 | 138 $body.slideToggle('fast'); |
139 $img.toggle(); | |
140 }).css('cursor', 'pointer'); | |
141 if (! $this.hasClass('initially_open')) { | |
142 // hide body initially | |
143 $body.hide(); | |
144 $img.toggle(); | |
145 } | |
146 }); | |
107 | 147 $('.foldable2').each(function () { |
148 var $this = $(this); | |
149 var $head = $this.find('.fold_head2'); | |
150 var $img = $head.find('img'); | |
151 var $body = $this.find('.fold_body2'); | |
152 $head.on('click', function () { | |
153 $body.slideToggle('fast'); | |
154 $img.toggle(); | |
155 }).css('cursor', 'pointer'); | |
156 if (! $this.hasClass('initially_open')) { | |
157 // hide body initially | |
158 $body.hide(); | |
159 $img.toggle(); | |
160 } | |
161 }); | |
103 | 162 $('.foldableById').each(function () { |
163 var $container = $(this); | |
164 var io = $container.hasClass('initially_open'); | |
165 var $heads = $container.find('.fold_head'); | |
166 $heads.each(function () { | |
167 var $this = $(this); | |
168 var $img = $this.find('img'); | |
169 var id = null; | |
170 // find id in class | |
171 var cls = $this.attr('class').split(' '); | |
172 for (var i = 0; i < cls.length; ++i) { | |
173 var c = cls[i]; | |
174 if (c.startsWith('foldId_')) { | |
175 id = c; | |
176 break; | |
177 } | |
178 } | |
179 if (id == null) return; | |
180 // get body using id | |
181 var $body = $container.find('.fold_body.'+id); | |
182 $this.on('click', function () { | |
183 $body.slideToggle('fast'); | |
184 $img.toggle(); | |
185 }); | |
186 if (!io) { | |
187 // hide body initially | |
188 $body.hide(); | |
189 $img.toggle(); | |
190 } | |
191 }).css('cursor', 'pointer'); | |
192 }); | |
88 | 193 }); |