При наведении происходят непонятные скачки
.box-inner завязано на его же :hover, так что когда он уезжает из-под курсора, состояние :hover теряется, элемент откатывается назад, под курсор, снова случается :hover, элемент опять едет вверх, ну и т.д. Надо смотреть :hover у элемента, который из-под курсора никуда не девается, т.е., у родительского:.box:hover .box-inner {
margin-top: -360px;
}Также, как сделать, чтобы при убирании курсора все возвращалось обратно плавно, а не резким скачком?
transition должен присутствовать у элемента вне зависимости от наличия состояния :hover:.box-inner {
transition: all 500ms ease;
}
this.getPictures() должно быть что-то вродеthis.collections.splice(this.collection.findIndex(n => n.id === picId), 1)
<div id="city">
<img src="img/flag-m.png" />
<span>Москва</span>
</div>const cityImage = document.querySelector('#city img');
const cityName = document.querySelector('#city span');document.querySelector('ul').addEventListener('click', e => {
const li = e.target.closest('li');
if (li) {
cityImage.setAttribute('src', li.getAttribute('data-gerb'));
cityName.innerText = li.getAttribute('data-city');
}
});
// или
document.querySelectorAll('li').forEach(function(n) {
n.addEventListener('click', this);
}, ({ currentTarget: { dataset: { city, gerb } } }) => {
cityImage.src = gerb;
cityName.textContent = city;
});
color.bind(null, i) надо сохранить - в какой-нибудь массив, например.
forEachWithDelay(
document.querySelectorAll('.x'),
1000,
el => el.style.display = 'block'
);function forEachWithDelay(arr, delay, callback) {
Array.prototype.forEach.call(arr, (n, i) => {
setTimeout(callback, (i + 1) * delay, n);
});
}function forEachWithDelay(arr, delay, callback) {
(function next(i) {
if (i < arr.length) {
setTimeout(() => {
callback(arr[i]);
next(-~i);
}, delay);
}
})(0);
}function forEachWithDelay(arr, delay, callback) {
let i = -1;
const intervalId = setInterval(() => {
if (++i < arr.length) {
callback(arr[i]);
} else {
clearInterval(intervalId);
}
}, delay);
}
str.match(/\w+$/)[0]str.split(/\W/).pop()str.replace(/.*\W/, '')-1, с единицей это 0, т.е., начало строки) и до конца:str.slice(1 + Math.max(...[...'@/'].map(n => str.lastIndexOf(n))))[...str].reduce((acc, n) => '@/'.includes(n) ? '' : acc + n, '')
ul.main-nav и .ic.menu:focus ~ .main-nav. Один типа дефолтный, другой для открытого состояния - в процессе открытия/закрытия цвет может меняться. Хотите, чтобы всегда был зелёный - задайте зелёный для обоих селекторов.
const closeInfoWindows = (...windows) => windows.forEach(w => w && w.close());
int
N = 6,
start = 2;
for (int i = 0; i < N; i++) {
int val = start;
printf("\n%d: ", val);
while (val != 1) {
if (val % 2 == 0) {
val = val / 2;
} else {
val = val * 3 + 1;
}
printf("\t%d", val);
}
start++;
}