setTimeout(show(i), i * 300);setTimeout(() => show(i), i * 300);setTimeout(show.bind(null, i), i * 300);setTimeout(show, i * 300, i);function show(x) {
return function() {
// сюда помещаете то, что находится у вас в show сейчас
};
}
const ancestorSelector = 'селектор_предка';
const descendantSelector = `${ancestorSelector} селектор_потомка`;document.querySelectorAll(descendantSelector).forEach(function(n) {
n.addEventListener('click', this);
}, e => e.currentTarget.closest(ancestorSelector).replaceWith());document.addEventListener('click', e => {
const descendant = e.target.closest(descendantSelector);
if (descendant) {
descendant.closest(ancestorSelector).outerHTML = '';
}
});
// или
document.addEventListener('click', ({ target: t }) =>
(t = t.closest(descendantSelector)) && t.closest(ancestorSelector).remove()
);document.addEventListener('click', e => {
e.target.closest(descendantSelector)?.closest(ancestorSelector).remove();
});
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;
<span id="typed"></span>
<div id="actions">
<button data-action="start">play</button>
<button data-action="stop">pause</button>
</div>const typed = new Typed('#typed', {
typeSpeed: 100,
loop: true,
strings: [
'hello, world!!',
'fuck the world',
'fuck everything',
],
});
document.querySelector('#actions').addEventListener('click', e => {
const { action } = e.target.dataset;
if (action) {
typed[action]();
}
});
const cloud = new Image();
cloud.src = 'https://avatanplus.com/files/resources/mid/56dc1ba4ba1b81534bcbfb9a.png';
(function draw() {
const ctx = document.getElementById('canvas').getContext('2d');
ctx.globalCompositeOperation = 'destination-over';
ctx.clearRect(0, 0, canvas.width, canvas.height);
ctx.fillStyle = 'rgba(0,0,0,0.4)';
ctx.strokeStyle = 'rgba(0,153,255,0.4)';
ctx.save();
ctx.translate(300, 200);
const time = new Date();
ctx.rotate(Math.sin(time / 500) / 10);
ctx.drawImage(cloud, -300, -200);
ctx.restore();
window.requestAnimationFrame(draw);
})();
locales: ['ru', 'en'], locale: 'ru',
{{ locales[locale]}}v-for="(value, key) in locales"@click.prevent="localizee(key)"
$(this).index() на $('.sub3').index(this) (за подробностями - в документацию)
<tr *ngFor="let monitoring of filteredMonitorings "> <td style="text-align: center">{{ getTotal(filteredMonitorings) }} </td> </tr>
<tr *ngFor="let monitoring of filteredMonitorings ">
<td style="text-align: center">{{ monitoring.count }} </td>
</tr><tr>
<td style="text-align: center">{{ getTotal(filteredMonitorings) }} </td>
</tr>
languages: [ 'en', 'ru' ]<ul>
<li
v-for="lang in languages"
@click="selected = lang"
>
{{ lang }}
</li>
</ul>
store.dispatch('заргузитьДанныеПользователя').then(() => {
new Vue({ ... });
});created() {
this.$store.dispatch('заргузитьДанныеПользователя');
},<div v-if="$store.state.данныеПользователя">
контент
</div>
<индикатор-загрузки v-else />
Можно ли сохранять состояние одного компонента с разными входными данными
.div_info у вас нет - так что его высота равна нулю. А поскольку сам .div_info является единственным дочерним элементом .midd_wrap - то и последний также имеет нулевую высоту. Т.е., бэкграунд на самом деле есть, просто вы его не видите.