#javascript #html #css
#javascript #HTML #css
Вопрос:
Итак, я пытаюсь заставить скрипт отображать определенное количество черных квадратов css, когда в приглашении вводится число, я действительно понятия не имею, как подойти к этому вот мой код до сих пор
<!DOCTYPE html>
<html>
<head>
<style>
.square {
width: 100px;
height: 100px;
background-color: black;
}
</style>
<div class="square">
</div>
</head>
<body>
<script>
var msg = prompt('How Many squares?');
</script>
</body>
</html>
Я начал читать о циклах, так как подумал, что это может быть то, что мне нужно сделать. но я пока их не понимаю.
Комментарии:
1. Если вы еще не понимаете цикл, продолжайте изучать, так как он вам понадобится для решения этой проблемы
2. Так что, я думаю, я был на правильном пути, и это полезно знать, я буду продолжать изучать их.
Ответ №1:
let msg = parseInt(prompt('How Many squares?')); //need to convert the input to number as it's always a string
if(msg > 0){
let body = document.querySelector('body'); //selector for where you want the elements to go
let element = `
<div class="square"></div>
`; //html string
for (let i = 0; i < msg - 1; i ) { //I like starting loops from 0 so need to subtract 1 from msg
body.insertAdjacentHTML('afterBegin', element); //insert the html element inside the selector
}
}
Ответ №2:
const squre_container = document.getElementById('square-container');
var inp = parseInt(prompt('how many squres do you want', 5));
for(let i=0; i<inp; i ){
let sq = document.createElement('div');
sq.setAttribute('class', 'square');
squre_container.appendChild(sq);
}
.square {
width: 100px;
height: 100px;
background-color: black;
}
#square-container{
width: 100vw;
height: 100vh;
}
<div id='square-container'></div>
Я желаю, чтобы вы удалили этот вопрос, так как это касается конкретной проблемы программирования, а не обучающей гильдии. Без использования позиционирования, такого как grid
и flexbox
, код в конечном итоге склеивается. Этот пост не дает прямого ответа на ваш вопрос, но предоставляет высококачественный обучающий ресурс, нажмите на черный ящик, а затем на другие поля, чтобы посмотреть, что произойдет.
const available_container = document.getElementById('available-container');
const using_container = document.getElementById('using-container');
const switch_available = document.getElementById('available-panel-app');
let available_state = true;
let available_amount = 3;
let using_amount = 2;
available_gtc = Math.ceil(Math.sqrt(available_amount));
let frs = Array.from(Array(available_gtc), ()=>'1fr').join(' ');
available_container.style.gridTemplateColumns = frs;
available_container.style.gridTemplateRows = frs;
using_container.style.gridTemplateColumns = '1fr';
for (let i = 0; i < available_amount; i ){
let app = document.createElement('div');
app.setAttribute('class', 'available-app');
available_container.appendChild(app);
}
for (let i = 0; i < using_amount; i ){
let app = document.createElement('div');
app.setAttribute('class', 'using-app');
using_container.appendChild(app);
}
const available_apps = document.querySelectorAll('.available-app');
const using_apps = document.querySelectorAll('.using-app');
const random_color = () => '#' (Math.random() * 0xFFFFFF << 0).toString(16).padStart(6, '0');
function available_category(app){
app.addEventListener('click', ()=>{
if(available_state){return;}
app.classList.add('vanish');
setTimeout(()=>{
app.classList.remove('available-app');
app.classList.add('using-app');
using_container.appendChild(app);
app.classList.remove('vanish');
app.classList.add('matter');
setTimeout(()=>{
app.classList.remove('matter');
}, 1000);
}, 1000);
using_category(app);
});
}
function using_category(app){
app.addEventListener('click', ()=>{
if(available_state){return;}
app.classList.add('vanish');
setTimeout(()=>{
app.classList.remove('using-app');
app.classList.add('available-app');
available_container.appendChild(app);
app.classList.remove('vanish');
app.classList.add('matter');
setTimeout(()=>{
app.classList.remove('matter');
}, 1000);
}, 1000);
available_category(app);
});
}
// color
available_apps.forEach(app=>{
app.style.backgroundColor = random_color();
available_category(app);
});
using_apps.forEach(app=>{
app.style.backgroundColor = random_color();
using_category(app);
});
switch_available.addEventListener('click', ()=>{
if(available_state){
available_container.style.display = 'grid';
available_container.classList.add('matter');
setTimeout(()=>{
available_container.classList.remove('matter');
}, 1000);
}else{
available_container.classList.add('vanish');
setTimeout(()=>{
available_container.classList.remove('vanish');
available_container.style.display = 'none';
}, 1000);
}
available_state = !available_state;
});
#available-container{
position: fixed;
border: 1px solid;
width: calc(95vw - 100px);
height: 100vh;
}
#using-container{
position: fixed;
right: 0;
border: 1px solid;
width: 100px;
height: 100vh;
}
/*flexbox*/
#available-container{
display: none;
overflow: hidden;
}
#using-container{
display: grid;
overflow: hidden;
}
#available-panel-app{
background-color: black;
width: 5rem;
height: 5rem;
}
.available-app{
width: 8rem;
height: 8rem;
}
.using-app{
width: 5rem;
height: 5rem;
}
.vanish{
opacity: 0;
transition: opacity 1s;
animation: disappear 1s;
}
.matter{
opacity: 1;
transition: opacity 1s;
animation: appear 1s;
}
@keyframes appear{
0%{
transform: scale(.1);
opacity: 0;
border-radius: 100%;
}
100%{
transform: scale(1);
opacity: 1;
border-radius: 0;
}
}
@keyframes disappear{
0%{
transform: scale(1);
opacity: 1;
border-radius: 0;
}
100%{
transform: scale(.1);
opacity: 0;
border-radius: 100%;
}
}
<div id="available-container">
</div>
<div id='using-container'>
<div id='available-panel-app'></div>
</div>