我的代码在Chrome中不起作用,但在JSFiddle中工作正常

时间:2017-10-21 11:46:40

标签: javascript html css

所以我遇到了问题。我在网上发现了一个旋转木马的代码,我认为这个代码很好。我试图将其复制到新的html,css和js文件中,以便打开文件,但是即使它在JSFiddle和Codepin中工作正常,旋转木马也无法在Chrome中运行。

它表示代码($(document).keydown(function(e){is)未被捕获ReferenceError:$未定义。

提前感谢您的帮助!

function moveToSelected(element) {

  if (element == "next") {
    var selected = $(".selected").next();
  } else if (element == "prev") {
    var selected = $(".selected").prev();
  } else {
    var selected = element;
  }

  var next = $(selected).next();
  var prev = $(selected).prev();
  var prevSecond = $(prev).prev();
  var nextSecond = $(next).next();

  $(selected).removeClass().addClass("selected");

  $(prev).removeClass().addClass("prev");
  $(next).removeClass().addClass("next");

  $(nextSecond).removeClass().addClass("nextRightSecond");
  $(prevSecond).removeClass().addClass("prevLeftSecond");

  $(nextSecond).nextAll().removeClass().addClass('hideRight');
  $(prevSecond).prevAll().removeClass().addClass('hideLeft');

}

// Eventos teclado
$(document).keydown(function(e) {
    switch(e.which) {
        case 37: // left
        moveToSelected('prev');
        break;

        case 39: // right
        moveToSelected('next');
        break;

        default: return;
    }
    e.preventDefault();
});

$('#carousel div').click(function() {
  moveToSelected($(this));
});

$('#prev').click(function() {
  moveToSelected('prev');
});

$('#next').click(function() {
  moveToSelected('next');
});
html, body, main {
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
}

#carousel {
  position: relative;
  height: 400px;
  top: 50%;
  transform: translateY(-50%);
  overflow: hidden;
}
#carousel div {
  position: absolute;
  transition: transform 1s, left 1s, opacity 1s, z-index 0s;
  opacity: 1;
}
#carousel div img {
  width: 400px;
  transition: width 1s;
}
#carousel div.hideLeft {
  left: 0%;
  opacity: 0;
  transform: translateY(50%) translateX(-50%);
}
#carousel div.hideLeft img {
  width: 200px;
}
#carousel div.hideRight {
  left: 100%;
  opacity: 0;
  transform: translateY(50%) translateX(-50%);
}
#carousel div.hideRight img {
  width: 200px;
}
#carousel div.prev {
  z-index: 5;
  left: 30%;
  transform: translateY(50px) translateX(-50%);
}
#carousel div.prev img {
  width: 300px;
}
#carousel div.prevLeftSecond {
  z-index: 4;
  left: 15%;
  transform: translateY(50%) translateX(-50%);
  opacity: 0.7;
}
#carousel div.prevLeftSecond img {
  width: 200px;
}
#carousel div.selected {
  z-index: 10;
  left: 50%;
  transform: translateY(0px) translateX(-50%);
}
#carousel div.next {
  z-index: 5;
  left: 70%;
  transform: translateY(50px) translateX(-50%);
}
#carousel div.next img {
  width: 300px;
}
#carousel div.nextRightSecond {
  z-index: 4;
  left: 85%;
  transform: translateY(50%) translateX(-50%);
  opacity: 0.7;
}
#carousel div.nextRightSecond img {
  width: 200px;
}

.buttons {
  position: fixed;
  left: 50%;
  transform: translateX(-50%);
  bottom: 10px;
}
<script src="https://code.jquery.com/jquery-2.2.4.min.js"></script>
<main>
<link rel="stylesheet" href="Carousel.css">
<script src="Carousel.js"></script>

    <div id="carousel">

       <div class="hideLeft">
        <img src="https://s16.postimg.org/vklrwoxtx/cover9.jpg">
      </div>

      <div class="prevLeftSecond">
        <img src="https://s16.postimg.org/cgsggckzp/cover8.jpg">
      </div>

      <div class="prev">
        <img src="https://s16.postimg.org/emmrauog5/cover7.jpg">
      </div>

      <div class="selected">
        <img src="https://s16.postimg.org/9drqcz611/cover1.jpg">
      </div>

      <div class="next">
        <img src="https://s16.postimg.org/pnhwfvgp1/cover6.jpg">
      </div>

      <div class="nextRightSecond">
        <img src="
https://s16.postimg.org/edp6kxbnp/cover4.jpg">
      </div>

      <div class="hideRight">
        <img src="https://s16.postimg.org/fij8qay4l/cover3.jpg">
      </div>

    </div>

    <div class="buttons">
      <button id="prev">Prev</button>
      <button id="next">Next</button>
    </div>

  </main>

1 个答案:

答案 0 :(得分:0)

在运行JS之前,您应该等待document ready事件。

$(document).ready(function () {
 //your code here
});