Change $.hide & $.show by using the hidden attribute.

This commit is contained in:
Nicolas Stepien 2011-06-27 19:09:36 +02:00
parent 2d36343534
commit c336c080c5
2 changed files with 24 additions and 26 deletions

View File

@ -354,10 +354,10 @@
return root.parentNode.replaceChild(el, root);
},
hide: function(el) {
return el.style.display = 'none';
return el.hidden = true;
},
show: function(el) {
return el.style.display = '';
return el.hidden = false;
},
addClass: function(el, className) {
return el.className += ' ' + className;
@ -984,7 +984,7 @@
threads: [],
getThread: function(full) {
var bottom, i, rect, thread, _len, _ref;
nav.threads = $$('div.thread:not([style])');
nav.threads = $$('div.thread:not([hidden])');
_ref = nav.threads;
for (i = 0, _len = _ref.length; i < _len; i++) {
thread = _ref[i];
@ -1054,7 +1054,7 @@
var arr, checked, description, dialog, hiddenNum, hiddenThreads, hidingul, html, input, key, li, link, main, obj, overlay, ul, _i, _j, _k, _len, _len2, _len3, _ref, _ref2, _ref3, _ref4;
hiddenThreads = $.getValue("hiddenThreads/" + g.BOARD + "/", {});
hiddenNum = Object.keys(g.hiddenReplies).length + Object.keys(hiddenThreads).length;
html = " <div class='reply dialog'> <div id=optionsbar> <div id=floaty> <a name=main>main</a> | <a name=flavors>sauce</a> | <a name=time>time</a> | <a name=keybinds>keybinds</a> </div> <div id=credits> <a href=http://chat.now.im/x/aeos>support throd</a> | <a href=https://github.com/aeosynth/4chan-x/issues>github</a> | <a href=http://userscripts.org/scripts/show/51412>uso</a> | <a href=https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=2DBVZBUAM4DHC&lc=US&item_name=Aeosynth&currency_code=USD&bn=PP%2dDonationsBF%3abtn_donate_LG%2egif%3aNonHosted>donate</a> </div> </div> <hr> <div id=content> <div id=main> </div> <textarea style='display: none;' name=flavors id=flavors>" + ($.config('flavors')) + "</textarea> <div style='display: none;' id=time> <div><input type=text name=time value='" + ($.config('time')) + "'> <span id=timePreview></span></div> <table> <caption>Format specifiers <a href=http://en.wikipedia.org/wiki/Date_%28Unix%29#Formatting>(source)</a></caption> <tbody> <tr><th>Specifier</th><th>Description</th><th>Values/Example</th></tr> <tr><td>%a</td><td>weekday, abbreviated</td><td>Sat</td></tr> <tr><td>%A</td><td>weekday, full</td><td>Saturday</td></tr> <tr><td>%b</td><td>month, abbreviated</td><td>Jun</td></tr> <tr><td>%B</td><td>month, full length</td><td>June</td></tr> <tr><td>%d</td><td>day of the month, zero padded</td><td>03</td></tr> <tr><td>%H</td><td>hour (24 hour clock) zero padded</td><td>13</td></tr> <tr><td>%I (uppercase i)</td><td>hour (12 hour clock) zero padded</td><td>02</td></tr> <tr><td>%m</td><td>month, zero padded</td><td>06</td></tr> <tr><td>%M</td><td>minutes, zero padded</td><td>54</td></tr> <tr><td>%p</td><td>upper case AM or PM</td><td>PM</td></tr> <tr><td>%P</td><td>lower case am or pm</td><td>pm</td></tr> <tr><td>%y</td><td>two digit year</td><td>00-99</td></tr> </tbody> </table> </div> <div style='display: none;' id=keybinds> <table> <tbody> <tr><th>Actions</th><th>Keybinds</th></tr> <tr><td>Close Options or QR</td><td><input type=text name=close></td></tr> <tr><td>Quick spoiler</td><td><input type=text name=spoiler></td></tr> <tr><td>Open QR with post number inserted</td><td><input type=text name=openQR></td></tr> <tr><td>Open QR without post number inserted</td><td><input type=text name=openEmptyQR></td></tr> <tr><td>Submit post</td><td><input type=text name=submit></td></tr> <tr><td>Select next reply</td><td><input type=text name=nextReply ></td></tr> <tr><td>Select previous reply</td><td><input type=text name=previousReply></td></tr> <tr><td>See next thread</td><td><input type=text name=nextThread></td></tr> <tr><td>See previous thread</td><td><input type=text name=previousThread></td></tr> <tr><td>Jump to the next page</td><td><input type=text name=nextPage></td></tr> <tr><td>Jump to the previous page</td><td><input type=text name=previousPage></td></tr> <tr><td>Jump to page 0</td><td><input type=text name=zero></td></tr> <tr><td>Open thread in current tab</td><td><input type=text name=openThread></td></tr> <tr><td>Open thread in new tab</td><td><input type=text name=openThreadTab></td></tr> <tr><td>Expand thread</td><td><input type=text name=expandThread></td></tr> <tr><td>Watch thread</td><td><input type=text name=watch></td></tr> <tr><td>Hide thread</td><td><input type=text name=hide></td></tr> <tr><td>Expand selected image</td><td><input type=text name=expandImages></td></tr> <tr><td>Expand all images</td><td><input type=text name=expandAllImages></td></tr> <tr><td>Update now</td><td><input type=text name=update></td></tr> </tbody> </table> </div> </div> </div> ";
html = " <div class='reply dialog'> <div id=optionsbar> <div id=floaty> <a name=main>main</a> | <a name=flavors>sauce</a> | <a name=time>time</a> | <a name=keybinds>keybinds</a> </div> <div id=credits> <a href=http://chat.now.im/x/aeos>support throd</a> | <a href=https://github.com/aeosynth/4chan-x/issues>github</a> | <a href=http://userscripts.org/scripts/show/51412>uso</a> | <a href=https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=2DBVZBUAM4DHC&lc=US&item_name=Aeosynth&currency_code=USD&bn=PP%2dDonationsBF%3abtn_donate_LG%2egif%3aNonHosted>donate</a> </div> </div> <hr> <div id=content> <div id=main> </div> <textarea name=flavors id=flavors hidden>" + ($.config('flavors')) + "</textarea> <div id=time hidden> <div><input type=text name=time value='" + ($.config('time')) + "'> <span id=timePreview></span></div> <table> <caption>Format specifiers <a href=http://en.wikipedia.org/wiki/Date_%28Unix%29#Formatting>(source)</a></caption> <tbody> <tr><th>Specifier</th><th>Description</th><th>Values/Example</th></tr> <tr><td>%a</td><td>weekday, abbreviated</td><td>Sat</td></tr> <tr><td>%A</td><td>weekday, full</td><td>Saturday</td></tr> <tr><td>%b</td><td>month, abbreviated</td><td>Jun</td></tr> <tr><td>%B</td><td>month, full length</td><td>June</td></tr> <tr><td>%d</td><td>day of the month, zero padded</td><td>03</td></tr> <tr><td>%H</td><td>hour (24 hour clock) zero padded</td><td>13</td></tr> <tr><td>%I (uppercase i)</td><td>hour (12 hour clock) zero padded</td><td>02</td></tr> <tr><td>%m</td><td>month, zero padded</td><td>06</td></tr> <tr><td>%M</td><td>minutes, zero padded</td><td>54</td></tr> <tr><td>%p</td><td>upper case AM or PM</td><td>PM</td></tr> <tr><td>%P</td><td>lower case am or pm</td><td>pm</td></tr> <tr><td>%y</td><td>two digit year</td><td>00-99</td></tr> </tbody> </table> </div> <div id=keybinds hidden> <table> <tbody> <tr><th>Actions</th><th>Keybinds</th></tr> <tr><td>Close Options or QR</td><td><input type=text name=close></td></tr> <tr><td>Quick spoiler</td><td><input type=text name=spoiler></td></tr> <tr><td>Open QR with post number inserted</td><td><input type=text name=openQR></td></tr> <tr><td>Open QR without post number inserted</td><td><input type=text name=openEmptyQR></td></tr> <tr><td>Submit post</td><td><input type=text name=submit></td></tr> <tr><td>Select next reply</td><td><input type=text name=nextReply ></td></tr> <tr><td>Select previous reply</td><td><input type=text name=previousReply></td></tr> <tr><td>See next thread</td><td><input type=text name=nextThread></td></tr> <tr><td>See previous thread</td><td><input type=text name=previousThread></td></tr> <tr><td>Jump to the next page</td><td><input type=text name=nextPage></td></tr> <tr><td>Jump to the previous page</td><td><input type=text name=previousPage></td></tr> <tr><td>Jump to page 0</td><td><input type=text name=zero></td></tr> <tr><td>Open thread in current tab</td><td><input type=text name=openThread></td></tr> <tr><td>Open thread in new tab</td><td><input type=text name=openThreadTab></td></tr> <tr><td>Expand thread</td><td><input type=text name=expandThread></td></tr> <tr><td>Watch thread</td><td><input type=text name=watch></td></tr> <tr><td>Hide thread</td><td><input type=text name=hide></td></tr> <tr><td>Expand selected image</td><td><input type=text name=expandImages></td></tr> <tr><td>Expand all images</td><td><input type=text name=expandAllImages></td></tr> <tr><td>Update now</td><td><input type=text name=update></td></tr> </tbody> </table> </div> </div> </div> ";
dialog = $.el('div', {
id: 'options',
innerHTML: html
@ -1104,11 +1104,10 @@
$.bind(input, 'keydown', options.cb.keybind);
}
/*
https://bugzilla.mozilla.org/show_bug.cgi?id=579776
position:fixed and position:absolute shouldn't turn display:-moz-box into display:block
Two parent divs are necessary to center on all browsers.
to harmonize, position:fixed and display:-moz-box have to be set on different elements -
#overlay and #options, respectively.
Only one when Firefox and Opera will support flexboxes correctly.
https://bugzilla.mozilla.org/show_bug.cgi?id=579776
*/
overlay = $.el('div', {
id: 'overlay'
@ -1513,7 +1512,7 @@
}
},
toggle: function(thread) {
if (thread.className.indexOf('stub') !== -1 || thread.style.display === 'none') {
if (thread.className.indexOf('stub') !== -1 || thread.hidden) {
return threadHiding.show(thread);
} else {
return threadHiding.hide(thread);
@ -2559,14 +2558,14 @@
_results = [];
for (_i = 0, _len = thumbs.length; _i < _len; _i++) {
thumb = thumbs[_i];
_results.push(!thumb.style.display ? imgExpand.expand(thumb) : void 0);
_results.push(!thumb.hidden ? imgExpand.expand(thumb) : void 0);
}
return _results;
} else {
_results2 = [];
for (_j = 0, _len2 = thumbs.length; _j < _len2; _j++) {
thumb = thumbs[_j];
_results2.push(thumb.style.display ? imgExpand.contract(thumb) : void 0);
_results2.push(thumb.hidden ? imgExpand.contract(thumb) : void 0);
}
return _results2;
}
@ -2592,7 +2591,7 @@
toggle: function(a) {
var thumb;
thumb = a.firstChild;
if (thumb.style.display) {
if (thumb.hidden) {
return imgExpand.contract(thumb);
} else {
return imgExpand.expand(thumb);

View File

@ -235,9 +235,9 @@ $.extend $,
replace: (root, el) ->
root.parentNode.replaceChild el, root
hide: (el) ->
el.style.display = 'none'
el.hidden = true
show: (el) ->
el.style.display = ''
el.hidden = false
addClass: (el, className) ->
el.className += ' ' + className
removeClass: (el, className) ->
@ -717,7 +717,7 @@ nav =
threads: []
getThread: (full) ->
nav.threads = $$ 'div.thread:not([style])'
nav.threads = $$ 'div.thread:not([hidden])'
for thread, i in nav.threads
rect = thread.getBoundingClientRect()
{bottom} = rect
@ -795,8 +795,8 @@ options =
<div id=content>
<div id=main>
</div>
<textarea style='display: none;' name=flavors id=flavors>#{$.config 'flavors'}</textarea>
<div style='display: none;' id=time>
<textarea name=flavors id=flavors hidden>#{$.config 'flavors'}</textarea>
<div id=time hidden>
<div><input type=text name=time value='#{$.config 'time'}'> <span id=timePreview></span></div>
<table>
<caption>Format specifiers <a href=http://en.wikipedia.org/wiki/Date_%28Unix%29#Formatting>(source)</a></caption>
@ -817,7 +817,7 @@ options =
</tbody>
</table>
</div>
<div style='display: none;' id=keybinds>
<div id=keybinds hidden>
<table>
<tbody>
<tr><th>Actions</th><th>Keybinds</th></tr>
@ -876,11 +876,10 @@ options =
$.bind input, 'keydown', options.cb.keybind
###
https://bugzilla.mozilla.org/show_bug.cgi?id=579776
position:fixed and position:absolute shouldn't turn display:-moz-box into display:block
Two parent divs are necessary to center on all browsers.
to harmonize, position:fixed and display:-moz-box have to be set on different elements -
#overlay and #options, respectively.
Only one when Firefox and Opera will support flexboxes correctly.
https://bugzilla.mozilla.org/show_bug.cgi?id=579776
###
overlay = $.el 'div', id: 'overlay'
$.append overlay, dialog
@ -1222,7 +1221,7 @@ threadHiding =
threadHiding.show thread
toggle: (thread) ->
if thread.className.indexOf('stub') != -1 or thread.style.display is 'none'
if thread.className.indexOf('stub') != -1 or thread.hidden
threadHiding.show thread
else
threadHiding.hide thread
@ -1926,11 +1925,11 @@ imgExpand =
imgExpand.on = @checked
if imgExpand.on #expand
for thumb in thumbs
unless thumb.style.display #thumbnail hidden, image already expanded
unless thumb.hidden #thumbnail hidden, image already expanded
imgExpand.expand thumb
else #contract
for thumb in thumbs
if thumb.style.display #thumbnail hidden - unhide it
if thumb.hidden #thumbnail hidden - unhide it
imgExpand.contract thumb
typeChange: (e) ->
switch @value
@ -1946,7 +1945,7 @@ imgExpand =
toggle: (a) ->
thumb = a.firstChild
if thumb.style.display
if thumb.hidden
imgExpand.contract thumb
else
imgExpand.expand thumb