var homeMove = (function () {

//touch自适应
var k = "ontouchend" in window ? "touchend" : "click";

var isdrag = false;
var moveid = document.getElementById("moveid");
var sWidth = document.body.clientWidth;
var sHeight = document.documentElement.clientHeight; //window.screen.height;
var width = moveid.offsetWidth;
var height = moveid.offsetHeight;
var tx, x;
var ty, y;
var i = 0, j = 0; ;

function movemousex(e) {

  e.preventDefault();

  if (isdrag) {
    var n = tx + e.touches[0].pageX - x;
    var maxWidth = sWidth - width;
    if (n > maxWidth) {
      n = maxWidth;
    } else if (n < 0) {
      n = 0;
    }
    $('#moveid').css("left", n);
    return false;
  }
}

function selectmousex(e) {

  isdrag = true;
  tx = parseInt(moveid.offsetLeft + 0);
  x = e.touches[0].pageX;
  return false;
}

function movemousey(e) {
  e.preventDefault();
  if (isdrag) {
    var n = ty + e.touches[0].pageY - y;
    var maxHeight = sHeight - height;
    if (n > maxHeight) {
      n = maxHeight;
    } else if (n < 0) {
      n = 0;
    }
    $('#moveid').css("top", n);
    return false;
  }
}

function selectmousey(e) {

  isdrag = true;
  ty = parseInt(moveid.offsetTop + 0);
  y = e.touches[0].pageY;
  return false;
}

function addMoveEvent() {
  moveid.addEventListener('touchend', function () {
    isdrag = false;
  });
  moveid.addEventListener('touchstart', selectmousex);
  moveid.addEventListener('touchmove', movemousex, false);
  moveid.addEventListener('touchstart', selectmousey);
  moveid.addEventListener('touchmove', movemousey, false);
  moveid.onclick = function () {
    window.location.href = "/";
  }
}

return { addMoveEvent: addMoveEvent };

} ());

$(function () {
  homeMove.addMoveEvent();
});

移动端 touch 实现 拖动元素的更多相关文章

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

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

  2. 移动端 touch

    原文链接:http://caibaojian.com/mobile-touch-event.html 本文主要介绍 TouchEvent 相关的一些对象与属性如 Touch, TouchList, t ...

  3. JavaScript 实现鼠标拖动元素

    一.前言 最开始实现鼠标拖动元素的目的就是在一个页面上拖动很多小圆点,用于固定定位,然后在复制HTML,粘贴在页面的开发代码中,就是这么一个功能,实现了很多遍,都没有做好,不得已采用了jQuery.f ...

  4. 原生 JS 实现移动端 Touch 滑动反弹

    什么是 Touch滑动?就是类似于 PC端的滚动事件,但是在移动端是没有滚动事件的,所以就要用到 Touch事件结合 js去实现,效果如下: 1. 准备工作 什么是移动端的 Touch事件?在移动端 ...

  5. 关于js拖拽功能,拖拽元素的position:fixed;left:0;right:0;样式引起左右拖动元素会出现落后鼠标移动距离的问题

    被拖拽元素的样式如果为:position:fixed;left:0;right:0;(当时是为了让fixed定位的元素水平居中加的left:0;right:0;避免js动态计算定位的麻烦)时左右拖动会 ...

  6. 拖动元素,自由变换位置 jquery

    拖动元素,将改元素插入到某个元素前/后,并返回当前所在的位置的索引值,代码如下: <!DOCTYPE html><html lang="en"><he ...

  7. 移动端touch拖动事件和click事件冲突问题解决

    通过一个悬浮球交互功能的案例来阐述问题,以及解决办法. 实现效果 类似微信里的悬浮窗效果,苹果手机的悬浮球功能效果 可以点击拖动,然后吸附在窗口边缘 点击悬浮球,可以跳转界面,或者更改悬浮球的形态 准 ...

  8. js实现一个可以兼容PC端和移动端的div拖动效果

    前段时间写了一个简单的div拖动效果,不料昨天项目上正好需要一个相差不多的需求,就正好用上了,但是在移动端的时候却碰到了问题,拖动时候用到的三个事件:mousedown.mousemove.mouse ...

  9. 移动端touch触屏滑动事件、滑动触屏事件监听!

    一.触摸事件 ontouchstart.ontouchmove.ontouchend.ontouchcancel 目前移动端浏览器均支持这4个触摸事件,包括IE.由于触屏也支持MouseEvent,因 ...

随机推荐

  1. bzoj1084

    乍一看这题好难,根本不会: 直到看到1<=m<=2…… 显然分类讨论dp, 很快想到这题的dp和poj2430相类似 m=2的时候f[i,j,k]表示到第i行用了j个矩阵结尾状态为k时最大 ...

  2. addlinkedserver

    http://blog.sina.com.cn/s/blog_5321db9d0100f89g.html --创建链接服务器 exec sp_addlinkedserver  'ITSV ', ' ' ...

  3. .net,sessionState的Session共享问题解决方案

    最近项目因为要负载均衡所以就使用了sessionState的Session共享,但是却发现多台服务器中有个别服务器的Session没有共享,于是就有了这篇文章,下面开始说说. 这个基本上就分两种情况: ...

  4. How to: Hide the Ribbon in SharePoint 2010

    转:http://blogs.msdn.com/b/sharepointdev/archive/2012/04/30/how-to-hide-the-ribbon-in-sharepoint-2010 ...

  5. 关于Windows Azure的常见问题-一般问题FAQ

    一般问题 什么是Windows Azure? Windows Azure 是一个灵活而开放的云平台,通过该平台,您可以在数据中心快速生成.部署和管理应用程序.Windows Azure 支持所有主流操 ...

  6. C++ 类T T t;构造时分配的内存在静态数据区 T t=new T()分配的内存在堆 这样说对吗

    C++  类T   T t;构造时分配的内存在静态数据区   T t=new T()分配的内存在堆

  7. 实用Yii扩展

    可以去官方搜索Yii扩展:Extensions | Yii PHP Framework http://www.yiiframework.com/extensions/?tag=tree Yii che ...

  8. nyoj 915 +-字符串

    +-字符串 时间限制:1000 ms  |  内存限制:65535 KB 难度:1   描述 Shiva得到了两个只有加号和减号的字符串,字串长度相同.Shiva一次可以把一个加号和它相邻的减号交换. ...

  9. (一)Memcached初学教程之安装服务篇(Windows下)

    1.下载Memcached的Windows服务安装程序(备注:memcached官网:http://memcached.org/ ,没有提供windows下的安装包,只有UNIX下的安装包,我们这里用 ...

  10. Java-日历表

    效果图 import java.util.*; import java.text.*; class demo { public static void main(String[] args) { // ...