Я создаю календарь, который должен давать абстрактную визуализацию часов, которые вы забронировали на этой неделе. Таким образом, каждый элемент .bar означает x минут, потраченных на что-либо. Теперь я изо всех сил пытаюсь найти способ убедиться, что дни остаются пропорциональными друг другу.
Что я сделал, так это то, что я взял самый длинный день недели и высоту контейнера, в котором находятся столбики. Таким образом, я могу рассчитать, как высоко (px) 1 минута в самый длинный день, и использовать это значение для всех дней. Я надеюсь, что это имеет смысл.
Я сделал эту скрипку с некоторыми жестко закодированными данными: https://jsfiddle.net/luffyyyyy/vate1d4h/13/
new Vue({
el: '#app',
data: {
minuteHeight: 0,
longestDay: 600
},
mounted() {
window.addEventListener('resize', this.handleResize);
this.handleResize();
},
destroyed() {
window.removeEventListener('resize', this.handleResize);
},
methods: {
handleResize() {
this.minuteHeight = this.$refs.container.offsetHeight / this.longestDay;
console.log(this.minuteHeight);
}
}
});
Теперь это работает, когда вы загружаете страницу, и это работает, когда вы делаете страницу больше (она масштабируется). Но когда вы начинаете делать страницу меньше, она остается самой большой по размеру (я думаю?).
- Это правильный путь к go по этому поводу?
- Почему нет? Уменьшить ли его размер при уменьшении размера браузера?