[jQuery] interface > sortable 스크롤이 바닥일경우 drag시 스크롤 움직이는 버그

움직일 item을 길게 늘여놓고서..
스크롤을 맨 아래로 놓은 다음
아무 item을 drag할려고 하면, 화면이 움직입니다.

아마도, helper 때문에 item들이 움직이다보니. 그로 인해 생기는 증상인것 같더군요.

이 문제는 아래와 같은 방법으로 해결 할 수 있습니다.

onStart : function(){
$(‘body’).append(“<div id=’autoHeight’ style=’height:20px’></div>”);
}
onStop : function(){
$(‘#autoHeight’).remove();
}

아래에 빈 공간을 만들어 줌으로서 화면이 안움직이게 하는거죠.
여기서 주의할 점은 height를 drag Item의 height 이상으로 해주셔야 한다는 것입니다.

[js]현재 스크롤 위치 알아내기

var getNowScroll = function(){

var de = document.documentElement;
var b = document.body;
var now = {};

now.X = document.all ? (!de.scrollLeft ? b.scrollLeft : de.scrollLeft) : (window.pageXOffset ? window.pageXOffset : window.scrollX);
now.Y = document.all ? (!de.scrollTop ? b.scrollTop : de.scrollTop) : (window.pageYOffset ? window.pageYOffset : window.scrollY);

return now;

}

소스는 어렵지 않아서 별다른 설명이 필요 없을 것 같네요.
IE7, FF2 에서 테스트 해보았으며,
사용법은 간단합니다

<input type=”button” onclick=”CurrentScroll()” value=”지금 스크롤 위치를 알려줘”>

<script type=”text/javascript”>
var CurrentScroll = function(){

nowScroll = getNowScroll();
alert(nowScroll.X + “,” + nowScroll.Y);

}
</script>

http://jdsharp.us/ 에 스크롤 위치구하는 코드가 잘 짜여져 있어, 이 코드를 사용하였습니다.