zoukankan      html  css  js  c++  java
  • Html5 移动端 触摸滑动事件

    以下代码经过测试  没有问题 且可以循环滑动

    <!DOCTYPE html>
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta name="renderer" content="webkit">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>html5测试</title>
    <link href="Css/Index.css" rel="stylesheet" />
    </head>
    <body>
    <div id="Index" style="text-align: center; auto;">
    <img src="img/1.jpeg" class="imagestart" style="display: block;" data-id="1" />
    <img src="img/2.jpeg" class="imagestart" data-id="2" />
    <img src="img/3.jpeg" class="imagestart" data-id="3" />
    </div>
    <script src="/js/jquery-1.12.4.min.js"></script>
    <script>
    //初始化获取浏览器的屏幕的宽度
    var LoadWidth = parseInt($(window).width());
    //初始化触摸起点X轴
    var loadX = 0;
    //初始化触摸起点Y轴
    var loadY = 0;
    //初始化鼠标松开的X轴
    var MoveUp = 0;

    $(function () {
    //
    $(".imagestart").on('touchstart', function (e) {
    var id = e.originalEvent.targetTouches[0];
    //获取鼠标的起始位置x
    var x = id.pageX;
    //赋值起始位置x
    loadX = x;
    //点击时赋值鼠标起来的坐标 在移动的时候会更新这个变量
    MoveUp = x;
    //获取鼠标的起始位置y
    var y = id.pageY;
    loadY = y;
    $(this).css('position', 'fixed');
    })
    //

    //
    $(".imagestart").on("touchmove", function (e) {
    var id = e.originalEvent.targetTouches[0];
    //获取鼠标的每次移动位置x
    var x = id.pageX;
    MoveUp = x;
    //获取鼠标的每次移动位置y
    var y = id.pageY;
    var ThisLoad = $(this);var ddd = x - loadX;
    //移动元素
    ThisLoad.animate({ 'left': x - loadX + "px" }, 0);

    if ($(this).attr("data-id") == 3) {
    //$(".imagestart").hide();
    $(".imagestart").eq(0).show();
    } else {
    $(this).next().show();
    }
    })
    //

    //
    $(".imagestart").on("touchend", function (e) {
    //当手指松开的时候 计算鼠标移动开始到结束 x轴变化多少
    var MoveX = loadX - MoveUp;
    if (MoveX<0) {
    MoveX = MoveUp - loadX;
    }

    $(".imagestart").css("left", "0px");
    //如果移动的x轴 大于浏览器宽度的3/10 则换图片
    if (MoveX / LoadWidth > 0.4) {
    if ($(this).attr("data-id") == 3) {
    //隐藏所有
    $(".imagestart").hide();
    //清空元素的style
    $(".imagestart").removeAttr("style");
    //让第一个显示
    $(".imagestart").eq(0).css("display", "block");
    } else {
    //隐藏当前
    $(this).css("display", "none");
    //显示下一个元素
    $(this).next().show();
    }

    } else {
    //如果移动的位置屏幕的40%小于 则图片返回到初始的位置
    $(this).animate({ "letf": "0px" },0);
    }
    //恢复初始坐标
    loadX = 0;
    //恢复鼠标松开坐标
    MoveUp = 0;

    })
    //

    })
    </script>
    </body>
    </html>

  • 相关阅读:
    C++学习基础十六-- 函数学习笔记
    OpenGL ES平移矩阵和旋转矩阵的左乘与右乘效果
    C++学习基础十五--sizeof的常见使用
    C++学习基础十四——基础类型vector
    XDGE_DefalutLit 物理渲染总结-01
    XDGEUnity XDGEPipeLine
    XDGE Render-启程
    一次BSSDF引发的惨案----搬家狂删除
    XDGE_RayMarchine 1- 利用Frag Shader绘制图形
    XDGE_AccelerationAlgorithms 01
  • 原文地址:https://www.cnblogs.com/cnhonker/p/7401191.html
Copyright © 2011-2022 走看看