보자 W를 다음과 같이 예는 캔버스의 왼쪽 위치를 구성하는 수평 스크롤 "바"의 왼쪽 위치에 관계 필요 캔버스의 너비를 D, 포함 div의 너비와 스크롤 막대, B를 스크롤 막대 "바"의 너비로합니다. W> D
포함 div에 상대적인 시작 부분 캔버스의 왼쪽은 0이고 "막대"는 스크롤 막대에 대해 0을 유지합니다.
볼 캔버스 분획 은 "바"의 왼쪽 끝의 범위 DB와 같이 0
은 "바"오른쪽으로 이동 W
D/W 등 B = D * D/IS 캔버스가 왼쪽으로 비례하여 이동합니다.
하자 L은 스크롤 바의 왼쪽 에지에서 "바"의 현재 위치 일 이동 분획은 L/D이고 그래서 캔버스 왼쪽
에 L의 * W/d를 이동 즉 때 (bar) .style.left = L (캔버스). 스타일.왼쪽 = -L * W/D
다음은 JQuery를 사용하여 잘하면 필요한 것을 수행하는 바이올린입니다.
http://jsfiddle.net/GdsEa/
자바 스크립트 코드
가되도록 이들 변화하기 쉬운 컨테이너 div, 캔버스, 스크롤 바의 폭 W 및 D 설정 코드에 겹쳐 있는지
var W=2000;
var D=500;
var B=D*D/W;
document.getElementById("wrap1").style.width=D+"px";
document.getElementById("hbar").style.width=B+"px";
var canv=document.getElementById("mycanvas");
canv.width=W;
var ctx=canv.getContext("2d");
ctx.beginPath();
ctx.moveTo(100,100);
ctx.lineTo(200,100);
ctx.lineTo(200,200);
ctx.lineTo(100,200);
ctx.closePath();
ctx.fillStyle="rgb(255,0,0)";
ctx.fill();
ctx.beginPath();
ctx.moveTo(W-100,100);
ctx.lineTo(W,100);
ctx.lineTo(W,200);
ctx.lineTo(W-100,200);
ctx.closePath();
ctx.fillStyle="rgb(0,0,255)";
ctx.fill();
$(".bar").draggable({ containment:"parent" });
$(".bar").on("drag", function(event, ui) {var L=ui.position.left;
canv.style.left=(-L*W/D)+"px"});
참고 아래 도시 값.
위대한, 그게 내가 찾고 있었는데, 지금은 그냥 이벤트를 연결하고 내가 태블릿에 요소를 드래그 할 수 있는지 확인해야합니다. – coulix