<input type="checkbox" />
и привязка CSS-свойств к этому состоянию. Пример:<input type="checkbox" id="wrapTrigger" />
<div class="wrap">
<p>Любой контент</p>
<label for="wrapTrigger" class="button">Нажми меня</label>
<p>Любой контент</p>
</div>
<style>
#wrapTrigger {
display: none;
}
.wrap {
color: red;
}
input:checked + .wrap {
color: blue;
}
</style>
.wrap
располагался сразу после input
, иначе не сработает CSS-селектор +
. HTML-элемент label
переносит эффект клика на указанный чекбокс (связь происходит через значения полей for
и id
). access_token
(не требует авторизации пользователя, его можно получить в настройках приложения) и учитываю его при подписи запроса согласно инструкции. a {
color: var(--link-color);
}
.style1 {
--link-color: red;
}
.style2 {
--link-color: green;
}
<div class="block">
<img class="image">
</div>
.block {
position: relative;
overflow: visible;
}
.block .image {
position: absolute;
top: -100px;
right: 200px;
}
<div class="block">
<img class="image">
</div>
.block {
overflow: visible;
}
.block .image {
display: inline-block;
margin-top: -100px;
margin-bottom: -100px;
}
.block .image {
position: absolute;
width: 300px;
top: -100px;
right: 200px;
}
@media (max-width: 800px) {
.block .image {
width: 200px;
top: -50px;
right: 50px;
}
}
function treeToPlainList(tree, idPrefix = '') {
let list = [];
// Проходит по каждому элементу массива
tree.forEach((item, index) => {
// Добавляет к элементу свойство id
const itemForPlainList = {...item, id: idPrefix + (index + 1)};
// Удаляет из элемента свойство children
delete itemForPlainList.children;
// Добавляет элемент в итоговый массив
list.push(itemForPlainList);
if (item.children) {
// Добавляет в конец итогового массива элементы, которые возвращает функция treeToPlainList
list = [...list, ...treeToPlainList(item.children, idPrefix + (index + 1) + '.')];
}
});
return list;
}
const list = treeToPlainList(tree); // tree — изначальный массив, list — результат
objectManager.objects.getById(1).properties.balloonContentBody = 'Загружено (тут полезная информация)';
objectManager.objects.getById
может вернуть null
. Демо на CodePen.createMap
, переименовав переменную myMap
в map
. Туда же нужно поместить код для задания элементов управленияymaps.ready(function() {
// Создание карты и установка элементов управления
var map = new ymaps.Map(document.getElementById('map'), {
center: [42, 54],
zoom: 6,
controls: ['zoomControl', 'fullscreenControl'] // Полный список тут: https://tech.yandex.ru/maps/doc/jsapi/2.1/dg/concepts/controls-docpage/#standard
});
// Добавление меток через ObjectManager
var objectManager = new ymaps.ObjectManager({
clusterize: true
});
map.geoObjects.add(objectManager);
$.ajax({
url: 'wp-content/themes/urbech-style/data.json'
}).done(function(data) {
objectManager.add(data);
})
});
/shop/
:if (window.location.pathname.indexOf('/shop/') >= 0)) {
alert('Работает');
}
if (window.location.pathname.match(/^\/shop(\/|$)/)) {
alert('Работает');
}
[100, 80, 60, 50, 40, 20, 10, 0].forEach(function(number) {
document.write('Число: <b>' + number + '</b><br>');
});
var deferred = $.ajax({ ... });
deferred.done(function(data) { /* Действие 1 */ });
deferred.done(function(data) { /* Действие 2 */ });
var masterCheckbox = document.querySelector('input[type="checkbox"][value="0"]');
var slaveCheckboxes = document.querySelectorAll('input[type="checkbox"]:not([value="0"])');
masterCheckbox.addEventListener('change', function() {
if (masterCheckbox.checked) {
// Галочка поставлена. Деактивируем остальные чекбоксы.
Array.prototype.forEach.call(slaveCheckboxes, function(checkbox) {
checkbox.checked = false;
checkbox.disabled = true;
});
} else {
// Галочка убрана. Активируем остальные чекбоксы.
Array.prototype.forEach.call(slaveCheckboxes, function(checkbox) {
checkbox.disabled = false;
});
}
});
group.getInfo
не требует права — это баг. var items = [
{
color: 'red',
size: 100
},
{
color: 'blue',
size: 70
}
// и так далее
]
items
и собрать те значения фильтра "размер", которые встречаются в элементах, которые подходят под фильтр цвета:var color = 'red';
var availableSizes = []; // Будет содержать список доступных размеров для красного цвета
items
// Отсеиваем элементы по фильтру цвета
.filter( function( item ) { return item.color === color; })
// Собираем значения фильтра размера для них
.forEach( function( item ) {
if ( availableSizes.indexOf( item.size ) === -1 )
availableSizes.indexOf.push( item.size );
});
items
и заново проделать с ним операцию, описанную выше. Не надо сохранять и использовать результат предыдущего запроса, надо работать только с начальным набором данных и тем, что ввёл пользователь, иначе сложность программы будет расти быстрее грибов после дождя. runCar
прямо во время вызова animate
, а не посылаете её вызываться по завершению анимации, потому что круглые скобки сразу после её названия вызывают её в тот же момент. Чтобы вызвать её с указанными аргументами по завершению анимации, сделайте так:function runCar(carNumber) {
$(".car").animate({$start,$speed, 'linear', function() {
runCar(carNumber)
});
}