<div id="map" class="black-and-white"></div>
.black-and-white {
filter: grayscale(100%);
}
document.querySelector('#map').addEventListener('click', function() {
this.classList.remove('black-and-white');
}, { once: true });
- <main className={active ? 'move-to-left' : ''}>
+ <main>
- <div className="sidebar">
+ <div className={'sidebar ' + (active ? 'move-to-left' : '')}>
- <NavRight onClick={this.toggleActive} buttonClass={!active ? 'active' : ''} navClass="hidden-xs" />
+ <NavRight onClick={this.toggleActive} buttonClass={active ? 'active move-to-left' : ''} navClass="hidden-xs" />
+ body {
+ overflow: hidden;
+ }
.sidebar {
...
- z-index: 1;
- right: 0;
+ z-index: 3;
+ right: -400px;
+ transition: all .7s ease;
Имелось в виду, что контент тоже двигается при смещении sidebar, но не убегает полностью в левый угол, а остается по центрy оставшейся ширины
<div class="box">
<div class="inbox1"></div>
<div class="inbox2"></div>
</div>
.box {
display: flex;
}
.inbox1,
.inbox2 {
width: 100px;
height: 100px;
border-radius: 100%;
transition: all 800ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
}
.inbox1 {
background: red;
transition-delay: 0ms;
}
.inbox2 {
background: green;
transition-delay: 200ms;
}
.box:hover .inbox1 {
transform: translate(200px, 0);
transition-delay: 200ms;
}
.box:hover .inbox2 {
transform: translate(200px, 0);
transition-delay: 0ms;
}
const outerClass = 'item';
const innerClass = 'hidden';
const hide = el => el.style.display = 'none';
// или
const hide = el => el.style.setProperty('visibility', 'hidden');
// или
const hide = el => el.style.cssText += 'opacity: 0';
// или
const hide = el => el.setAttribute('style', 'transform: scale(0)');
// или
const hide = el => el.hidden = true;
document.querySelectorAll(`.${innerClass}`).forEach(n => {
if (n = n.closest(`.${outerClass}`)) {
hide(n);
}
});
// или
for (const n of document.getElementsByClassName(outerClass)) {
if (n.querySelector(`.${innerClass}`)) {
hide(n);
}
}
.item:has(.hidden) {
display: none;
}
что не так в скрипте
можно ли его сделать проще
document.querySelector('#play').addEventListener('change', e => {
document.querySelector('.block').style.opacity = +e.target.checked;
});
#play:checked ~ div > .block {
opacity: 1;
}
h1::before {
content: "";
background-image: url(http://via.placeholder.com/50x50);
display: inline-block;
width: 50px;
height: 50px;
}
Если увеличивать width или height, то картинка повторяется.
Как можно отключить повтор?
background-size: cover;
background-position: center;
background-repeat: no-repeat;
.div_info
у вас нет - так что его высота равна нулю. А поскольку сам .div_info
является единственным дочерним элементом .midd_wrap
- то и последний также имеет нулевую высоту. Т.е., бэкграунд на самом деле есть, просто вы его не видите. <div id="e1">1</div>
<div id="e2">22</div>
<div id="e3">333</div>
<div id="e4">4444</div>
<div id="e5">55555</div>
#e1, #e2, #e3, #e4, #e5 {
position: absolute;
top: 0;
left: 0;
animation: change 1250ms infinite steps(1);
}
#e2 { animation-delay: -1000ms; }
#e3 { animation-delay: -750ms; }
#e4 { animation-delay: -500ms; }
#e5 { animation-delay: -250ms; }
@keyframes change {
0%, 20% {
opacity: 1;
}
20%, 100% {
opacity: 0;
}
}