代码如下:
function(arr,index,tindex){
//如果当前元素在拖动目标位置的下方,先将当前元素从数组拿出,数组长度-1,我们直接给数组拖动目标位置的地方新增一个和当前元素值一样的元素,
//我们再把数组之前的那个拖动的元素删除掉,所以要len+1
if(index>tindex){
arr.splice(tindex,0,arr[index]);
arr.splice(index+1,1)
}
else{
//如果当前元素在拖动目标位置的上方,先将当前元素从数组拿出,数组长度-1,我们直接给数组拖动目标位置+1的地方新增一个和当前元素值一样的元素,
//这时,数组len不变,我们再把数组之前的那个拖动的元素删除掉,下标还是index
arr.splice(tindex+1,0,arr[index]);
arr.splice(index,1)
}
}
index是当前元素下标,tindex是拖动到的位置下标。
若有疑问或建议请联系我。
代码如下:function(arr,index,tindex){ //如果当前元素在拖动目标位置的下方,先将当前元素从数组拿出,数组长度-1,我们直接给数组拖动目标位置的地方新增一个和当前元素值一样的元素, //我们再把数组之前的那个拖动的元素删除掉,所以要len+1 if(index>tindex){ arr.splice(tindex,0,arr[index]); ...
先介绍一下html5的drag属性,拖放(Drag 和 drop)是 HTML5 标准的组成部分。想要启用drag,只要给
元素
加上draggable="true"就行了(Safari 5.1.2除外)。
实际效果:
拖动
事件(了解事件详情)
事件分为两类,当前
拖动
的
元素
上的事件,以及要放置的位置接收到的事件。
一.发生在
拖动
元素
上的事件:
事件名 触发时机 触发次数
dragstart 当
拖动
开始时触发一次 1
drag
拖动
开始后反复触发 n
dragend
拖动
结束后触发一次
<style>
* { padding:0;margin:0;list-style: none }
html,body { height:100%; overflow:hidden; }
ul ...
N个整数存放在
数组
中,将每个
元素
依次后移一个位置,最后一个
元素
移动
到第一个
元素
的位置。输入一个整数n(n不超过100)和n个整数,相邻数值之间用一个空格分隔。输出
移动
以后的结果。
对于
数组
元素
的
移动
,最直接方法就是把
数组
中最后一个数移到第一个,再用另一个
数组
储存实现
移动
。这种方法虽然简单,但很浪费空间。其实可以在之前方法的基础上改进,只用一个
数组
。
将a[n]赋值给a[n+1],a[n-1]赋值给a[n]......以此类推,最后将a[1]赋值给a[2],这样原来的
数组
都整体往后移了一位。但这使得a[1
# 核心方法 splice('起始位置','删除数量',['...添加
元素
'])
# 起始位置 一般是
数组
元素
得下标
# 删除数量 12345...表示删除对应的个数,**而0表示不删除**
# 添加
元素
就是再splice给定的位置push数据
> **splice方法会改变原始
数组
**
> **如果仅删除一个
元素
,则返回一个
元素
的
数组
。 如果未删除任何
元素
,则返回空
数组
**
# 控制
移动
mobile(list, i, num) {
list.splice(i + num
2.
数组
截取2个索引值之间的
数组
dealArr ,
数组
第一部分resetArr1 ,第二部分resetArr2。
3.比较拖拽
元素
的索引值和被替换
元素
的索引值,根据值的大小对dealArr重新
排序
4.将resetArr1、 dealArr、resetArr2重新合并即为
排序
后的
数组
下面是代码实例,
<!DOCTYPE ...