竖向滑屏

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

  • 移动端,"手指按下","手指移动" 两个事件即可(且不需要嵌套),有需要时才使用 "手指离开事件"
  • 滑屏相关事件
  • 给父元素绑定,是为了全屏滑动
  • 开启定位
  • 上滑,下滑范围限定
  • 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>

mobile_竖向滑屏的更多相关文章

  1. H5单页面手势滑屏切换原理

    H5单页面手势滑屏切换是采用HTML5 触摸事件(Touch) 和 CSS3动画(Transform,Transition)来实现的,效果图如下所示,本文简单说一下其实现原理和主要思路. 1.实现原理 ...

  2. 【原】移动web滑屏框架分享

    本月26号参加webrebuild深圳站,会上听了彪叔的对初心的讲解,“工匠精神”这个词又一次被提出,也再次引起了我对它的思考.专注一个项目并把它做得好,很好,更好...现实工作中,忙忙碌碌,抱着完成 ...

  3. iOS - 滑屏方案

    参考自:iOS开发- 通过ChildViewCotroller ViewController容器 产品增加新的版面,类似于网易新闻,百度新闻,腾讯新闻等新闻客户端首页多屏幕滑屏切换,找了一些开源代码研 ...

  4. 移动端框架篇-控制子容器的滑屏框架-fullPage.js

    控制子容器法 方法是只显示其中一个子元素,其它隐藏,滑屏时隐藏当前元素,并显示当前元素的下一个同辈元素~ 这里采用fullPage框架,库大小7.69K~ fullPage框架的页面样式无需自定义,已 ...

  5. 移动端框架篇-控制父容器的滑屏框架-slip.js

    设计滑屏框架的办法一般有2种 控制父容器法 控制子容器法 这个算是控制父容器法 通过控制父容器的transform: translateY或margin-top或top的值来上下滑动页面,每次的位移的 ...

  6. H5案例分享:移动端滑屏 touch事件

    移动端滑屏 touch事件 移动端触屏滑动的效果的效果在电子设备上已经被应用的越来越广泛,类似于PC端的图片轮播,但是在移动设备上,要实现这种轮播的效果,就需要用到核心的touch事件.处理touch ...

  7. H5案例分享:移动端touch事件判断滑屏手势的方向

    移动端touch事件判断滑屏手势的方向 方法一 当开始一个touchstart事件的时候,获取此刻手指的横坐标startX和纵坐标startY: 当触发touchmove事件时,在获取此时手指的横坐标 ...

  8. 利用轮播原理结合hammer.js实现简洁的滑屏功能

    最近有个任务,做一个非常小的h5的应用,只有2屏,需要做横向的全屏滑动切换和一些简单的动画效果,之前做这种东西用的是fullpage.js和jquery,性能不是很好,于是就想自己动手弄一个简单的东西 ...

  9. jmSlip WEB前端滑屏组件

    基于css3的滑屏组件 demo: http://slip.jm47.com 下载: https://github.com/jiamao/jmSlip 功能清单 区域横滚 整屏竖滚 滚动动画效果 区域 ...

随机推荐

  1. 在鼠标右键上加入使用notepad++编辑【转】

    我们在安装完notepad++文本编辑器之后,在一个文本文件上右键有时候并没有出现“使用notepad++编辑的选项”,我们可以通过简单地修改注册表文件来增加这样的功能: 1.  首先打开注册表,wi ...

  2. git 重命名本地分支,并提交到远程

    1.重命名 git branch -m oldBranchName newBranchName 2.删除远程分支:git push origin :oldBranchName 3.将重命名过的分支提交 ...

  3. eclipse下classes文件夹无法发布到tomcat的问题--tomcat发布慢的问题

    === 解决eclipse下classes文件夹无法发布到tomcat的问题_Nautilus_新浪博客http://blog.sina.com.cn/s/blog_484d8777010130n5. ...

  4. 最简单有效的关于linux下配置Git操作免登录ssh公钥

    ssh-keygen -t rsa -b 4096 -C “someone@xxx.com” 然后回车三连击… 进入目录(执行cd ~/.ssh),可以看到当前目录下多出两个文件 id_rsa.pub ...

  5. Visual studio 配置

    解决方案 一个解决方案的文件结构: .sln        项目目录         debug   release 其中,debug与release放置最终生成的dll或exe,项目目录下包含 头文 ...

  6. vue ajax返回html代码不渲染解决

    <span v-html='lists.html'></span>

  7. unity 网页加载AB问题

    下载一次后会缓存,清理一下就能加载新的同名AB了 AssetBundle.onload

  8. Flask开发微电影网站(八)

    1.后台管理之电影预告管理 1.1 定义电影预告表单 在app的admin目录的forms.py文件中,定义电影预告表单 # 预告表单 class PreviewForm(FlaskForm): ti ...

  9. 记录一下,PC端vue开发常用框架,已经用过elementUI和iview 接下来尝试另一个Muse-UI 喜欢它的点击效果

    官网地址: https://muse-ui.org/#/zh-CN/installation

  10. java 读取本地文件并转换为byte数组

    private byte[] InputStream2ByteArray(String filePath) throws IOException { InputStream in = new File ...