내부에 여러 "열"이있는 DIV를 만드는 jQuery 플러그인을 개발 중입니다. 사용자가 DIV를 스크롤하면 스크롤이 열 가장자리에 "스냅"됩니다. 나는 이것을 증명하는 jsFiddle을 만들었습니다. 상자가 1 열의 끝까지 찰칵 소리가 날 때까지 상자를 오른쪽으로 스크롤하십시오. http://jsfiddle.net/vcYjm/3/드래그 가능한 드래그 이벤트 후 CSS 속성을 설정할 수 없습니다.
여기에 문제가 있습니다. 사용자가 스크롤 핸들을 드래그, 우리는 드래그 코드 블록의에서이 코드 컬럼의 스크롤 위치를 업데이트
페이지가 처음로드 될 때 잘 작동하지만$('.'+snapHolder).css('right', snapScrollPos+'px');
이되면 위치 속성의 다른 설정은 작동을 멈 춥니 다. 예를 들어, jsFiddle을 다시로드 한 다음 "set $ ('. snapHolder'). css ('left', '-50px')" 링크를 클릭하십시오. 끌기가 더 이상 작동하지 않습니다. 마찬가지로 첫 번째 스냅까지 스크롤하면 스크롤이 더 이상 작동하지 않습니다. 여기
열 전에 스냅 영역에 화재 코드의 비트입니다 :if (colOffset > (colWidth - snapSize) && colOffset < colWidth) {
inAfter = false;
if (!inBefore) {
inBefore = true;
console.log("before");
$('.'+snapHolder).css('left', '-' + fullWidth*(colNum+1) + 'px');
$handle.parents(':eq(2)').find('.'+dragHandle).css({'left': leftPosition});
}
}
및 열 후 : 여기
} else if (colOffset < snapSize) {
inBefore = false;
if (!inAfter) {
inAfter = true;
console.log("after");
$('.'+snapHolder).css('left', '-' + fullWidth*colNum + 'px');
$handle.parents(':eq(2)').find('.'+dragHandle).css({'left': leftPosition});
}
}
나는이 줄을 실제로 변경했다고 생각했지만 $ ('.'+ snapHolder) .css ('left', snapScrollPos2 + 'px'); 같은 일이 발생합니다. 실제로 하단의 $ ('. snapHolder'). css ('left', '-50px') 링크를 클릭하면 'right'속성이 설정되지 않은 상태에서 크롤링이 중단된다는 것을 알 수 있습니다. –
"왼쪽"을 모두 "오른쪽"으로 변경하면 효과가 있기 때문에 두 번 확인해야합니다. http://jsfiddle.net/AJMn7/ – vinhboy
바이올린에서 스크롤이 작동하지만 스냅이 끊어졌습니다. 앞에서 말한 것처럼 위치 속성의 설정은 다른 설정을 위반하는 것 같습니다. 어떤 설정이 작동하는지 간단하게 전환했습니다. –