JavaScript
- 6 ответов
- 0 вопросов
1
Вклад в тег
<div class="container">
<div class="trigger">Наведи на меня</div>
<div class="target">Я изменюсь</div>
</div>
.trigger {
padding: 10px;
background-color: lightblue;
cursor: pointer;
transition: background-color 0.3s ease;
}
.target {
padding: 10px;
background-color: lightcoral;
transition: background-color 0.3s ease;
}
.container:has(.trigger:hover) .target {
background-color: lightgreen;
}
a = [2160 1140 130 70];
b = [-105 -107 0 2];
W = zpk([], [], a) / zpk([], [], b);
disp(W);
function visitLinksSequentially(links) {
let index = 0;
function waitForPageLoad(newTab, callback) {
// ждем полную загрузку
newTab.addEventListener('load', function onLoad() {
newTab.removeEventListener('load', onLoad);
callback();
});
}
function extractData(newTab, callback) {
// логика для извлечения данных
const extractedData = newTab.document.querySelectorAll('SELECTOR_YOUR_DATA');
console.log('Извлечённые данные:', extractedData);
callback();
}
function visitNextLink() {
if (index < links.length) {
const link = links[index];
index++;
const newTab = window.open(); // открыли новую вкладку
newTab.location.href = link;
waitForPageLoad(newTab, () => {
setTimeout(() => {
extractData(newTab, () => {
newTab.close(); // закрыли
visitNextLink(); // пошли дальше
});
}, 1000);
});
} else {
console.log('Good job bro!');
}
}
visitNextLink();
}
<div class="wrap_item" data-section="1">
<h3 class="title_heading">Секция №1</h3>
<div class="wrap_elements">
<div class="class_element">Элемент 1</div>
<div class="class_element">Элемент 2</div>
<div class="class_element">Элемент 3</div>
<div class="class_element">Элемент 4</div>
<div class="class_element">Элемент 5</div>
</div>
<div class="pagination"></div>
</div>
<div class="wrap_item" data-section="2">
<h3 class="title_heading">Секция №2</h3>
<div class="wrap_elements">
<div class="class_element">Элемент A</div>
<div class="class_element">Элемент B</div>
<div class="class_element">Элемент C</div>
<div class="class_element">Элемент D</div>
<div class="class_element">Элемент E</div>
</div>
<div class="pagination"></div>
</div>
<div class="wrap_item" data-section="3">
<h3 class="title_heading">Секция №3</h3>
<div class="wrap_elements">
<div class="class_element">Элемент α</div>
<div class="class_element">Элемент β</div>
<div class="class_element">Элемент γ</div>
<div class="class_element">Элемент δ</div>
<div class="class_element">Элемент ε</div>
</div>
<div class="pagination"></div>
</div>
document.addEventListener('DOMContentLoaded', () => {
const itemsPerPage = 2;
document.querySelectorAll('.wrap_item').forEach((section) => {
const wrapElements = section.querySelector('.wrap_elements');
const elements = Array.from(wrapElements.children);
const paginationContainer = section.querySelector('.pagination');
const totalPages = Math.ceil(elements.length / itemsPerPage);
function showPage(page) {
elements.forEach((el, index) => {
el.style.display =
index >= (page - 1) * itemsPerPage && index < page * itemsPerPage
? ''
: 'none';
});
}
function createPagination() {
paginationContainer.innerHTML = ''; // очистили контейнер пагинации
for (let i = 1; i <= totalPages; i++) {
const button = document.createElement('button');
button.textContent = i;
button.addEventListener('click', () => {
showPage(i);
updateActiveButton(i);
});
paginationContainer.appendChild(button);
}
updateActiveButton(1);
}
function updateActiveButton(activePage) {
paginationContainer.querySelectorAll('button').forEach((btn, index) => {
btn.classList.toggle('active', index + 1 === activePage);
});
}
showPage(1);
createPagination();
});
});
.wrap_elements {
display: flex;
flex-wrap: wrap;
gap: 10px;
}
.class_element {
padding: 10px;
border: 1px solid #ccc;
background: #f5f5f5;
}
.pagination button {
margin: 0 5px;
padding: 5px 10px;
border: none;
background: #ddd;
cursor: pointer;
}
.pagination button.active {
background: #ff6f61;
color: #fff;
}