拖放是很常见的一种交互效果,很多时候我们都会借助于第三方的控件来实现,其实用原生js实现起来也非常的方便。...所以为了凸显draggable的用法,这里使用而不是来作为被拖拽的元素。 CSS 在实现样式的时候,除了实现静态的样式,一些过渡状态也需要增加样式以提升视觉体验:1....元素被拖动的过程中增加边框等效果;2. 当元素被拖动到容器上方时,容器也应增加样式表明容器可以接收一个被拖拽的元素。...JS 最后,我们需要通过js监听draggable和droppable的相关的事件。...在dragDrop方法中直接使用append方法将draggable元素移动至当前容器下面。 好了,demo比较简单,但是细节还是有一些的,自己实践一下才能更深刻的领悟。
这里介绍几个常见的使用场景: 相册应用中,用户可以拖动图片到不同的分组或标签中进行分类; 项目任务管理应用中,用户可以拖动任务卡片进行排序或分组; 文件上传功能中,用户可以将文件拖动到指定区域进行上传;...; 使用 drop 事件在任务列表容器中创建新的任务卡片。...Vue component (Vue.js 2.0) or directive (Vue.js 1.0) allowing drag-and-drop and synchronization with...总结 本文主要介绍了 Drag and Drop API,我们了解了这个 API 的作用和如何使用,在文章中还通过一些常见使用示例和大家展示代码如何实现,最后还给出一些使用建议和注意,希望大家能够更好的了解...Drag and Drop API,在实际工作中能够合理使用。
一、前言 《 HTML5魔法堂:全面理解Drag & Drop API》中提到从IE5开始已经支持DnD API,但IE5~9与HTML5...中凡是设置了 draggable="true" 特性的,均会启用DnD API。 ...effectAllowed 和 dropEffect 的取值范围和作用请浏览《 HTML5魔法堂:全面理解Drag & Drop API#t8》 实测效果(由于我是在IE11下通过切换文档模式来测试的...浏览器 effectAllowed默认值 effectAllowed值 dropEffect默认值 默认使用的鼠标指针效果 IE5~9 uninitialized uninitialized copy...OS自带的文本编辑器中释放元素,效果与 input[type=text]/textarea元素中被选中的文字一致。
/assets/timg.png" class='msg' alt="" @dragstart="dragstart" draggable="true" @drag='draging' @dragend...console.log(this.offsetX + '-' + this.offsetY) }, draging (e) { // console.log('拖动中'...// console.log('shubiao client') if (x > 300) { console.log(this.tags) // drag...当右侧拖动区域 第一次触发了drop 操作后,新生成一个对象,这个对象既有拖动(draggable=’true’)属性,也绑定dragstart(开始事件),拖动事件(drag),这样新元素会在右侧随意拖动...自然不是appendChild 之类的,利用Vue 双向绑定的特性, 页面上循环数组元素,生成元素即往数组中push 元素即可。
因此,cookie可以跨越一个域名下的多个网页,但不能跨越多个域名使用。 ③、不同浏览器对 cookie 的实现也不一样。即保存在一个浏览器中的 cookie 到另外一个浏览器是 不能获取的。...,我们可以通过读取 cookie 中的信息,恢复购物车中的物品。...PS:实际操作中,这种方法很少用了,基本上都是将这些信息存储在数据库中。然后通过查询数据库的信息来恢复购物车里的物品 ③、页面之间的传值。在实际开发中,我们往往会通过一个页面跳转到另外一个页面。...后端服务器我们可以通过数据库,session 等来传递页面所需要的值。但是在浏览器端,我们可以将数据保存在 cookie 中,然后在另外页面再去获取 cookie 中的数据。...PS:这里要注意 cookie 的时效性,不然会造成获取 cookie 中数据的混乱。 3、怎么使用 cookie?
2017-08-09 02:46:18 在JavaScript中,arguments对象是比较特别的一个对象,实际上是当前函数的一个内置属性。...Javascrip中每个函数都会有一个Arguments对象实例arguments,它引用着函数的实参,可以用数组下标的方式"[]"引用arguments的元素。...可以通过下面的例子来看一下arguments的具体使用方法 function test(){ if(arguments.length>0){ for(p of arguments){ console.log...,当需要使用递归来处理问题时callee就派上了用场 function count(a){ if(a==1){ return 1; } return a + arguments.callee...(--a);//此处的调用亦可使用cont(--a)的方式 } var mm = count(10); console.log(mm);//输出结果为55
js自带函数和jquery中的append方法相似 insertAdjacentHTML是一个非常酷的DOM方法,我们可以调用任何DOM元素来向页面添加新内容。...这是插入新内容的一种很方便且灵活的方法。 对元素调用该方法并接受两个参数:位置和包含HTML的字符串。...这代表我们将HTML添加到容器中的位置。...我们有四种选项可以设置它的位置: beforebegin 在元素之前 afterbegin 在元素的第一个子元素之后 beforeend 在元素的最后一个子元素之后 afterend 在元素之后 下面的示例代码展示了...,向列表中添加了一项: document.querySelector('ul').insertAdjacentHTML('beforeend', 'item')
3 精读 现阶段拖拽主要分为两种,一种是 HTML5 原生规范的拖拽,这种方式在拖拽过程中不会影响 DOM 结构。...另一种是完全所见即所得的拖拽方式,拖拽过程中 DOM 位置会随之变动,好处是可以立即反馈拖拽结果,当然缺点是华而不实,一旦用在生产环境,这种拖拽过程可能导致页面结构频繁跳动,反而看不清拖拽效果。...从使用角度反推,假设我们拥有一个拖拽库,那必定要拥有两个 API: import { DragContainer, DropContainer } from 'dnd' const DragItem...} } stopPropagation 的作用在原文简介中已经介绍过了,setData 则是通知拖拽方,当前拖拽的组件 id 是什么,这是由于拖拽由 drag 发起而由 drop 响应,因此必须有个数据传输过程...4 总结 最后留下一个思考题,许多具有拖拽功能的系统都具备 “拖拽 placeholder” 的功能,即拖拽元素的过程中,在其 “落点” 位置展示一条横线或竖线,引导出松手后元素位置落点,如图所示:
浅谈与使用js中的原型# 1 什么是原型# “ 每个函数都会创建一个 prototype 属性,这个属性是一个对象,包含应该由特定引用类型的实例 共享的属性和方法。...2 原型的使用# 首先我们使用设计模式中的工厂模式来实现一个Person类,可以通过new这个Person的函数来创建一个与之具有相同属性的实例,也就省的我们再次创建Person函数了。...person2 = new Person('Greg', 27, 'Doctor') person1.sayName() // Nicholas person2.sayName() // Greg 从上面代码中可以看到...有,那就是用原型,请看下面这份代码: // 工厂模式实现 方法2 使用原型属性 function Person(name, age, job) { this.name = name this.age...3 小结# 本文仅是对于原型有个简单的认识也使用,原型在js中是一个比较重要的模块,还有__proto__ 、 原型链 这些概念没有讲到,如果感兴趣,可以再通过书籍及视频来交叉理解。
js中if语句的使用 if 语句是使用最频繁的语句之一,语法如下: if (condition) { statement1 } else { statement2 } 1、条件(condition...2、ECMAScript 会自动调用Boolean()函数将这个表达式的值转换为布尔值。...这里的语句可能是一行代码,也可能是一个代码块(即包含在一对花括号中的多行代码)如下列代码: if (xhs > 1) { console.log('xhs满足大于1!')...满足大于25') } else if (xhs < 0) { console.log('xhs满足小于0') } else { console.log('xhs在0到25之间') } 以上就是js...中if语句的使用,希望对大家有所帮助。
介绍:call与apply都属于Function.prototype的一个方法,所以每个function实例都有call、apply属性 1.改变函数内部的this指向: // 有一个局部的test2...方法, // test2被作为普通函数调用时, // test2内部的this指向了window, // 但我们往往是想让它指向该#test节点,见如下代码: document.querySelector...= function(){ console.log(this) } function test3(){ console.log(this) } test3.call(this) //改变了test2的this...指针 test2.call(this) } 2.使用call来实现构造函数的继承。...已经继承了oneObj的属性。
js中arguments的使用 说明 1、当不确定传递了多少参数时,可以使用arguments来获取。在JavaScript中,arguments实际上是当前函数的内置对象。...所有函数都内置了一个arguments对象,所有实参都存储在arguments对象中。 2、arguments的显示形式是一个伪数组,所以可以遍历。...实例 // arguments 的使用 function fn() { console.log(arguments);// 里面存储了所有传递过来的实参 console.log(arguments.length...); console.log(arguments[0]); } fn(1,2,3); 以上就是js中arguments的使用,希望对大家有所帮助。
js中repeat()的使用 1、返回一个新字符串,表示将原字符串重复n次。如果参数为小数,则会被取整。...console.log('abc'.repeat(-1)) // RangeError console.log('abc'.repeat(Infinity)) // RangeError 3、如果参数是0到-1之间的小数或者...console.log('abc'.repeat(-0.1)) // console.log('abc'.repeat(NaN)) // 一般来说,str.repeat(n)重复字符串n遍,括号内填重复的遍数...以上就是js中repeat()的使用,希望对大家有所帮助。更多js学习指路:js教程 推荐操作环境:windows7系统、jquery3.2.1版本,DELL G3电脑。 收藏 | 0点赞 | 0打赏
大家好,又见面了,我是你们的朋友全栈君。 一、概念 1、js中可以通过setTimeout函数设置定时器,让指定的代码在指定的时间运动....如果我们希望在setTimeout之行前终止其运行就可以使用clearTimeout()。...2、clearTimeout()用于重置js定时器,如果你希望阻止setTimeout的运行,就可以使用clearTimeout方法。...二、使用场景 1、写计时器 2、需要让程序隔一段时间处理什么事情,如3秒后自动关闭弹出框等 3、事件延迟,满足业务需求,如鼠标从主菜单moveout的时候,判断鼠标是否moveover副菜单,再隐藏副菜单...如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
ECMAScript 6 新增的 Set 是一种新集合类型,为这门语言带来集合数据结构。Set 在很多方面都像是加强的 Map,这是因为它们的大多数 API 和行为都是共有的。 基本API 1....创建Set实例 使用 new 关键字和 Set 构造函数可以创建一个空集合: const s = new Set(); 如果想在创建的同时初始化实例,则可以给 Set 构造函数传入一个可迭代对象,其中需要包含插入到新集合实例中的元素...JavaScript 数据类型作为值): const s = new Set(["val1", 1, true, {}, undefined, function fun() {}]); 注意:Set结构不会添加重复的值...Set实例转数组 const s = new Set([1, 2, 3]); Array.from(s); // [1, 2, 3] 3. size属性 size: 获取Set实例的元素个数: const...返回布尔值): const s = new Set(); s.add(1).add(2).add(3); s.has(1); // true 6. delete() delete(): 删除Set实例中某个元素
js中matchAll()方法的使用 说明 1、matchAll()方法返回一个包含所有匹配正则表达式和分组捕获结果的遍历器。 2、因为返回的是遍历器,所以通常使用for...of循环取出。...index: 0, input: "abcabc", groups: undefined] //["a", index: 3, input: "abcabc", groups: undefined] 以上就是js...中matchAll()方法的使用,希望对大家有所帮助。...更多js学习指路:js教程 推荐操作环境:windows7系统、jquery3.2.1版本,DELL G3电脑。 收藏 | 0点赞 | 0打赏
js中this的使用场景 使用场景 1、在构造函数中使用(构造函数本身) 2、作为对象属性时使用(调用属性的对象) 3、作为普通函数时使用(window) 4、call、apply、bind(执行的第一个参数...a.fun.call({ name: 'B' }); //this === { name: 'B' } var fun1 = a.fun; fun1(); //this === window 以上就是js...中this的使用场景,希望对大家有所帮助。...更多js学习指路:js教程 推荐操作环境:windows7系统、jquery3.2.1版本,DELL G3电脑。
js中Array.of的使用 1、Array.of用于将参数依次转换成数组中的一个,然后返回这个新的数组,无论这个参数是数字还是其他。...2、当参数是一个并且是正整数时,Array.of将参数转换为数组中的一个。 而构造器将生成长度与第一个参数相同的空数组。 当参数为两个时,返回的结果是一致的。... // ["8"] Array.of(9.8) // [9.8] Array(9.8) // Uncaught RangeError: Invalid array length 以上就是js...中Array.of的使用,希望对大家有所帮助。...更多js学习指路:js教程 收藏 | 0点赞 | 0打赏
js中=,==,===的区别和使用 1: = 是赋值的意思,让左边的值等于右边的值 ? 2: == 是判断等于的意思,返回值是一个布尔值,它只判断值是否相等,不判断类型是否一样(==的非就是!...3: === (恒等运算符)也是判断等于的意思,返回值也是一个布尔值,但是它不仅仅判断值是否相等,还判断类型是否相等(===的非就是!==) ? js中 != 和 !==的区别 !...= 在表达式两边的数据类型不一致时,会隐式转换为相同数据类型,然后对值进行比较。 ? !== 不会进行类型转换,在比较时除了对值进行比较以外,还比较两边的数据类型, 它是恒等运算符===的非形式。 ?
---- 二、基本用法 (1)async async 函数返回一个 Promise 对象,可以使用 then 方法添加回调函数。...await Promise.reject('出错了'); } f() .then(v => console.log(v)) .catch(e => console.log(e)) // 出错了 上面代码中,...function f() { await Promise.reject('出错了'); await Promise.resolve('hello world'); // 不会执行 } (3)使用注意事项...await 命令后面的 Promise对象,运行结果可能是 rejected ,所以最好把 await 命令放在 try...catch 代码块中。...hello') },1000) }) // await 后应该是一个 Promise 对象,如果不是,会被转成一个 Promise 对象 // await必须配合 async 来使用
领取专属 10元无门槛券
手把手带您无忧上云