javascript - iScroll:不要移动到页面之外

标签 javascript iscroll

如何防止 iScroll 移出页面?

https://github.com/cubiq/iscroll/blob/master/demos/simple/index.html

即。这个:

enter image description here

向上滚动时变成这样:

enter image description here

var myScroll;

function loaded() {
  myScroll = new IScroll('#wrapper', {
    mouseWheel: true
  });
}

document.addEventListener('touchmove', function(e) {
  e.preventDefault();
}, false);
* {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}
html {
  -ms-touch-action: none;
}
body,
ul,
li {
  padding: 0;
  margin: 0;
  border: 0;
}
body {
  font-size: 12px;
  font-family: ubuntu, helvetica, arial;
  overflow: hidden;
  /* this is important to prevent the whole page to bounce */
}
#header {
  position: absolute;
  z-index: 2;
  top: 0;
  left: 0;
  width: 100%;
  height: 45px;
  line-height: 45px;
  background: #CD235C;
  padding: 0;
  color: #eee;
  font-size: 20px;
  text-align: center;
  font-weight: bold;
}
#footer {
  position: absolute;
  z-index: 2;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 48px;
  background: #444;
  padding: 0;
  border-top: 1px solid #444;
}
#wrapper {
  position: absolute;
  z-index: 1;
  top: 45px;
  bottom: 48px;
  left: 0;
  width: 100%;
  background: #ccc;
  overflow: hidden;
}
#scroller {
  position: absolute;
  z-index: 1;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
  width: 100%;
  -webkit-transform: translateZ(0);
  -moz-transform: translateZ(0);
  -ms-transform: translateZ(0);
  -o-transform: translateZ(0);
  transform: translateZ(0);
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  -webkit-text-size-adjust: none;
  -moz-text-size-adjust: none;
  -ms-text-size-adjust: none;
  -o-text-size-adjust: none;
  text-size-adjust: none;
}
#scroller ul {
  list-style: none;
  padding: 0;
  margin: 0;
  width: 100%;
  text-align: left;
}
#scroller li {
  padding: 0 10px;
  height: 40px;
  line-height: 40px;
  border-bottom: 1px solid #ccc;
  border-top: 1px solid #fff;
  background-color: #fafafa;
  font-size: 14px;
}
<!DOCTYPE html>
<html>

<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=0, minimum-scale=1.0, maximum-scale=1.0">

  <title>iScroll demo: simple</title>

  <script type="text/javascript" src="https://rawgit.com/cubiq/iscroll/master/build/iscroll.js"></script>

  <script type="text/javascript">
  </script>

  <style type="text/css">
  </style>
</head>

<body onload="loaded()">
  <div id="header">iScroll</div>

  <div id="wrapper">
    <div id="scroller">
      <ul>
        <li>Pretty row 1</li>
        <li>Pretty row 2</li>
        <li>Pretty row 3</li>
        <li>Pretty row 4</li>
        <li>Pretty row 5</li>
        <li>Pretty row 6</li>
        <li>Pretty row 7</li>
        <li>Pretty row 8</li>
        <li>Pretty row 9</li>
        <li>Pretty row 10</li>
        <li>Pretty row 11</li>
        <li>Pretty row 12</li>
        <li>Pretty row 13</li>
        <li>Pretty row 14</li>
        <li>Pretty row 15</li>
        <li>Pretty row 16</li>
        <li>Pretty row 17</li>
        <li>Pretty row 18</li>
        <li>Pretty row 19</li>
        <li>Pretty row 20</li>
        <li>Pretty row 21</li>
        <li>Pretty row 22</li>
        <li>Pretty row 23</li>
        <li>Pretty row 24</li>
        <li>Pretty row 25</li>
        <li>Pretty row 26</li>
        <li>Pretty row 27</li>
        <li>Pretty row 28</li>
        <li>Pretty row 29</li>
        <li>Pretty row 30</li>
        <li>Pretty row 31</li>
        <li>Pretty row 32</li>
        <li>Pretty row 33</li>
        <li>Pretty row 34</li>
        <li>Pretty row 35</li>
        <li>Pretty row 36</li>
        <li>Pretty row 37</li>
        <li>Pretty row 38</li>
        <li>Pretty row 39</li>
        <li>Pretty row 40</li>
        <li>Pretty row 41</li>
        <li>Pretty row 42</li>
        <li>Pretty row 43</li>
        <li>Pretty row 44</li>
        <li>Pretty row 45</li>
        <li>Pretty row 46</li>
        <li>Pretty row 47</li>
        <li>Pretty row 48</li>
        <li>Pretty row 49</li>
        <li>Pretty row 50</li>
      </ul>
    </div>
  </div>

  <div id="footer"></div>

</body>

</html>

最佳答案

来自documentation :你想为此设置 bounce:false :

var myScroll;

function loaded() {
  myScroll = new IScroll('#wrapper', {
    mouseWheel: true,
    bounce: false
  });
}

document.addEventListener('touchmove', function(e) {
  e.preventDefault();
}, false);
* {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}
html {
  -ms-touch-action: none;
}
body,
ul,
li {
  padding: 0;
  margin: 0;
  border: 0;
}
body {
  font-size: 12px;
  font-family: ubuntu, helvetica, arial;
  overflow: hidden;
  /* this is important to prevent the whole page to bounce */
}
#header {
  position: absolute;
  z-index: 2;
  top: 0;
  left: 0;
  width: 100%;
  height: 45px;
  line-height: 45px;
  background: #CD235C;
  padding: 0;
  color: #eee;
  font-size: 20px;
  text-align: center;
  font-weight: bold;
}
#footer {
  position: absolute;
  z-index: 2;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 48px;
  background: #444;
  padding: 0;
  border-top: 1px solid #444;
}
#wrapper {
  position: absolute;
  z-index: 1;
  top: 45px;
  bottom: 48px;
  left: 0;
  width: 100%;
  background: #ccc;
  overflow: hidden;
}
#scroller {
  position: absolute;
  z-index: 1;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
  width: 100%;
  -webkit-transform: translateZ(0);
  -moz-transform: translateZ(0);
  -ms-transform: translateZ(0);
  -o-transform: translateZ(0);
  transform: translateZ(0);
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  -webkit-text-size-adjust: none;
  -moz-text-size-adjust: none;
  -ms-text-size-adjust: none;
  -o-text-size-adjust: none;
  text-size-adjust: none;
}
#scroller ul {
  list-style: none;
  padding: 0;
  margin: 0;
  width: 100%;
  text-align: left;
}
#scroller li {
  padding: 0 10px;
  height: 40px;
  line-height: 40px;
  border-bottom: 1px solid #ccc;
  border-top: 1px solid #fff;
  background-color: #fafafa;
  font-size: 14px;
}
<!DOCTYPE html>
<html>

<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=0, minimum-scale=1.0, maximum-scale=1.0">

  <title>iScroll demo: simple</title>

  <script type="text/javascript" src="https://rawgit.com/cubiq/iscroll/master/build/iscroll.js"></script>

  <script type="text/javascript">
  </script>

  <style type="text/css">
  </style>
</head>

<body onload="loaded()">
  <div id="header">iScroll</div>

  <div id="wrapper">
    <div id="scroller">
      <ul>
        <li>Pretty row 1</li>
        <li>Pretty row 2</li>
        <li>Pretty row 3</li>
        <li>Pretty row 4</li>
        <li>Pretty row 5</li>
        <li>Pretty row 6</li>
        <li>Pretty row 7</li>
        <li>Pretty row 8</li>
        <li>Pretty row 9</li>
        <li>Pretty row 10</li>
        <li>Pretty row 11</li>
        <li>Pretty row 12</li>
        <li>Pretty row 13</li>
        <li>Pretty row 14</li>
        <li>Pretty row 15</li>
        <li>Pretty row 16</li>
        <li>Pretty row 17</li>
        <li>Pretty row 18</li>
        <li>Pretty row 19</li>
        <li>Pretty row 20</li>
        <li>Pretty row 21</li>
        <li>Pretty row 22</li>
        <li>Pretty row 23</li>
        <li>Pretty row 24</li>
        <li>Pretty row 25</li>
        <li>Pretty row 26</li>
        <li>Pretty row 27</li>
        <li>Pretty row 28</li>
        <li>Pretty row 29</li>
        <li>Pretty row 30</li>
        <li>Pretty row 31</li>
        <li>Pretty row 32</li>
        <li>Pretty row 33</li>
        <li>Pretty row 34</li>
        <li>Pretty row 35</li>
        <li>Pretty row 36</li>
        <li>Pretty row 37</li>
        <li>Pretty row 38</li>
        <li>Pretty row 39</li>
        <li>Pretty row 40</li>
        <li>Pretty row 41</li>
        <li>Pretty row 42</li>
        <li>Pretty row 43</li>
        <li>Pretty row 44</li>
        <li>Pretty row 45</li>
        <li>Pretty row 46</li>
        <li>Pretty row 47</li>
        <li>Pretty row 48</li>
        <li>Pretty row 49</li>
        <li>Pretty row 50</li>
      </ul>
    </div>
  </div>

  <div id="footer"></div>

</body>

</html>

关于javascript - iScroll:不要移动到页面之外,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28170437/

相关文章:

javascript - DataTables 通过 javascript 设置复杂的标题

javascript - iScroll 5 在 Windows Phone 8 上不流畅

javascript - Webworks 中的 Blackberry 固定页眉和页脚

javascript - Laravel 405 方法不允许通过 GET 调用 POST 方法

基于时间的Javascript Delivery Show

javascript - AngularJs数据绑定(bind)问题来捕获和显示状态

javascript - 桌面浏览器上的水平 iScroll 问题

javascript - 在移动浏览器的 iScroll 中启用点击事件

javascript - iScroll 视差效果

javascript - 计算某些键的值与平均值的标准差多少