<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
</head>
<body>
<button id='fadeOut'>淡出</button>
<button id='fadeIn'>淡入</button><br>
<img id="image" src="https://openhome.cc/Gossip/images/caterpillar_small.jpg">
<script type="text/javascript">
function style(elem, prop) {
return window.getComputedStyle(elem, null)[prop];
}
// value 未指定時,用來取得不透明度
function opacity(elem, value) {
if(value === undefined) {
let opt = style(elem, 'opacity');
return opt === '' ? 1 : parseFloat(opt);
} else {
elem.style.opacity = value;
}
}
// speed 是淡入總時間,step 是動畫數
function fadeIn(elem, speed = 5000, steps = 10) {
let targetValue = elem.previousOpacity || 1;
delete elem.previousOpacity;
let timeInterval = speed / steps;
let valueStep = targetValue / steps;
let opt = 0;
setTimeout(function next() {
opt += valueStep;
if(opt < targetValue) {
opacity(elem, opt);
setTimeout(next, timeInterval);
}
else {
opacity(elem, targetValue);
}
}, timeInterval);
}
function fadeOut(elem, speed = 5000, steps = 10) {
elem.previousOpacity = opacity(elem);
let timeInterval = speed / steps;
let valueStep = elem.previousOpacity / steps;
let opt = elem.previousOpacity;
setTimeout(function next() {
opt -= valueStep;
if(opt > 0) {
opacity(elem, opt);
setTimeout(next, timeInterval);
}
else {
opacity(elem, 0);
}
}, timeInterval);
}
let image = document.getElementById('image');
document.getElementById('fadeIn').onclick = function() {
fadeIn(image, 2000);
};
document.getElementById('fadeOut').onclick = function() {
fadeOut(image, 2000);
};
</script>
</body>
</html>
Output
You can jump to the latest bin by adding /latest
to your URL
Keyboard Shortcuts
Shortcut | Action |
---|---|
ctrl + [num] | Toggle nth panel |
ctrl + 0 | Close focused panel |
ctrl + enter | Re-render output. If console visible: run JS in console |
Ctrl + l | Clear the console |
ctrl + / | Toggle comment on selected lines |
ctrl + ] | Indents selected lines |
ctrl + [ | Unindents selected lines |
tab | Code complete & Emmet expand |
ctrl + shift + L | Beautify code in active panel |
ctrl + s | Save & lock current Bin from further changes |
ctrl + shift + s | Open the share options |
ctrl + y | Archive Bin |
Complete list of JS Bin shortcuts |
JS Bin URLs
URL | Action |
---|---|
/ | Show the full rendered output. This content will update in real time as it's updated from the /edit url. |
/edit | Edit the current bin |
/watch | Follow a Code Casting session |
/embed | Create an embeddable version of the bin |
/latest | Load the very latest bin (/latest goes in place of the revision) |
/[username]/last | View the last edited bin for this user |
/[username]/last/edit | Edit the last edited bin for this user |
/[username]/last/watch | Follow the Code Casting session for the latest bin for this user |
/quiet | Remove analytics and edit button from rendered output |
.js | Load only the JavaScript for a bin |
.css | Load only the CSS for a bin |
Except for username prefixed urls, the url may start with http://jsbin.com/abc and the url fragments can be added to the url to view it differently. |