Skip to content

Commit de5f109

Browse files
author
linyisonger
committed
增加复制逻辑
1 parent e6b8516 commit de5f109

File tree

1 file changed

+100
-27
lines changed

1 file changed

+100
-27
lines changed

107.双色球机选.html

Lines changed: 100 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -43,52 +43,125 @@
4343
font-size: 20px;
4444
font-weight: bold;
4545
}
46+
47+
.op-btns {
48+
margin-top: 20px;
49+
display: flex;
50+
}
51+
52+
.again-btn {
53+
display: inline-block;
54+
padding: 10px 40px;
55+
background-color: #3575cf;
56+
color: azure;
57+
border-radius: 50px;
58+
cursor: pointer;
59+
user-select: none;
60+
}
61+
62+
.copy-btn {
63+
display: inline-block;
64+
padding: 10px 40px;
65+
background-color: #42cf35;
66+
color: azure;
67+
border-radius: 50px;
68+
cursor: pointer;
69+
user-select: none;
70+
margin-left: 10px;
71+
}
4672
</style>
4773
</head>
4874

4975
<body>
5076
<div class="union-lotto">
5177
</div>
52-
78+
<div class="op-btns">
79+
<div class="again-btn">再来一次</div>
80+
<div class="copy-btn">复制号码</div>
81+
</div>
5382

5483

5584
<script type="module">
5685
let unionLottoDOM = document.querySelector('.union-lotto')
57-
86+
let againBtnDOM = document.querySelector(".again-btn")
87+
let copyBtnDOM = document.querySelector(".copy-btn")
5888
import { Randoms } from "https://gcore.jsdelivr.net/npm/@3r/tool/lib/randoms.js";
5989

60-
for (let i = 0; i < 5; i++) {
61-
const groupItemDOM = document.createElement('div')
62-
groupItemDOM.classList.add('group-item')
63-
let redDict = {}
64-
let redList = []
65-
66-
for (let j = 0; j < 6; j++) {
67-
let redNum = Randoms.int(1, 34)
68-
if (redDict[redNum]) {
69-
j--;
70-
continue;
90+
/**
91+
* 复制到剪贴板
92+
*/
93+
function copyToClipboard(value) {
94+
let input =
95+
document.querySelector(".copy-input") ||
96+
document.createElement("textarea");
97+
input.className = "copy-input";
98+
input.value = value;
99+
input.style = `position: fixed;top: -100%;`;
100+
document.body.append(input);
101+
input.select();
102+
document.execCommand("copy");
103+
}
104+
105+
function random5group() {
106+
unionLottoDOM.innerHTML = ''
107+
for (let i = 0; i < 5; i++) {
108+
const groupItemDOM = document.createElement('div')
109+
groupItemDOM.classList.add('group-item')
110+
let redDict = {}
111+
let redList = []
112+
113+
for (let j = 0; j < 6; j++) {
114+
let redNum = Randoms.int(1, 34)
115+
if (redDict[redNum]) {
116+
j--;
117+
continue;
118+
}
119+
redDict[redNum] = true;
120+
redList.push(redNum)
71121
}
72-
redDict[redNum] = true;
73-
redList.push(redNum)
122+
123+
let blueNum = Randoms.int(1, 17)
124+
redList.sort((a, b) => a - b)
125+
redList.forEach(red => {
126+
const redBallDOM = document.createElement('div')
127+
redBallDOM.classList.add('red-ball')
128+
redBallDOM.textContent = String(red).padStart(2, '0')
129+
groupItemDOM.appendChild(redBallDOM)
130+
})
131+
132+
const blueBallDOM = document.createElement('div')
133+
blueBallDOM.classList.add('blue-ball')
134+
blueBallDOM.textContent = String(blueNum).padStart(2, '0')
135+
groupItemDOM.appendChild(blueBallDOM)
136+
unionLottoDOM.appendChild(groupItemDOM)
74137
}
75138

76-
let blueNum = Randoms.int(1, 17)
77-
redList.sort((a, b) => a - b)
78-
redList.forEach(red => {
79-
const redBallDOM = document.createElement('div')
80-
redBallDOM.classList.add('red-ball')
81-
redBallDOM.textContent = red
82-
groupItemDOM.appendChild(redBallDOM)
139+
}
140+
141+
function copy5group() {
142+
let str = `双色球`
143+
let groupItemDOM = document.querySelectorAll('.group-item')
144+
groupItemDOM.forEach((item) => {
145+
let redBallDOM = item.querySelectorAll('.red-ball')
146+
let blueBallDOM = item.querySelectorAll('.blue-ball')
147+
str += '\n'
148+
149+
let redBall = []
150+
let blueBall = []
151+
redBallDOM.forEach(item => redBall.push(item.textContent))
152+
blueBallDOM.forEach(item => blueBall.push(item.textContent))
153+
154+
str += redBall.join('、') + ' + ' + blueBall.join('、')
83155
})
84156

85-
const blueBallDOM = document.createElement('div')
86-
blueBallDOM.classList.add('blue-ball')
87-
blueBallDOM.textContent = blueNum
88-
groupItemDOM.appendChild(blueBallDOM)
89-
unionLottoDOM.appendChild(groupItemDOM)
157+
copyToClipboard(str)
90158
}
91159

160+
random5group()
161+
162+
163+
againBtnDOM.addEventListener('click', random5group)
164+
copyBtnDOM.addEventListener('click', copy5group)
92165
</script>
93166

94167

0 commit comments

Comments
 (0)