JavaScript排序算法之希尔排序的2个实例
代码示例:
function shellSort(arr) {
let len = arr.length;
// gap 即为增量
for (let gap = Math.floor(len / 2); gap > 0; gap = Math.floor(gap / 2)) {
for (let i = gap; i < len; i++) {
let j = i;
let current = arr[i];
while(j - gap >= 0 && current < arr[j - gap]) {
arr[j] = arr[j - gap];
j = j - gap;
}
arr[j] = current;
}
}
}
var arr = [3,5,7,1,4,56,12,78,25,0,9,8,42,37];
shellSort(arr);
js如何实现滑动事件
js的左右上下滑动触屏事件,主要有三个事件:touchstart,touchmove,touchend。这三个事件最重要的属性是 pageX和 pageY,表示X,Y坐标。 touchstart在触摸开始时触发事件 touchend在触摸结束时触发事件 touchmove这个事件比较奇怪,按道理在触摸到过程中不断激发这个事件才对,但是在部分设备中,在 touchstart 激发后激发一次,然后剩余的都和 touchend 差不多同时激发。 这三个事件都都有一个 timeStamp 的属性,查看 timeStamp 属性,可以看到顺序是 touchstart -> touchmove ->touchmove -> … -> touchmove ->touchend。 下面是一段代码实例: document.getElementsByTagName('body')[0].addEventListener('touchstart', function (e) { nStartY = e.targetTouches[0].pageY; nStartX = e.targetTouches[0].pageX; });document.getElementsByTagName('body')[0].addEventListener('touchend', function (e) { nChangY = e.changedTouches[0].pageY; nChangX = e.changedTouches[0].pageX;PS:
1.touch事件跟click事件是不会被同时触发的。现在的移动设备做的比较好,已经把这个问题完美的避免掉了。
2.注意触摸的开始和结束位置的位移大小。如果位移小过小应该不做任何动作。
还没有评论,来说两句吧...