Skip welcome & menu and move to editor
Welcome to JS Bin
Load cached copy from
 
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
  <link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet" type="text/css" />
  <title>JS Bin</title>
</head>
<body>
  <i class="fa fa-angle-left" id="arrow-left"></i>
  <span id="options">
    <span value="foo">Foo</span>
    <span value="bar">Bar</span>
    <span value="baz">Baz</span>
  </span>
  <i class="fa fa-angle-right" id="arrow-right"></i>
  
  
  <input type="hidden" name="opts" value="foo" id="input">
</body>
</html>
 
var selected = 0
var opts = document.getElementById('options').children
var input = document.getElementById('input')
var l = document.getElementById('arrow-left')
var r = document.getElementById('arrow-right')
// on n'affiche que le premier, on cache les autres
for (var i = 0; i < opts.length; i++) {
  if (i !== 0) opts[i].style.display = 'none'
}
// on màj l'input au chargement de la page
updateInput()
// modifie la valeur affiché
function show(index) {
  // on cache l'ancienne valeur
  opts[selected].style.display = 'none'
  // on affiche la nouvelle
  opts[index].style.display = 'inline-block'
  // on selectionne la nouvelle
  selected = index
}
// màj l'input
function updateInput() {
  input.setAttribute('value', opts[selected].getAttribute('value'))
}
// quand on clique pour aller à gauche
l.addEventListener('click', function() {
  // si on est au premier el, on passe au dernier
  if (selected === 0) show(opts.length - 1)
  // sinon, on prend l'el précedent
  else show(selected - 1)
})
// pareil pour la droite
r.addEventListener('click', function() {
  // si on est au dernier el, on passe au premier
  if (selected === opts.length - 1) show(0)
  // sinon, on prend l'el suivant
  else show(selected + 1)
})
// on màj l'input quand on clique gauche ou droite
l.addEventListener('click', updateIndex)
r.addEventListener('click', updateIndex)
Output

This bin was created anonymously and its free preview time has expired (learn why). — Get a free unrestricted account

Dismiss x
public
Bin info
anonymouspro
0viewers