#javascript #html #css
#javascript #HTML #css
Вопрос:
Обновлено для наглядности:
У меня есть функция javascript, которая преобразует обычную прокрутку колесика мыши в горизонтальную прокрутку. Это само по себе, похоже, работает. Я хочу, чтобы эта функция активировала прокрутку привязки css. Когда я добавляю CSS, функция не работает. Чтобы было ясно, shift scroll
это работает. Для работы мне нужна обычная прокрутка.
Я использую следующий код.
//a function to convert normal mousewheel scroll to horizontal scroll
(function() {
function scrollHorizontally(e) {
e = window.event || e;
var delta = Math.max(-1, Math.min(1, (e.wheelDelta || -e.detail)));
document.getElementById('flexall-container').scrollLeft -= (delta * 40); // Multiplied by 40
e.preventDefault();
}
})();
/* some body style */
body {
overflow-y:hidden;
overflow-x:scroll;
}
/*style the parent div*/
#flex-container {
display: flex;
flex-direction: row;
overflow-x: scroll;
pointer-events: all;
scroll-snap-type: x mandatory;
}
/* a class to create each page */
.flexall-container-child {
scroll-snap-align: start;
/* parent properties */
display: flex;
flex-direction: column;
align-items: baseline;
/* child properties */
height: 100vh;
flex-shrink: 0;
flex-grow: 0;
flex-basis: 100%;
white-space: nowrap;
}
<!--parent div-->
<div id="flex-container">
<!-- page 1-->
<section id="page01-container" class="flexall-container-child">
<!-- some arbitrary content-->
<h1 id="title-text">
Title
</h1>
<h3 id="title-subheader">
Subtitle
</h3>
</section>
<!-- page 2-->
<section id="page02-container" class="flexall-container-child">
<!--some more arbitrary content-->
<h1 id="title-text-2">Page 2 Title</h1>
</section>
</div>
Любая помощь будет оценена. Спасибо.
Ответ №1:
В вашем коде была (по крайней мере) одна опечатка: вы назвали класс с префиксом точки в своем HTML:
class=".flexall-container-child"
.
Я удалил части, которые не имели отношения к сути вопроса, и это работает отлично:
body {
overflow-y: hidden;
overflow-x: scroll;
}
#flex-container {
display: flex;
flex-direction: row;
overflow-x: scroll;
scroll-snap-type: x mandatory;
}
.flexall-container-child {
scroll-snap-align: start;
height: 100vh;
flex: 0 0 100%;
}
<div id="flex-container">
<section id="page01-container" class="flexall-container-child">
<h1 class="page-title">Page 1 Title</h1>
</section>
<section id="page02-container" class="flexall-container-child">
<h1 class="page-title">Page 2 Title</h1>
</section>
</div>
Комментарии:
1. «Прокрутка сдвига» работает отлично, но это не устраняет первоначальную проблему, с которой я столкнулся, когда прокрутка pure js, по-видимому, не работала. По крайней мере, это, похоже, не работает для меня. Я прошу прощения, если мой вопрос был недостаточно ясен, редактируя его сейчас.