限时优惠活动
亲爱的苦力吧用户,我们为了回馈新老用户一直以来的鼎力支持,即日起(2025-02-06至2025-03-06)凡是购买苦力吧VIP/充值K币的新老用户,都直接可获得买一送一的优惠馈赠。例如:购买一个月的VIP会员可直接获得两个月的VIP会员;充值100K币可直接获得200K币,以此类推!有任何疑问可联系在线客服,感谢各位用户对苦力吧素材的信任与厚爱,我们将一如既往的给大家上新更多优质的素材源码,祝大家开工大吉、工作顺利、心想事成。

javascript实现的支持移动端触摸鼠标拖拽的DIV元素

所属分类: 网页特效-其它&杂项    2023-11-25 11:24:20

javascript实现的支持移动端触摸鼠标拖拽的DIV元素 ie兼容6
 查看演示  登录后下载 温馨提示
登录会员即可享受免费下载
 我要建站

javascript实现的支持移动端触摸鼠标拖拽的DIV元素(共3个文件)

    • index.html

使用方法

let mover;
let offsets;
let position;

function addEvent(type, callback, target = document) {target.addEventListener(type, callback, false);}
function removeEvent(type, callback, target = document) {target.removeEventListener(type, callback);}

function offsetPosition(target) {
  let node = target;
  let X = 0;
  let Y = 0;

  do {
    X += node.offsetLeft;
    Y += node.offsetTop;
    node = node.offsetParent;
  } while (
  node);

  return { X, Y };
}
function parentsUntilMatch(target, filter) {
  if (!target || target.nodeType === 9) return null;
  switch (true) {
    case 'matchesSelector' in target:
      if (target.matchesSelector(filter)) return target;
      break;
    case 'mozMatchesSelector' in target:
      if (target.mozMatchesSelector(filter)) return target;
      break;
    case 'msMatchesSelector' in target:
      if (target.msMatchesSelector(filter)) return target;
      break;
    case 'oMatchesSelector' in target:
      if (target.oMatchesSelector(filter)) return target;
      break;
    case 'webkitMatchesSelector' in target:
      if (target.webkitMatchesSelector(filter)) return target;
      break;
    default:
      if (target.matches(filter)) return target;
      break;}

  return parentsUntilMatch(target.parentNode, filter);
}
function styleStringFromObj(obj) {
  let str = '';

  for (const prop in obj) {
    str += `${prop}:${obj[prop]};`;
  }

  return str;
}

function mousedown(isTouch = false) {
  const MOVE = isTouch ? 'touchmove' : 'mousemove';
  const END = isTouch ? 'touchend' : 'mouseup';

  return function caller(evt) {
    const target = parentsUntilMatch(evt.target, '.js-is-draggable');

    if (!target) return;

    mover = target;
    offsets = { X: evt.pageX, Y: evt.pageY };
    position = offsetPosition(mover);
    mover.setAttribute('style', styleStringFromObj({
      position: 'relative',
      top: `${position.Y}px`,
      left: `${position.X}px` }));


    mover.classList.add('js-is-dragging');
    mover.setAttribute('aria-grabbed', true);

    addEvent(MOVE, mousemove);
    addEvent(END, mouseup(isTouch));
  };
}
function mousemove(evt) {
  // evt.preventDefault();
  // new offsets based on mouse position
  const newOffsets = {
    X: evt.pageX,
    Y: evt.pageY };


  const newY = position.Y + (newOffsets.Y - offsets.Y);
  const newX = position.X + (newOffsets.X - offsets.X);

  // update styles
  mover.style.top = newY + 'px';
  mover.style.left = newX + 'px';

  // update object
  offsets = newOffsets;

  // update position
  position = { X: newX, Y: newY };
}
function mouseup(isTouch = false) {
  const MOVE = isTouch ? 'touchmove' : 'mousemove';
  const END = isTouch ? 'touchend' : 'mouseup';

  return function caller(evt) {
    removeEvent(MOVE, mousemove);
    removeEvent(END, caller);

    mover.classList.remove('js-is-dragging');
    mover.setAttribute('aria-grabbed', false);

    mover = offsets = position = undefined;
  };
}

addEvent('mousedown', mousedown());
addEvent('touchstart', mousedown(true));

站长提示:
1. 苦力吧素材官方QQ群:950875342
2. 平台上所有素材资源,需注册登录会员方能正常下载。
3. 会员用户积极反馈网站、素材资源BUG或错误问题,每次奖励2K币
4. PHP源码类素材,如需协助安装调试,或你有二次开发需求,可联系苦力吧客服。
5. 付费素材资源,需充值后方能下载,如有任何疑问可直接联系苦力吧客服
相关资源 / 其它&杂项

jquery简单的日历每日签到功能代码

一款绿色日历签到插件,带统计当月签到次数,很不错的特效!
  其它&杂项
 5273  0

jquery支持缓存存储和添加删除的购物车特效代码

这是一个购物车特效,鼠标点击商品图片可将产品添加到购物车中,并将商品信息存储在本地缓存中。除了允许用户添加/删除商品外,点击结账按钮弹出会员登录表单弹出层。
  其它&杂项
 6326  0

jquery多功能可自定义的table表格插件

一款轻量级table表格插件,支持加载大量的数据,自动配置水平、垂直滚动条,table表格中的每列支持升序、降序自动排序。
  其它&杂项
 825  0

jquery页面加载完所有img图片后再执行代码特效

一款图片成功加载后再执行插件,可在页面DOM中的所有图片(含img或背景图片)成功加载后运行代码。
  其它&杂项
 5299  0

评论数(0) 回复有机会获得K币 用户协议

^_^ 还没有人评论,快来抢个沙发!
😀
  • 😀
  • 😊
  • 😂
  • 😍
  • 😑
  • 😷
  • 😵
  • 😛
  • 😣
  • 😱
  • 😋
  • 😎
  • 😵
  • 😕
  • 😶
  • 😚
  • 😜
  • 😭
发表评论