document.body.addEventListener('click', e => {
document.querySelectorAll('details[open]').forEach(n => {
n.open = n === e.target.parentNode;
});
});
const slider = document.querySelectorAll('.gallery').forEach( slider => {
let isDown = false;
let startX;
let scrollLeft;
slider.addEventListener('mousedown', e => {
isDown = true;
slider.classList.add('active');
startX = e.pageX - slider.offsetLeft;
scrollLeft = slider.scrollLeft;
});
slider.addEventListener('mouseleave', _ => {
isDown = false;
slider.classList.remove('active');
});
slider.addEventListener('mouseup', _ => {
isDown = false;
slider.classList.remove('active');
});
slider.addEventListener('mousemove', e => {
if (!isDown) return;
e.preventDefault();
const x = e.pageX - slider.offsetLeft;
const SCROLL_SPEED = 3;
const walk = (x - startX) * SCROLL_SPEED;
slider.scrollLeft = scrollLeft - walk;
});
});
-webkit-transform: translate(-50.1%, -50.1%);
transform: translate(-50.1%, -50.1%);
нужно чтоб эти данные дублировались и пользователю на введенный им емейл в формеТак как какой-то "замечательный" человек решил что функция sendEmail будет внутри себя использовать емэйл заданный константой, а не передаваемый в параметрах, то в данном коде ваша задумка работать не будет.
оборачивается не полностью
childNodes
представляет собой динамическую коллекцию, т.е., при добавлении или удалении узлов она обновляется без каких-либо действий с вашей стороны. Поэтому, когда вы добавляете в wrapper
нулевой узел, он тут же пропадает из item.childNodes
, а у оставшихся узлов позиция уменьшается на единицу - тот, что был первым, становится нулевым, второй первым и так далее. Так что когда for...of
переходит к следующему узлу, им оказывается не тот, что изначально имел индекс 1
, а расположенный за ним. Бывший первый, а теперь нулевой, оказывается пропущен. Аналогичным образом будут пропущены и все последующие узлы, изначально имевшие нечётные индексы.while (item.childNodes.length) {
wrapper.appendChild(item.childNodes[0]);
}
childNodes
от конца к началу:for (let i = item.childNodes.length; i--;) {
wrapper.prepend(item.childNodes[i]);
}
childNodes
, а массив:for (const n of [...item.childNodes]) {
wrapper.append(n);
}
append
может принимать несколько параметров, так что переносим сразу всё:document.querySelectorAll('.www').forEach(n => {
const wrapper = document.createElement('div');
wrapper.classList.add('red');
wrapper.append(...n.childNodes);
n.append(wrapper);
});
for (const n of document.getElementsByClassName('www')) {
n.innerHTML = `<div class="red">${n.innerHTML}</div>`;
}
add_theme_support( 'wp-block-styles' );
// remove Gutenberg styles
function remove_gutenberg_styles() {
wp_dequeue_style( 'wp-block-library' );
}
add_action( 'wp_enqueue_scripts', 'remove_gutenberg_styles', 100 );
wp-config.php
добавить следующие строки: define( 'WP_HOME', 'https://VashSite.ru/wp-signup.php' );
define( 'WP_SITEURL', 'https://VashSite.ru/wp-signup.php' );
define( 'NOBLOGREDIRECT', 'https://VashSite.ru/wp-signup.php' );
define( 'NOBLOGREDIRECT', '' );
'NOBLOGREDIRECT'
$args = array(
'id' => '', // ID элемента меню. Обязательный. Строка.
'title' => '', // Заголовок элемента меню. Обязательный. Строка.
'parent' => '', // ID родительского элемента меню. Строка.
'href' => '', // Ссылка для этого элемента меню. Строка.
'group' => false, // Является ли этот элемент группой. Логический. По умолчанию false
'meta' => array( // Массив дополнительных данных элемента. По умолчанию: пустой массив.
'html' => '', // Произвольный HTMl код, который будет добавлен в конце оборачивающего LI тега элемента меню.
'class' => '', // Атрибут тега 'class'
'rel' => '', // Атрибут тега 'rel'
'lang' => '', // Атрибут тега 'lang'
'dir' => '', // Атрибут тега 'dir'
'onclick' => '', // Атрибут тега 'onclick'
'target' => '', // Атрибут тега 'target'
'title' => '', // Атрибут тега 'title'
'tabindex' => '', // Атрибут тега 'tabindex'
),
)
Вопрос - как?
... этот цвет применить еще к некоторым дивам в этой теме?
add_action('wp_head','div_style');
if(!function_exists('div_style')){function div_style(){?>
<style id="div_style" type="text/css">
.div_style{background-color:#<?php echo get_theme_mod('background_color');?>;}
</style>
<?php }}
...............или...............
add_action('get_footer','div_style');
if(!function_exists('div_style')){function div_style(){?>
<style id="div_style" type="text/css">
.div_style{background-color:#<?php echo get_theme_mod('background_color');?>;}
</style>
<?php }}
document.querySelector('.autoplay video').setAttribute('autoplay', ' ');
const attributes = ['mute', 'loop', 'autoplay'];
const video = document.querySelector('.autoplay video');
attributes.forEach(attr => video.setAttribute(attr, ''));
const video = document.querySelector('.autoplay video');
video.autoplay = true;
video.loop = true;
video.muted = true;