Я тестировал его в разных современных браузерах, поэтому проблем с совместимостью быть не может. Я использую приложение create-реагировать со стилизованными компонентами, вот мой код:
import React, { Component } from 'react';
import styled, { createGlobalStyle } from 'styled-components';
const GlobalStyle = createGlobalStyle`
@import url('https://fonts.googleapis.com/css?family=Merriweather|Oleo+Script');
`
const Wrapper = styled.div`
scroll-snap-type: y mandatory;
display: flex;
flex-direction: column;
font-size: 16px;
`
const Home = styled.div`
scroll-snap-align: center;
height: 100vh;
background-color: yellow;
display: flex;
flex-direction: row;
`
const Menu = styled.div`
scroll-snap-align: center;
height: 100vh;
background-color: blue;
display: grid;
`
const Speciality = styled.div`
scroll-snap-align: center;
height: 100vh;
background-color: green;
`
class App extends Component {
render() {
return (
<Wrapper>
<GlobalStyle />
<Home />
<Menu />
<Speciality />
</Wrapper>
);
}
}
export default App;
Это ничего не делает, когда я прокручиваю, я пробовал почти все. Он также не будет работать без стилизованных компонентов.
Обновлено: я скопировал свой код в коды и ящик: https://codesandbox.io/s/72jmn1p1w1
@Mikkel это должно прокручиваться так: i.imgur.com/vMW8ALh.gif
У меня также возникают проблемы с созданием привязки прокрутки css со стилизованными компонентами в React. Я интегрировал тот же код, что и snap.glitch.me/product.html, но не смог заставить его работать.






Вместо того, чтобы применять scroll-snap-type: y mandatory к родительскому div, попробуйте применить его к html:
html {scroll-snap-type: y mandatory}
У меня тоже были проблемы с scroll-snap.
Для меня это не работает без overflow-y: scroll, попробуйте поместить это на свою обертку.
В вашей песочнице кода я заменил код элемента Wrapper следующим, чтобы он работал:
const Wrapper = styled.div`
scroll-snap-type: y mandatory;
max-height: 100vh;
overflow-y: scroll;
`;
Это устраняет несколько проблем:
в хроме нормально прокручивается - что именно не так?