私は、このjsを3Dカルーセルに使用しています。そして、現在のスライドにアクティブなクラスを割り当てるとき、私は不安定です。以下は私の最近の試みです。私は他のアプローチと最も近いと思う。私は必要であれば私に知らせてください、私はそれが関連性があると思っていないので、私はCSSを含むdidnt。 https://jsfiddle.net/ubxvyh5j/6/現在のスライドにアクティブなクラスを追加します。3次元カルーセル
var carousel = $(".carousel"),
currdeg = 0;
$(".next").on("click", {d: "n"}, rotate);
$(".prev").on("click", {d: "p"}, rotate);
function rotate(e) {
if (e.data.d == "n") {
currdeg = currdeg - 120;
}
if (e.data.d == "p") {
currdeg = currdeg + 120;
}
carousel.css({
"-webkit-transform": "rotateY(" + currdeg + "deg)",
"-moz-transform": "rotateY(" + currdeg + "deg)",
"-o-transform": "rotateY(" + currdeg + "deg)",
"transform": "rotateY(" + currdeg + "deg)"
});
$(this('.item')).addClass('active'); // this is what is not working
}
Htmlの
<div class="carousel">
<div class="item a">A</div>
<div class="item b">B</div>
<div class="item c">C</div>
</div>
<div class="next">Next</div>
<div class="prev">Prev</div>
CSS
.carousel {
height: 100%;
width: 100%;
position: absolute;
transform-style: preserve-3d;
transition: transform 1s;
}
.item {
display: block;
position: absolute;
background: #000;
width: 250px;
height: 200px;
line-height: 200px;
font-size: 5em;
text-align: center;
color: #FFF;
opacity: 0.95;
border-radius: 10px;
}
.a {
transform: rotateY(0deg) translateZ(250px);
background: #ed1c24;
}
.b {
transform: rotateY(120deg) translateZ(250px);
background: #0072bc;
}
.c {
transform: rotateY(240deg) translateZ(250px);
background: #39b54a;
}
.next, .prev {
color: #444;
position: absolute;
top: 100px;
padding: 1em 2em;
cursor: pointer;
background: #CCC;
border-radius: 5px;
border-top: 1px solid #FFF;
box-shadow: 0 5px 0 #999;
transition: box-shadow 0.1s, top 0.1s;
}
はそれが@Cuzi、CSS – Cuzi
はるかに容易になり、CSSを追加してください見ることができます追加しました –
私は[Jsfiddle](https://jsfiddle.net/ubxvyh5j/4/)を作成しました。どの項目が '.active'クラスを取得すべきか、どのシナリオで? – Cuzi