빈티지 TV 및 라디오에서 볼 수있는 대화식 회전식 노브를 만들려고합니다. 사용자가 회전 할 수 있도록 KnobKnob.js을 사용하고 있습니다. 때로는 이상하게 작동하지만,이 특별한 필요성과 시간 부족에 대한 플러그인을 사용할 수 없다는 점을 감안할 때, 어쨌든 그것을 제공하기로 결정했습니다. 내가하고 싶은 무엇jQuery/JS에서 회전 할 때 이벤트를 트리거하는 회전식 노브
은 채널 노브의 동작을 복제, 에 내 코드에서 노브, 또는 <div id="centralKnob">
의 직사각형 부분의 회전의 각도를 따라 비디오의 소스를 변경합니다. 사용자는 주변 링크를 클릭하기 만하면됩니다.
그래서, 노브의 현재 회전 각도에 따라 소스를 변경하는 것입니다 그렇게 할 수있는 가장 좋은 방법을 생각했다. JS/jQuery를 처음 접했을 때 요소의 각도를 얻는 방법을 모르기 때문에 this article을 찾았습니다. 그들이하는 일 :
var el = document.getElementById("centralKnob");
var st = window.getComputedStyle(el, null);
var tr = st.getPropertyValue("-webkit-transform") ||
st.getPropertyValue("-moz-transform") ||
st.getPropertyValue("-ms-transform") ||
st.getPropertyValue("-o-transform") ||
st.getPropertyValue("transform") ||
"Either no transform set, or browser doesn't do getComputedStyle";
var values = tr.split('(')[1];
values = values.split(')')[0];
values = values.split(',');
var values = tr.split('(')[1];
whatever = tr.split(')')[0];
whatever = tr.split(',');
var a = values[0];
var b = values[1];
var c = values[2];
var d = values[3];
var angle = Math.round(Math.asin(b) * (180/Math.PI));
이것은 노브의 현재 각도를 알려줍니다. 그러나 노브가 X (deg)와 Y (deg) 사이에있을 때마다 사용자가 각도를 변경할 때마다 각도가 다시 계산되고 비디오 소스가 변경되도록하려면 어떻게해야합니까?
미리 감사드립니다. 또한 모든 것이 더 잘 작동하도록하는 방법에 대한 제안이나 조언을 환영합니다. 특히 사용자가 손잡이를 부드럽게 돌릴 수 있도록하는 방법은 특히 좋습니다. 또한, 회전식 다이얼과 손잡이는 웹 디자인에서 그다지 좋은 아이디어가 아니며 마우스로 제어하는 것이 가장 좋은 방법은 아니라는 것을 알고 있습니다. 그러나 이것은 실제 공개 웹 사이트보다 더 기술적 인 문제입니다.
사람을 터치 이벤트를 추가 ' 심지어 당신을 업 그레 이드, 답변을 수락하거나, 답장 .. – Kayvar