Предыдущая статья10 уникальных визуальных эффектов фона CSSЕсть упоминание о визуальном эффекте разделенного экрана, Сегодня в этой статье мы поговорим об использовании JavaScript для реализации визуального эффекта разделенного экрана. Теперь этот визуальный эффект разделения экрана широко используется на веб-сайтах, таких какCorsair website.
HTML-структура
Сначала получите правильный базовый стиль структуры, чтобы добиться этого эффекта, вам нужно использоватьdivпостроить дваpanel. первый, кто далbottomкласс, а другойtopДобрый. Затем используйте класс с именемsplitviewобернуть.
<div class="splitview">
<div class="panel bottom">
<div class="content">
</div>
</div>
<div class="panel top">
<div class="content">
</div>
</div>
</div>
Область содержимогоcontentВы можете разместить что угодно, картинки, текст и т.д.
затем вsplitviewвне структуры добавьте еще одинdivимя классаhandle, Используется для усиления визуального эффекта представления с разделенным экраном.
<div class="handle"></div>
стиль
Сначала напишите дваpanelстиль, для достижения этого эффекта требуется абсолютное позиционирование, поэтому убедитесь, что имя классаtopПанель находится поверх другой панели. Другой момент заключается в том, что для того, чтобы адаптироваться к размеру экрана устройства, здесь используется единица измерения vw.
/* Panels. */
.splitview {
position: relative;
width: 100%;
min-height: 45vw;
overflow: hidden;
}
.panel {
position: absolute;
width: 100vw;
min-height: 45vw;
overflow: hidden;
}
Чтобы различить две панели, назначьте разные цвета фона для двух панелей соответственно. убедисьtopЗначение z-index другой панели больше, чем у другой панели, чтобы гарантировать, чтоtopЭта панель находится поверх другой.
.bottom {
background-color: rgb(44, 44, 44);
z-index: 1;
}
.top {
background-color: rgb(77, 69, 173);
z-index: 2;
}
Чтобы добиться вышеупомянутого эффекта разделения экрана, вам нужно установить ширину панели равной половине всей ширины, чтобы получить эффект, показанный на следующем рисунке:
JavaScript
Теперь, когда весь эффект пользовательского интерфейса завершен, следующим шагом будет использование JavaScript для достижения интерактивного эффекта разделения экрана. Сначала определите функцию, которая выполняется при загрузке DOM:
document.addEventListener('DOMContentLoaded', function() {
});
Затем определите некоторые основные переменные, которыми необходимо управлять, например панель, ручное управление и т. д.
var parent = document.querySelector('.splitview'),
topPanel = parent.querySelector('.top'),
handle = parent.querySelector('.handle'),
нестандартная ручка
Ручка используется для улучшения визуальных характеристик разделенного экрана.
/* Handle. */
.handle {
height: 100%;
position: absolute;
display: block;
background-color: rgb(253, 171, 0);
width: 5px;
top: 0;
left: 50%;
z-index: 3;
}
Чтобы улучшить визуальную производительность разделенного экрана, маркер здесь представляет собой желтую линию шириной 5 пикселей с той же высотой, что и область содержимого.z-indexравно 3, чтобы убедиться, что он находится над обеими панелями.
подвижная ручка
Когда мышь перемещается по виду, значение координаты мыши можно получить, прослушивая событие мыши.event.clientX, такие как left и другие значения. Затем присвойте значение слева от маркера, чтобы маркер мог двигаться вместе с движением мыши.
parent.addEventListener('mousemove', function(event) {
// Move the handle.
handle.style.left = event.clientX + 'px';
});
Точно так же для достижения эффекта разделения экрана, который следует за движением мыши, также необходимо динамически изменять значение панели и изменять ширину панели в реальном времени в соответствии со значением координат движения мыши. то есть ширина панели равна значению движения мыши.event.clientX.
parent.addEventListener('mousemove', function(event) {
// Move the handle.
handle.style.left = event.clientX + 'px';
// Adjust the top panel width.
topPanel.style.width = event.clientX + 'px';
});
Суммировать
Простая визуализация разделенного экрана сделана. Вы также можете изменить визуальное представление с помощью стилей. Например, здесь я использую преобразование в CSS, чтобы сделать разделенный экран скошенным визуальным эффектом. Подробный код можно посмотреть здесь.демонстрационный адрес.
Эта статья в основном изHow to Create a Split-Screen Slider With JavaScriptВ этой статье разобрали, есть пропуски, пропуски или непонятные места, дайте пожалуйста еще совет!