#javascript #css
Вопрос:
я сделал игру в блэкджек , я хочу, чтобы карты дилера переворачивались задом наперед, все работает, ожидайте, что, когда появятся показанные карты, они будут располагаться одна под другой .. как я могу заставить их появиться в очереди ??
function TurnDealerCards()
{
DealerCards.innerHTML = "";
for (var i = 0; i < DealerArray.length; i ) {
var Dealercard = document.createElement('img');
var random = Math.floor((Math.random() * 10));
Dealercard.setAttribute("width", 50);
Dealercard.setAttribute("src", (allCards[random])[(DealerArray[i])]);
DealerCards.appendChild(Dealercard);
}
DealerCards.className = 'myDIV';
}
.myDIV {
display:inline-block;
border: 0px;
width: 50px;
background-color:transparent;
color: transparent;
animation: mymove 1s ;
}
@keyframes mymove {
50% {
transform: rotateY(180deg);
}
}
<table border="0" width="100%" height="100%" style="text-align: center">
<tr><th id="NewGame" onclick="MakeAnewGame();" style="float:left">
<img src="media/cards/new game.png" width="100" /><label>change table color</label><input id="changeBGC" type="button" onclick="changeBackground();">
</th></tr>
<tr><td style="height:100pt;width:100%;font-size:100pt;color:white"><div id="dealer"></div></td></tr>
Комментарии:
1. Вы устанавливаете
myDIV
класс на внешнемDealerCards
div, но CSS выглядит так, как будто вы хотите применить его вместо этого к каждому отдельномуDealercard
пользователю.2. если вы хотите установить
inline
внешний div, вы должны использоватьdisplay:flex
3. Можете ли вы предоставить некоторую разметку
4. спасибо лавни за дисплей дисплей:flex-встроенный работает, но он переворачивает все карты как 1 часть вместо того, чтобы переворачивать каждую карту
5. это очень, очень длинный код, это единственная часть, которая относится к листанию .. все еще хотите, чтобы я добавил ее?
Ответ №1:
Используйте display:flex
для переноса ( myDiv
) и используйте анимацию для каждого img
В js установите animation-delay
и увеличьте время один за другим
var DealerCards=document.getElementById("cards");
DealerCards.innerHTML = "";
var DealerArray=[1,1,1];
for (var i = 0; i < DealerArray.length; i ) {
var Dealercard = document.createElement('img');
var random = Math.floor((Math.random() * 10));
Dealercard.setAttribute("width", 50);
Dealercard.setAttribute("src","jj");
Dealercard.style.animationDelay=(i 0.5 ) 's';
DealerCards.appendChild(Dealercard);
}
DealerCards.className = 'myDIV';
.myDIV img{
border: 0px;
width: 50px;
animation: mymove 1s;
background-color:transparent;
color: transparent;
}
myDiv {
display:flex;
}
@keyframes mymove {
50% {
transform: rotateY(180deg);
}
}
<div id="cards"></div>
Комментарии:
1. не могли бы вы объяснить, пожалуйста?
2. да , это работает, но он переворачивает все фотографии сразу, а не одну за другой
3. имя класса вне цикла for отличается?, я изменил его и все равно переворачиваю все сразу
4. функция TurnDealerCards() { DealerCards.innerHTML = «»; для (var i = 0; i
5. он переворачивается горизонтально да , но я хотел, чтобы карты переворачивались одна за другой, а не все как 1 часть, похоже, что все карты имеют одинаковое изображение .. если нет способа это исправить, в любом случае большое вам спасибо :):)