2013-10-13 1 views
1

ui 플러그인의 jquery 슬라이더는 핸들을 특히 빠르게 움직일 때까지 제대로 작동하는 것 같습니다. http://jsfiddle.net/5aXba/5/jquery 사용자의 슬라이더에 버그가 있습니까?

후 최대한 빨리 백업 할 수 있습니다으로 앞뒤로 이동하며 휴식, 예상 결과를 일반적으로 슬라이더를 이동

:

여기 데모입니다. 데모에서 충분히 빨리 이동하면 모든 내용이 사라집니다.

어떻게이 문제를 해결할 수 있습니까? 이것은 완전히 피할 수없는 것입니까?

답변

1

그 자체로는 - 제한 사항과 같지 않습니다. 문제는 기본적으로 슬라이더의 길이, 슬라이더의 길이, 슬라이더의 길이, 슬라이더의 길이, 슬라이더의 길이, 슬라이더의 길이, 슬라이더의 길이, 슬라이더의 길이, 슬라이더의 길이 등에 대한 질문입니다.

데이터 포인트가 546 개인 300px 너비 슬라이더를 상상해보십시오. 마우스를 드래그하여 해당 슬라이더의 모든 포인트를 잡을 방법이 없습니다. 귀하의 경우, 700px에서 12 포인트를 맞추고 마우스 조정을 사용하여 해당 포인트를 캡처하면 어느 시점에서 근사치를 얻지 못할 수 있습니다.

당신이 당신의 방법에있는 모든 단일 단계를 등록해야 어디에 당신이 정말로이 경우 필요 경우 - 나는 slide() method에서 제어 카운터를 넣어 제안 및 마우스 이동 그렇지 않으면 범위의 모든 단계에 대한 계산 있는지 확인 - 화재 js의 누락 된 단계.

데모 및 가상 300px 폭 슬라이더를 사용하여이 제한 사항을 처리하는 한 가지 방법을 보여줍니다 (예제 # 1 행은 건너 뜁니다).

... 
slide: function (event, ui) { 
    if(!counter) counter=$(this).slider("option", "value"); 
    var step=$(this).slider("option", "step"); 
    if(Math.abs(ui.value-counter)>step){ 
     if(ui.value > counter) for (var i=counter+1;i<=ui.value;i++) addrow(i); 
     else if(ui.value < counter) for (var i=counter;i>ui.value;i--) removerow(); 
    }else{ 
     if (ui.value > counter) addrow(ui.value); 
     else if (ui.value < counter) removerow();     
    } 
    counter = ui.value; 
} 
...  
관련 문제