предотвратить перемещение неподвижного элемента на смартфоне - PullRequest
0 голосов
/ 26 апреля 2020

У меня работает следующий фрагмент, за исключением случаев, когда вы прокручиваете до нижней части # section-container фиксированный элемент вверху. Как я могу предотвратить это на смартфоне?

html {
  margin: 0;
  padding: 0;
  height: 100%;
  width: 100%; 
  background-color: orange;
}

body {
  margin: 0;
  padding: 0;
  height: 100%;
  width: 100%; 
}

#container {
  position: -webkit-sticky;
  position:sticky;
  height: 80%;
  width: 100%;
  top: 20%;
  background-color: purple;
}

#fixed {
  position: -webkit-sticky;
  position:sticky;
  top: 0;
  height: 20%;
  width: 100%;
  background-color: lightblue;
}

#section-container {
  height: 100%;
  overflow: scroll;
}

.sections {
  height: 100%;
}

#section1,
#section3 {
  background-color: blue;
}

#section2 {
  background-color: red;
}
<!DOCTYPE html>
<html>

<head>
  <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1">
  <title>scroll</title>

</head>

<body>
  <div id='fixed'>

  </div>
  <div id='container'>

    <div id='section-container'>
      <div id='section1' class='sections'>

      </div>
      <div id='section2' class='sections'>

      </div>
      <div id='section3' class='sections'>

      </div>
    </div>
  </div>
</body>

</html>

1 Ответ

0 голосов
/ 26 апреля 2020

Я нашел библиотеку js с именем bodyScrollLock, которая работает. Похоже, много работы происходит так просто. У кого-нибудь есть более родное решение?

<!DOCTYPE html>
<html>
    <head>
        <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1" >
        <title>scroll</title>
        <script src="https://www.sustainablewestonma.org/swag/public/js/bodyScrollLock.min.js?test0=xxx"></script>
        <style>
            html{
                margin:0;
                padding:0;
                height:100%;
                width:100%;
                background-color:orange;
            }
            body{
                margin:0;
                padding:0;
                height:100%;
                width:100%;
            }
            #container{
                position: -webkit-sticky;
                position:sticky;
                height:80%;
                width:100%;
                top:20%;
                background-color:purple;
            }
            #fixed{
                position: -webkit-sticky;
                position:sticky;
                top:0;
                height:20%;
                width:100%;
                background-color:lightblue;
            }
            #section-container{
                height:100%;
                overflow:scroll;
                
            }
            .sections{
                height:100%;
            }
            #section1,#section3{
                background-color:blue;
            }
            #section2{
                background-color:red;
            }
        </style>
    </head>
    <body id='myBody'>
        <div id='fixed'>
                
        </div>
        <div id='container'>
            
            <div id='section-container'>
                <div id='section1' class='sections'>
                    
                </div>
                <div id='section2' class='sections'>
                    
                </div>
                <div id='section3' class='sections'>
                    
                </div>
            </div>
        </div>
        <script>
            const scrollElement = document.getElementById('section-container');
            bodyScrollLock.disableBodyScroll(scrollElement);
        </script>
    </body>
</html>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...