function showThumbnail($img, href, title) {
$img.attr('src', href);
$img.attr('alt', title);
}
$(".gallery__list").each(function($gallery){
let $largeImg = $gallery.find('.galleru__item-prem');
$gallery.mouseover(function(event){
let thumbnail = event.target.closest('.galleru__item');
if (!thumbnail) return;
showThumbnail($largeImg, thumbnail.href, thumbnail.title);
});
});
function showThumbnail(img, href, title) {
img.src = href;
img.alt = title;
}
document.querySelectorAll('.gallery__list').forEach(function(gallery){
const largeImg = gallery.querySelector('.galleru__item-prem');
if (!largeImg) console.warn('Нет большой картинки');
gallery.addEventListener('mouseover', function(event){
const thumbnail = event.target.closest('.galleru__item');
if (!thumbnail) return;
showThumbnail(largeImg, thumbnail.href, thumbnail.title);
});
});
let inputString = "+... ... ... ... ... ..";
let stringArray = inputString.split(" "); // разбиваем строку по пробелам
stringArray.shift(); // удаляем первый элемент массива
let outputString = stringArray.join(" "); // склеиваем оставшиеся элементы массива в строку
console.log(outputString); // выводим результат в консоль
let inputString = "+... ... ... ... ... ..";
let result = inputString.split(" ").slice(1).join(" ");
console.log(result);
window.onload = () => {
const popUp = document.getElementById('cookiePopup');
function showPopup() {
popUp.classList.add('show');
popUp.classList.remove('hide');
}
function hidePopup() {
popUp.classList.add('hide');
popUp.classList.remove('show');
}
document.getElementById('acceptCookie').addEventListener('click', () => {
localStorage.setItem('cookieAccepted', '1');
hidePopup();
});
if (localStorage.getItem('cookieAccepted') === '1') {
hidePopup();
} else {
showPopup();
}
};
<a class="menu">Menu item</a>
<a class="menu">Menu item</a>
<a class="menu">Menu item</a>
<a class="menu">Menu item</a>
<a class="menu">Menu item</a>
.menu {
transform: translateX(-100%);
opacity: 0;
transition: all 0.5s ease;
}
.menu.ready {
transform: translateX(0);
opacity: 1;
}
const delay = 300;
[...document.querySelectorAll('.menu')].reverse().forEach((menu, index) => {
setTimeout(() => {
menu.classList.add('ready');
}, delay * (index + 1))
});
document.querySelectorAll('.element').forEach(el => {
const id = el.getAttribute('id');
fetch('https://mysite.com', {
body: {
id
}
})
.then(response => response.json())
.then(response => {
if (response.status === 'ok') {
el.style.color = 'green';
} else {
el.style.color = 'red';
}
})
.catch(err => {
console.log(err);
el.style.color = 'red';
});
});
$id = $_GET['id'];
// Что-то делаем
$result = doSomething($id);
$response = [
'status' => $result ? 'ok' : 'error'
];
echo json_encode($response);
die;
jQuery.ajax({ // 1. Выполнится этот код
url: 'receiveData.php',
type: 'POST',
data: {},
success: function () {
// 3. А уже после окончания запроса выполнится этот код
// Именно в это время данные будут получены и сохранены.
},
error: function () {
console.log('ERROR');
}
})
receiveTxt(); // 2. Потом сразу же выполнится этот код
.menu {
right: -100%;
}
@media(max-width: 768px) {
/* Открывать меню только при ширине, меньшей 768 */
.menu.open {
right: 0;
}
}
const m = matchMedia('(min-width: 768px)');
function watch(e) {
if (e.matches) { // Сработает, когда ширина превысит 768px
document.querySelector('.menu').classList.remove('open');
}
}
m.addListener(watch);
watch(m);
.slide-visible { transform: scale(0.5); } // первый видимый слайд
.slide-visible + .slide-visible { transform: scale(0.75); } // второй
.slide-visible ~ .slide-active { transform: scale(1); } // активный, в центре
.slide-active + .slide { transform: scale(0.75); } // следующий за активным
.slide-active + .slide + .slide { transform: scale(0.5); } // последний видимый
// немного плавности
.slide { transition: transform 1s ease; }