<html>
<head>
<script src="//code.jquery.com/jquery-1.9.1.min.js"></script>
<meta charset="utf-8">
<title>JS Bin</title>
</head>
<body>
<div class="feature">
<div class="ei-slider-large">
<img src="" alt="1"/>
<img src="" alt="2"/>
<img src="" alt="3"/>
</div>
<ul class="ei-slider-nav">
<li><a href="#">Slide 0</a></li>
<li><a href="#">Slide 1</a></li>
<li><a href="#">Slide 2</a></li>
</ul>
<div class="ei-slider-current">
<h4>Current slide number: <span id="currentSlide">0</span></h4>
</div>
</div>
</body>
</html>
var eiSlider = {
currentSlideIndex: 0,
nextSlide: null, // we will define this later
autoPlay: null, // we will define this later too
advanceSlide: null // ditto
};
eiSlider.nextSlide = function() {
var currentSlideIndex = eiSlider.currentSlideIndex,
nextSlideIndex = currentSlideIndex + 1,
slideLink = null,
totalSlides = $('.ei-slider-large img').length;
console.log('totalSlides', totalSlides);
// If we are already at the end of the images, loop back to the beginning
if ( nextSlideIndex > totalSlides - 1 ) {
nextSlideIndex = 0;
}
console.log(nextSlideIndex);
// Move forward to the next slide
slideLink = $('.feature .ei-slider-nav li:eq(' + nextSlideIndex + ') a');
eiSlider.advanceSlide(slideLink);
};
eiSlider.advanceSlide = function(item) {
var thisLink = $(item),
navIndex = thisLink.parent('li').index();
if( !$('.feature .ei-slider-nav li:eq('+navIndex+')').hasClass('active')) {
thisLink.closest('li').siblings().removeClass('active');
thisLink.closest('li').addClass('active');
// Set the currentSlide index on the global eiSlider tracking object
eiSlider.currentSlideIndex = navIndex;
$('.ei-slider-current #currentSlide').text(eiSlider.currentSlideIndex);
}
};
$('.feature .ei-slider-nav li a').click( function(e) {
e.preventDefault();
if ( eiSlider.autoPlay ) {
window.clearInterval(eiSlider.autoPlay);
}
eiSlider.advanceSlide(this);
});
eiSlider.autoPlay = window.setInterval(function(){
eiSlider.nextSlide();
}, 1000);
Output
300px
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. |