Делаем 3D-книгу адаптивной

Я делал 3D-книгу с помощью CSS, основанного на этот пример, и мне было трудно сделать ее отзывчивой. Высота - самая большая проблема. Я пробовал следующее:

а) сделать ширину 100% и использовать vh для высоты, но это не очень хорошо

б) используя этот пример jQuery, который

window.addEventListener("resize", function(e) {
    var mapElement = document.getElementById("map");
    mapElement.style.height = mapElement.offsetWidth * 1.72;
});

но поскольку у меня есть несколько div с заданной высотой, не похоже, что он работает

c) использование padding-bottom с процентами, но хотя это казалось хорошей идеей, я не мог заставить эту работу всю жизнь, потому что мне пришлось бы установить padding-bottom для нескольких div:

.bk-left, .bk-back, .bk-front, .bk-cover {
  /* and they also can't be the same padding-bottom 
  because it doesn't seem to work like that */
}

Но ничего из этого не сработало. Либо я неправильно их использовал, либо я могу еще кое-что сделать. Вот кодовый ключ с моей 3D-книгой, как сейчас. Я использую Bootstrap 4, но только для сетки, поэтому я не собираюсь внедрять решения Bootstrap в настоящую книгу. Но может ли кто-нибудь взглянуть и сообщить мне, как я могу это сделать? Я открыт для подходов как CSS, так и JS / jQuery, если он правильно масштабируется. Огромное спасибо!

Я не совсем понимаю, что именно вы хотите, особенно глядя на код. Должна ли высота быть такой же высокой, как и область просмотра? Или ширина должна быть такой же ширины, как область просмотра / документ, при сохранении соотношения сторон?

MiB 03.06.2018 19:05

Извините, если мой вопрос запутался. Да, мне нужно, чтобы ширина была такой же ширины, как область просмотра / документ, при сохранении соотношения сторон. @MiB

Retros 03.06.2018 19:08

Потому что я могу сделать ширину отзывчивой, но высота - это проблема, потому что она остается неизменной и искажает соотношение.

Retros 03.06.2018 19:09

Хорошо, понятно. Тогда будет намного больше работы, потому что ваш CSS имеет фиксированные значения ширины / размера / длины повсюду. Вам нужно будет преобразовать их все в проценты или явно указать с помощью JavaScript. Единственное, что я мог придумать, это использовать свойство CSS scale на book-wrap и вычислить коэффициент на основе необходимой ширины, деленной на текущую ширину с коэффициентом 1.

MiB 03.06.2018 19:29

На самом деле, поскольку моя единственная проблема с отзывчивостью возникает на экранах меньше 350 пикселей, свойство scale отлично работает. Это быстрое решение с очень небольшими недостатками. Спасибо @MiB за это предложение! Это определенно лучше сложных.

Retros 03.06.2018 19:45
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
5
37
0

Другие вопросы по теме