Друзья, помогите пожалуйста!
Сделал простенькую гистограмму - хочу чтобы она ресайзилась автоматом при изменении размеров окна браузера. Оформил примерно такой код:
const data = new Array(20).fill(0).map(v => Math.random() * 50);
const redraw = () => {
const width = d3.select('.bar-chart').node().clientWidth;
console.log('FIRE_REDRAW', width);
const yScale = d3
.scaleLinear()
.domain([0, 50])
.range([100, 300])
.nice();
const sections = d3
.select('.bar-chart')
.selectAll('div')
.data(data);
sections
.enter()
.append('div')
.classed('cubic', true)
.style('height', d => `${yScale(d)}px`)
.style('width', d => `${width / data.length - 3}px`)
}
redraw();
window.addEventListener("resize", redraw);
Функция redraw
вызывается, но увы график не перерисовывается. Что я упустил?
Код выложил в песочницу https://codepen.io/anon/pen/OrdWXw
Я бы сделал так:
const data = new Array(20).fill(0).map(v => Math.random() * 50);
const yScale = d3.scaleLinear()
.domain([0, 50]).range([100, 300])
.nice();
const sections = d3
.select('.bar-chart')
.selectAll('div')
.data(data)
.enter()
.append('div')
.classed('cubic', true);
const redraw = () => {
const width = d3.select('.bar-chart').node().clientWidth;
sections
.style('height', d => `${yScale(d)}px`)
.style('width', d => `${width / data.length - 3}px`)
}
redraw();
window.addEventListener("resize", redraw);
svg {
border: 1px solid #000;
}
.cubic {
background-color: #F00;
display: inline-block;
width: 20px;
margin-right: 2px;
position: relative;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/5.7.0/d3.min.js"></script>
<div class="bar-chart">
</div>
codepen
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Какие существуют виды рекламных бордов и как выбрать подходящий?
На одной странице сайта есть ссылка-спойлер, то есть при клике на нее под ней появляется блок: с помощью js кода идет подмена стиля с display:none...
Помогите пожалустаИмею такую ситуацию, есть две кнопки с разными id в HTML файлe, мне нужно взять все id всех кнопок с классом