javascript实现的元素拖动函数宿主为浏览器_javascript技巧

//宿主为浏览器
//将相应的元素对象的引用传到函数中
function candrag(drager) {
  drager.onmousedown = function (down) {
    var offx = drager.offsetLeft
    var offy = drager.offsetTop;
    var offxl = down.clientX - offx;
    var offyl = down.clientY - offy;
    window.condition = 0;//为window添加了condition属性,用于解决和click之间的矛盾
    document.onmousemove = function (move) {
      drager.style.left = move.clientX - offxl + "px";
      drager.style.top = move.clientY - offyl + "px";
      drager.style.cursor = "move";
      condition = Math.abs(move.clientX - down.clientX) + Math.abs(move.clientY - down.clientY);
    }
  }
  drager.onmouseup = function () {
    document.onmousemove = null;
    draggerr.style.cursor = "auto";
  }
}
/*对于和click之间的矛盾解决,需要判断condition
*例如:
candrag(dragger);
d01.onclick = function () {
  if (!condition) {
    d01.style.backgroundColor = "red";
  }
}
*其中,d01为dragger的子元素
*/ 

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索javascript
元素拖动
javascript宿主对象、javascript拖动div、javascript 拖动事件、javascript 拖动、javascript鼠标拖动,以便于您获取更多的相关知识。

时间: 2024-12-20 17:28:35

javascript实现的元素拖动函数宿主为浏览器_javascript技巧的相关文章

JavaScript操作select元素和option的实例代码_javascript技巧

废话不多说了,直接给大家贴代码,具体代码如下所示: <!DOCTYPE html PUBLIC "-//WC//DTD XHTML . Transitional//EN" "http://www.w.org/TR/xhtml/DTD/xhtml-transitional.dtd"> <html xmlns="http://www.w.org//xhtml"> <head> <title></t

javascript之典型高阶函数应用介绍二_javascript技巧

前言 在前一篇文章javascript之典型高阶函数中主要实现了几个典型的functional函数.文章最后也提出了疑问,为啥那样的实现与F#之类的函数式语言"不太一样"呢?今天来试试更"函数式"的实现. 另一种实现 同样地,尝试对之前实现的函数做一些改动,把for循环去掉.如何去掉呢?这里先要引入一个集合的归纳法定义: 一个集合要么是空集,要么是一个数与一个集合组成的数对从定义可以看到,每一个集合都可以看作为一个数和一个集合的对.例如:{1,2,4,5} 可以认为

javascript跨域请求包装函数与用法示例_javascript技巧

本文实例讲述了javascript跨域请求包装函数与用法.分享给大家供大家参考,具体如下: 一.源码 // 定义AJAX跨域请求的JSON (function(){ if(typeof window.$JSON== 'undefined'){ window.$JSON= {}; }; $JSON._ajax = function(config){ config = config[0] || {}; this.url = config.url || ''; this.type = config.t

JavaScript中省略元素对数组长度的影响_javascript技巧

在学习<JavaScript权威指南>第六版的第7.1节中通过数组直接量创建数组时,我们可以不给数组的某个元素赋值,它就会使undefined.虽然是undefined,但我们调用数组对象的length属性时undefined也会导致length加1.有如下所示的四种情况: var undef0 = [,,]; var undef1 = [1,,]; var undef2 = [,1,]; var undef3 = [,,1]; console.log(undef0.length); cons

JavaScript绑定事件监听函数的通用方法_javascript技巧

事件绑定的3中常用方法:传统绑定.W3C绑定方法.IE绑定方法.但是,在实际开发中对于我们来讲重要的是需要一个通用的.跨浏览器的绑定方法.如果我们在互联网上搜索一下会发现许多方法,以下是比较知名的几种方法: 在开始学期下面几种方法之前,应当讨论一下,一个好的addEvent()方法应当达到哪些要求: a.支持同一元素的同一事件句柄可以绑定多个监听函数: b.如果在同一元素的同一事件句柄上多次注册同一函数,那么第一次注册后的所有注册都被忽略: c.函数体内的this指向的应当是正在处理事件的节点(

javascript笔记 String类replace函数的一些事_javascript技巧

我最近查阅javascript资料,发现了一个函数: 复制代码 代码如下: function format(s) { var args = arguments; var pattern = new RegExp("%([1-" + arguments.length + "])","g"); return String(s).replace(pattern,function(word,index){ return args[index]; });

深入理解JavaScript系列(15) 函数(Functions)_javascript技巧

介绍 本章节我们要着重介绍的是一个非常常见的ECMAScript对象--函数(function),我们将详细讲解一下各种类型的函数是如何影响上下文的变量对象以及每个函数的作用域链都包含什么,以及回答诸如像下面这样的问题:下面声明的函数有什么区别么?(如果有,区别是什么). 原文:http://dmitrysoshnikov.com/ecmascript/chapter-5-functions/ 复制代码 代码如下: var foo = function () { ... }; 平时的惯用方式:

JavaScript触发onScroll事件的函数节流详解_javascript技巧

问题描述 常见的网站布局,顶部一个导航栏,我们假设本页面共有四个栏目:分别为A.B.C.D,我们点击A,锚点跳转至A栏目,同时顶部的A按钮高亮:点击B,锚点跳转至B栏目,同时顶部的B按钮高亮:我们在Main组件里面滚动,滚动到B模块时,B按钮高亮.以上是我们经常会在开发中遇到的一个模型.如果是在以前,用jQuery作前端开发的话,实在是太熟悉不过了. 解决方案 主要想谈谈在React组件化开发中的性能优化方法. 我们的页面结构是这样的 <div className={style.main} id

JavaScript中为元素加上name属性的方法_javascript技巧

今天遇到个小问题, 在构建 DOM 时, IE 中不能通过 element.setAttribute('name', _variable); 和 element.name = _variable; 这样的形式来为元素加上 name 属性, 无论是 IE6 还是 IE7. (IE8 是可以的, 但 IE8rc1 不行) 后来我查看了 MSDN, 得到信息如下: 复制代码 代码如下: Internet Explorer 8 and later can set the NAME attribute a