Для чего просиживаете на тостере по 5-6 часов в день?
<section class="content">
<div class="content__text-wrap">
<h2 class="content__title">Заголовок</h2>
<p class="content__descr">Блок с текстом</p>
</div>
</section>
<section class="content">
<div class="content__text-wrap article">
<h2 class="article__title">Заголовок</h2>
<p class="article__descr">Блок с текстом</p>
</div>
</section>
const canvas = document.querySelector('#canvas');
const ctx = canvas.getContext('2d');
const TILE_SIDE = 32;
let pickX = 0;
let pickY = 0;
const ground = new Image();
ground.src = 'Ground.png';
const pick = new Image();
pick.src = 'Pick.png';
document.addEventListener('keydown', function(e) {
switch (e.keyCode) {
case 87: pickY -= TILE_SIDE; break;
case 65: pickX -= TILE_SIDE; break;
case 83: pickY += TILE_SIDE; break;
case 68: pickX += TILE_SIDE; break;
default: return;
}
draw();
});
function draw() {
for (let x = 0; x < canvas.width; x += TILE_SIDE) {
for (let y = 0; y < canvas.height; y += TILE_SIDE) {
ctx.drawImage(ground, x, y);
}
}
ctx.drawImage(pick, pickX, pickY);
}
draw();
если все заказчики, в основном, просят натяжку на CMS, где нужно понимание phpFalse
на CMS, где нужно понимание phpFalse
на каком уровне нужно знать backendна уровне - я знаю как решить данную проблему за Х часов, я ее уже решал минимум два раза
mix-blend-mode
и делать фолбек для старых браузеров. Что-то вроде этого:.ranging {
display: none;
}
.ranging.opened {
display: block;
}
const buttonSelector = '.selector';
const contentSelector = '.ranging';
const activeClass = 'opened';
const toggleContent = (contents, index) =>
contents.forEach((n, i) => n.classList.toggle(activeClass, i === index));
// делегирование, назначаем обработчик клика один раз для всех кнопок
// наверное, у них есть какой-то общий предок, тогда вместо документа
// вешать обработчик следует на него:
// document.querySelector('селектор_контейнера_с_кнопками').addEventListener(...
document.addEventListener('click', e => {
const button = e.target.closest(buttonSelector);
if (button) {
const buttons = document.querySelectorAll(buttonSelector);
const index = Array.prototype.indexOf.call(buttons, button);
toggleContent(document.querySelectorAll(contentSelector), index);
}
});
// или, назначаем обработчик клика индивидуально каждой кнопке
const onClick = function(e) {
toggleContent(this, +e.currentTarget.dataset.index);
}.bind(document.querySelectorAll(contentSelector));
document.querySelectorAll(buttonSelector).forEach((n, i) => {
n.dataset.index = i;
n.addEventListener('click', onClick);
});
filters: [
{ name: 'calculator.brand_filter', getter: obj => obj.brand.name, value: '' },
{ name: 'calculator.company_filter', getter: obj => obj.company.name, value: '' },
{ name: 'calculator.country_filter', getter: obj => obj.brand.country, value: '' },
{ name: 'calculator.side_filter', getter: obj => obj.sides, value: '' },
],
computed: {
filteredProfiles() {
return this.filters.reduce((profiles, { value, getter }) => {
return value
? profiles.filter(n => getter(n) === value)
: profiles;
}, this.profiles);
},
Vue.component('filter-select', {
props: [ 'name', 'options', 'value' ],
template: `
<div>
<p>{{ name }}<p>
<select :value="value" @change="$emit('input', $event.target.value)">
<option value="">-</option>
<option v-for="n in options">{{ n }}</option>
</select>
</div>`
});
computed: {
filterOptions() {
return this.filters.map(n => [...new Set(this.profiles.map(n.getter))]);
},
<filter-select
v-for="(n, i) in filters"
v-model="n.value"
:options="filterOptions[i]"
:name="trans(n.name)"
></filter-select>
methods: {
resetFilters() {
this.filters.forEach(n => n.value = '');
},
<button @click="resetFilters">{{ trans('calculator.reset_filter') }}</button>
id
это уникальный идентификатор. Делать несколько элементов с одним id
это в корне неправильно + через JQuery по id вы получите в ответ только один элемент. Используйте классы:<div class="aboutfilm">
.....
</div>
<script>
$('.aboutfilm').each(function() {
$(this).on('click', () => {
$(this).parent().find('.test').addClass('card-text-change');
$(this).parent().find('.card-text').css('opacity', '1');
$(this).css('display','none');
});
});
</script>
Может ли злоумышленник, получив данные о списках таблиц так же получить и содержимое этих таблиц?
iframe.contentWindow.body.innerHTML