document.querySelector('.music-album').addEventListener('click', e => {
const { target: t, currentTarget: ct } = e;
const playButton = ct.querySelector('.play_button');
const stopButton = ct.querySelector('.stop_button');
const state =
playButton.contains(t) ? true :
stopButton.contains(t) ? false :
null;
if (state !== null) {
ct.querySelector('audio')[state ? 'play' : 'pause']();
playButton.style.display = state ? 'none' : 'block';
stopButton.style.display = state ? 'block' : 'none';
}
});
document.querySelectorAll('.container').forEach(n => {
const slider = new Swiper(n.querySelector('.product-slider'), {
navigation: {
nextEl: n.querySelector('.swiper-button-next'),
prevEl: n.querySelector('.swiper-button-prev'),
},
spaceBetween: 10,
});
const thumbs = new Swiper(n.querySelector('.product-thumbs'), {
spaceBetween: 5,
centeredSlides: true,
slidesPerView: 4,
touchRatio: 0.2,
slideToClickedSlide: true,
direction: 'vertical',
});
slider.controller.control = thumbs;
thumbs.controller.control = slider;
});
const sum = data =>
(data instanceof Array ? data : [ data ]).reduce((acc, n) => {
return acc + n.value + sum(n.children || []);
}, 0);
const valueSum = sum(valueList);
function sum(data) {
let result = 0;
for (const stack = [].concat(data); stack.length;) {
const { value, children: c } = stack.pop();
stack.push(...(Array.isArray(c) ? c : []));
result += value;
}
return result;
}
были некоторые идеи с маской, но я не знаю как правильно ее реализовать
xor
. <div v-if="$route.name !== 'signup'">hello, world!!</div>
<div v-if="$route.path !== '/signup'">hello, world!!</div>
options: {
scales: {
xAxes: [ {
ticks: {
display: false,
data: {
labels: [ '', '', '', ... ],
options: {
scales: {
xAxes: [ {
ticks: {
fontSize: 0,
options: {
scales: {
xAxes: [ {
ticks: {
fontColor: 'transparent',
options: {
onResize(chart, size) {
// изменяете в зависимости от размеров одну из перечисленных
// выше настроек (display, labels, fontSize, fontColor), например:
chart.options.scales.xAxes[0].ticks.display = size.width >= 500;
// обновляете график
chart.update();
},
$('.wr').on('input', 'input', function() {
const
$this = $(this),
val = $this.val(),
$link = $this.closest('.item').find('.link-a');
$link.toggleClass('success', /* здесь проверяете, что val какой надо */);
});
.hidden {
display: none;
}
const searchInput = document.querySelector('#txtsearchinput');
const clearButton = document.querySelector('#deltxtinput');
clearButton.addEventListener('click', function() {
searchInput.value = '';
searchInput.dispatchEvent(new Event('input'));
});
searchInput.addEventListener('input', function() {
clearButton.classList.toggle('hidden', !this.value);
});
ReactDOM.render(
<News data={myNews} />,
document.querySelector('#root')
);
document.addEventListener('click', ({ target: t }) => {
if (t.classList.contains('xxx')) {
currColor.style.backgroundColor = t.nextElementSibling.textContent;
}
// или
if (t.matches('.xxx')) {
currColor.style.backgroundColor = getComputedStyle(t).backgroundColor;
}
});
const findMin = obj =>
(obj.children || []).reduce((min, n) => (
n = findMin(n),
min.value < n.value ? min : n
), obj);
foreach ($arr1 as &$n1) {
foreach ($arr2 as $n2) {
if ($n1['id'] === $n2['id']) {
$n1['warns'] = $n2['warns'];
continue 2;
}
}
}