> 웹 프론트엔드 > JS 튜토리얼 > js 정렬 애니메이션 시뮬레이션 버블 sorting_javascript 기술

js 정렬 애니메이션 시뮬레이션 버블 sorting_javascript 기술

WBOY
풀어 주다: 2016-05-16 17:51:49
원래의
1158명이 탐색했습니다.

일부 시나리오에서는 대기열이 실제로 좋은 효과를 가져올 수 있는 놀라운 힘과 같습니다. 예를 들어 타이머와 함께 사용하면 시차 효과를 시뮬레이션할 수 있습니다

코드 복사 코드는 다음과 같습니다.

function createDq(){
var dq = [], size = 0
return {
setDq:function(queue){
dq = queue;
size = queue.length;
},
queue:function(fn){
size ; push(fn);
dqueue:function(){
size --;
return dq.shift()},
run:function(fn) {
var me = this, 타이머;
timer = setInterval(function(){
if(size <= 1){
clearInterval(timer);
}
fn .call(null,me.dqueue());
},30);
}
}
}


위는 다음과 같은 간단한 구현입니다. 현지 조건에 맞게 다양한 시나리오 조정이 적절하게 수행되었습니다.
다음은 버블 정렬을 시뮬레이션한 애니메이션입니다. 관찰자 모드를 조금 사용해 봤는데 꽤 괜찮은 것 같습니다.



코드 복사 코드는 다음과 같습니다. function bubble(){
var obs = []
function Compare(x, y) {
return x.w - y.w;
}
함수 교환(a, i, j) {
var t = a[i]; a[i] = a[j] = t; }
함수 프록시(a, i, j){
notify(a[i].id "-" a[j].id)
swap.apply(null,arguments); >}
함수 알림(arg){
obs[0].m.call(obs[0],arg)
}
return {
addOb:function(ob){
obs.push(ob)
},
sort:function(arr){
var len = arr.length; for (var x = 1; x < len; x ) {
for (var y = 0; y < len - x; y ) {
if (compare(arr[y], arr[y 1]) > 0) {
proxy (arr, y, y 1)
}
}
}
}
}
}







외부 J를 도입해야 하는 경우 실행하려면 새로 고쳐야 합니다
]
관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿