-
-
Save stdclass/1175365 to your computer and use it in GitHub Desktop.
var blinkify = function( el, // DOM-Element | |
rate // Speed (Default: 500 ms) | |
){ | |
setInterval(function(){ // Interval | |
el.style.opacity ^= 1 // change the visibility | |
}, rate || 500 ); |
function(a,b){setInterval(function(){a.style.opacity^=1},b||500)} |
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE | |
Version 2, December 2004 | |
Copyright (C) 2011 YOUR_NAME_HERE <YOUR_URL_HERE> | |
Everyone is permitted to copy and distribute verbatim or modified | |
copies of this license document, and changing it is allowed as long | |
as the name is changed. | |
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE | |
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION | |
0. You just DO WHAT THE FUCK YOU WANT TO. |
{ | |
"name": "blinkify", | |
"description": "The Comeback of the Blink-Tag", | |
"keywords": [ | |
"blink", | |
"blinktag", | |
"retro" | |
] | |
} |
<!doctype html> | |
<html> | |
<head> | |
</head> | |
<body> | |
<b id="test">BLINKY</b><br /> | |
<b id="test2">BLINKY - fast</b> | |
<script> | |
var blinkify = function( el, rate ){ | |
setInterval(function(){ | |
el.style.opacity ^= 1 | |
}, rate || 500 ); | |
} | |
blinkify( document.getElementById( "test" ) ); | |
blinkify( document.getElementById( "test2" ), 100 ); | |
</script> | |
</body> | |
</html> |
reordered to save the !
:
function(a,b){setInterval(function(){b=a.style.visibility=b?"":"hidden"},b||500)}
(81 bytes)
Subzey, jed: that was one sweet move.
Sacrificing a little more backward compatibility we can reach 70 bytes:
function(a,b){setInterval(function(){b=a.style.opacity=b?0:1},b||500)}
well, if you're gonna go down that road...
function(a,b){setInterval(function(){b=a.style.opacity=+!b},b||500)}
(68 bytes)
or for that matter:
function d(a,b,c){c=a.style.opacity=+!c;setTimeout(d,b||500,a,b,c)}
(67 bytes)
or even:
function d(a,b,c){setTimeout(d,b||500,a,b,a.style.opacity=+!c)}
(63 bytes, assuming you're okay with losing old browsers)
Interesting.
Supporting the current and previous version of each major browser would be nice. No ?
IE8, does not support setTimeout(function,delay,arg1,arg2,...)
, so... 68 ?
i'm happy with 68 (unless we want to dial down the default to 99
for 67).
Oh dear, it's amazing.
And finally i make bitwise trick useful.
function(a,b){setInterval(function(){a.style.opacity^=1},b||500)}
(65 bytes)
whoa, nice! i think that's the first useful XOR assignment i've ever seen here.
I think that's it. There's not much code left to optimize here.
Sorry for the b=...=b?0:1
in my previous comment. That was lazy. It was obvious there was room for improvements.
Thanks to @atk we can go further and exploit the falsiness of empty string:
(82 bytes)