我在试着创造一台老虎机.但在css方面有一个问题. 我在使用1个时隙频带时没有看到这个问题,但当我try 使用3个时隙频带时,我就遇到了这个问题.
它也在旋转,同时有一个槽带.我try 了很多方法来解决这个对齐问题,但都解决不了.
对齐问题:
当我有1个时隙频段时,此为:
我的代码:
var degree1;
degree1 = '505deg';
var root = document.querySelector(':root');
root.style.setProperty('--slot1Rotate',degree1);
var panes = document.querySelectorAll(".slot_item"),
paneSize = 100,
zDepth = paneSize / (2 * Math.tan(Math.PI/panes.length));
for (let index = 0; index < panes.length; index++) {
var xAngle = 360 / panes.length * index;
panes[index].style.transform= "rotateX("+ xAngle +"deg) translateZ("+ zDepth +"px)";
}
var machine = document.querySelectorAll('.slot-machine');
var spinBtn = document.querySelector('#spinBtn');
for(let i=0;i<machine.length;i++){
spinBtn.addEventListener('click',function(){
machine[i].classList.add('animation');
});
machine[i].addEventListener('animationend',function() {
machine[i].style.transform = 'rotateX('+degree1+')';
})
}
:root{
--slot1Rotate: 0;
}
html, body {
height: 100%;
perspective: 600;
background-color: #282a3a;
}
.machine{
top: 25em;
display: flex;
gap: 10px;
align-items: center;
justify-content: center;
position: relative;
}
.slots{
display: flex;
gap: 10px;
justify-content: center;
align-items: center;
}
.slot1{
}
.slot2{
}
.slot3{
}
.slot-machine{
width: 120px;
height: 120px;
list-style: none;
padding: 0;
position:relative;
transform-style: preserve-3d;
}
.animation{
animation-name: x-spin;
animation-duration: 5s;
transition-duration: 3s;
transition-delay: 1s;
}
.slot_item {
height: 100px;
position: absolute;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
text-align: center;
width: 100%;
background: rgba(255, 255, 255, 0.832);
backface-visibility: hidden;
}
<div class="machine">
<div class="slots">
<ul class="slot-machine slot1">
<li class="slot_item">1</li>
<li class="slot_item">2</li>
<li class="slot_item">3</li>
<li class="slot_item">4</li>
<li class="slot_item">5</li>
<li class="slot_item">6</li>
<li class="slot_item">7</li>
<li class="slot_item">8</li>
<li class="slot_item">9</li>
<li class="slot_item">10</li>
</ul>
<ul class="slot-machine slot2">
<li class="slot_item">1</li>
<li class="slot_item">2</li>
<li class="slot_item">3</li>
<li class="slot_item">4</li>
<li class="slot_item">5</li>
<li class="slot_item">6</li>
<li class="slot_item">7</li>
<li class="slot_item">8</li>
<li class="slot_item">9</li>
<li class="slot_item">10</li>
</ul>
<ul class="slot-machine slot3">
<li class="slot_item">1</li>
<li class="slot_item">2</li>
<li class="slot_item">3</li>
<li class="slot_item">4</li>
<li class="slot_item">5</li>
<li class="slot_item">6</li>
<li class="slot_item">7</li>
<li class="slot_item">8</li>
<li class="slot_item">9</li>
<li class="slot_item">10</li>
</ul>
</div>
<button id="spinBtn">Spin</button>
</div>