zoukankan      html  css  js  c++  java
  • mobile_竖向滑屏

    竖向滑屏

    元素最终事件 = 元素初始位置 + 手指滑动距离

    • 移动端,"手指按下","手指移动" 两个事件即可(且不需要嵌套),有需要时才使用 "手指离开事件"

     

    • 滑屏相关事件
    • 给父元素绑定,是为了全屏滑动
    • 开启定位
    • 上滑,下滑范围限定

     

    • 3
    • <!DOCTYPE html>
      <html>
          <head>
              <meta charset="UTF-8" />
              <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no" />
              <title>Slide</title>
      
              <style type="text/css">
                  * {
                      padding: 0;
                      margin: 0;
                  }
                  
                  a {
                      text-decoration: none;
                  }
                  
                  ul,
                  ol {
                      list-style: none;
                  }
                  
                  input {
                      outline: none;
                  }
                  
                  img {
                      display: block;
                  }
                  
                  html,
                  body {
                      height: 100%;
                      overflow: hidden;
                  }
                  
                  /**** ****/
                  #wrap {
                      width: 100%;
                      height: 100%;
                      
                      font: 14px Helvetica, Arial, sans-serif;
                      background-color: #96b377;
                  }
                  
                  #content {
                      position: relative;
                  }
              </style>
          </head>
          
          <body>
              
              <!--模拟手机屏幕-->
              <section id="wrap">
                  <div id="content">
                      
                  </div>
              </section>
              
              
              
              
              <!-- javascript 代码 -->
              <script type="text/javascript">
                  // 取消默认行为
                  document.addEventListener("touchstart", function(e){
                      e.preventDefault();
                  }, false);
                  
                  // 点透处理
                  
                  // 适配
                  
                  var wrap = document.querySelector("#wrap");
                  var content = document.querySelector("#content");
                  for(var i=0; i<100; i++){
                      content.innerHTML += i+"<br />";
                  };
                  
                  console.log("视觉视口"+window.innerWidth+"*"+window.innerHeight);
                  console.log("布局视口"+document.documentElement.clientWidth+"*"+document.documentElement.clientHeight);
                  
                  bindEleSlide(content, wrap);
                  
                  // 竖向滑屏事件      滑动元素  父元素     回调函数
                  function bindEleSlide(slideEle, parentEle, callBack){
                      var oldFingerY = 0;
                      var oldEleY = 0;
                      
                      parentEle.addEventListener("touchstart", function(e){
                          finger = e.changedTouches;
                          
                          oldFingerY = finger[0].clientY;
                          oldEleY = slideEle.offsetTop;
                      }, false);
                      
                      parentEle.addEventListener("touchmove", function(e){
                          finger = e.changedTouches;
                          
                          var newFingerY =  finger[0].clientY;
                          var newEleY = oldEleY + (newFingerY - oldFingerY);
                          if(newEleY > 0){
                              newEleY = 0;
                          }else if(newEleY < document.documentElement.clientHeight - slideEle.clientHeight){
                              newEleY = document.documentElement.clientHeight - slideEle.clientHeight;
                          }
                          
                          slideEle.style.top = newEleY+"px";
                          
                          callBack && callBack();
                      }, false);
                  };
                  
              </script>
          </body>
      </html>

     

    --------小尾巴 ________一个人欣赏-最后一朵颜色的消逝-忠诚于我的是·一颗叫做野的心.决不受人奴役.怒火中生的那一刻·终将结束...
  • 相关阅读:
    WPF 中 TextBlock 文本换行与行间距
    WPF中TextBox文件拖放问题
    WPF 自定义鼠标光标
    矩形覆盖
    跳台阶和变态跳台阶
    用两个栈实现队列
    重建二叉树
    从尾到头打印链表
    替换空格
    斐波那契数列
  • 原文地址:https://www.cnblogs.com/tianxiaxuange/p/10011569.html
Copyright © 2011-2022 走看看