progress rendering playing cards: stock display working
This commit is contained in:
parent
63e2fe4a49
commit
44b8065cbe
3 changed files with 70 additions and 11 deletions
11
index.html
11
index.html
|
@ -92,11 +92,12 @@
|
||||||
></textarea>
|
></textarea>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="playingCardsDisplay" class="playingCards">
|
<div id="playingCardsStock" class="playingCards">
|
||||||
<span class="card rank-2 diams">
|
<ul class="hand">
|
||||||
<span class="rank">2</span>
|
<template x-for="(card, index) in $store.global.cardsToSolve.slice(52-24)">
|
||||||
<span class="suit">♦</span>
|
<li x-html="cardHtml(card, index)"></li>
|
||||||
</span>
|
</template>
|
||||||
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
43
main.js
43
main.js
|
@ -4,11 +4,50 @@ import Alpine from "alpinejs";
|
||||||
// import 'bootstrap/dist/js/bootstrap'
|
// import 'bootstrap/dist/js/bootstrap'
|
||||||
|
|
||||||
Alpine.store('global', {
|
Alpine.store('global', {
|
||||||
cardsToSolve: []
|
cardsToSolve: Array(52).fill(0)
|
||||||
})
|
})
|
||||||
|
|
||||||
Alpine.data("playingCardsPreview", () => ({
|
Alpine.data("playingCardsPreview", () => ({
|
||||||
testing: true
|
rankText: {
|
||||||
|
'A': 'Ace',
|
||||||
|
'2': 'Two',
|
||||||
|
'3': 'Three',
|
||||||
|
'4': 'Four',
|
||||||
|
'5': 'Five',
|
||||||
|
'6': 'Six',
|
||||||
|
'7': 'Seven',
|
||||||
|
'8': 'Eight',
|
||||||
|
'9': 'Nine',
|
||||||
|
'T': 'Ten',
|
||||||
|
'J': 'Jack',
|
||||||
|
'Q': 'Queen',
|
||||||
|
'K': 'King'
|
||||||
|
},
|
||||||
|
suitText: {
|
||||||
|
'C': 'Clubs',
|
||||||
|
'D': 'Diamonds',
|
||||||
|
'H': 'Hearts',
|
||||||
|
'S': 'Spades'
|
||||||
|
},
|
||||||
|
rankSlug(rank) {
|
||||||
|
return `rank-${rank === 'T' ? '10' : rank}`
|
||||||
|
},
|
||||||
|
suitSlug: {
|
||||||
|
'C': 'clubs',
|
||||||
|
'D': 'diams',
|
||||||
|
'H': 'hearts',
|
||||||
|
'S': 'spades'
|
||||||
|
},
|
||||||
|
cardHtml(card, index) {
|
||||||
|
if (card === '0' || card === 0) {
|
||||||
|
return `<abbr title="Unknown" class="card" style="z-index:${this.stockCard(index)};"></abbr>`
|
||||||
|
} else {
|
||||||
|
return `<abbr title="${this.rankText[card[0]]} of ${this.suitText[card[1]]}" class="card ${this.rankSlug(card[0])} ${this.suitSlug[card[1]]}" style="z-index:${this.stockCard(index)};"><abbr class="rank" aria-hidden="true">${card[0]}</abbr><abbr class="suit" aria-hidden="true">&${this.suitSlug[card[1]]};</abbr><abbr class="suit-b" aria-hidden="true">&${this.suitSlug[card[1]]};</abbr><abbr class="rank-b" aria-hidden="true">${card[0]}</abbr></abbr>`
|
||||||
|
}
|
||||||
|
},
|
||||||
|
stockCard(index) {
|
||||||
|
return 500 - (10 * index)
|
||||||
|
}
|
||||||
}));
|
}));
|
||||||
|
|
||||||
Alpine.data("cardsInputForm", () => ({
|
Alpine.data("cardsInputForm", () => ({
|
||||||
|
|
25
style.scss
25
style.scss
|
@ -1,12 +1,31 @@
|
||||||
@import "../node_modules/bootstrap/scss/bootstrap";
|
@import "../node_modules/bootstrap/scss/bootstrap";
|
||||||
|
|
||||||
|
abbr[title] {
|
||||||
|
border-bottom: none !important;
|
||||||
|
cursor: inherit !important;
|
||||||
|
text-decoration: none !important;
|
||||||
|
}
|
||||||
|
|
||||||
.playingCards {
|
.playingCards {
|
||||||
.card {
|
.card {
|
||||||
box-shadow: .1em .1em .3em #999 !important;
|
box-shadow: .05em .05em .1em #888 !important;
|
||||||
|
border-color: #aaa !important;
|
||||||
|
border-radius: 0.2em !important;
|
||||||
.suit {
|
.suit {
|
||||||
&::after {
|
&::after {
|
||||||
line-height: .8 !important;
|
margin-top: -.9em !important;
|
||||||
}
|
font-size: 0.9em !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.suit-b {
|
||||||
|
position: absolute;
|
||||||
|
right: 4px;
|
||||||
|
bottom: 18px;
|
||||||
|
}
|
||||||
|
.rank-b {
|
||||||
|
position: absolute;
|
||||||
|
right: 4px;
|
||||||
|
bottom: -1px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
Loading…
Reference in a new issue