mousemove에서 요소를 회전하는 데 문제가 있습니다. 나는이 문제가 내 요소가 화면 (CSS에서 vh/vw 단위로 설정)보다 훨씬 크지 만 본질적으로 요소 소리가 mousemove의 중심에서 회전한다는 사실과 관련이 있다고 생각합니다.뷰포트보다 큰 mousemove의 요소를 회전하십시오.
나는 여기에 jsFiddle을 설정 한 :
https://jsfiddle.net/cLx290p1/
function themeLanding() {
var graphic = $('.landing-2016');
if (graphic.length > 0) {
var offset = graphic.offset();
function mouse(evt) {
var centerX = (offset.left) + (graphic.width()/2),
centerY = (offset.top) + (graphic.height()/2),
mouseX = evt.pageX,
mouseY = evt.pageY,
radians = Math.atan2(mouseX - centerX, mouseY - centerY);
degree = (radians * (180/Math.PI) * -1) + 90;
graphic.css('-moz-transform', 'rotate(' + degree + 'deg) translate(-50%,-50%)');
graphic.css('-webkit-transform', 'rotate(' + degree + 'deg) translate(-50%,-50%)');
graphic.css('-o-transform', 'rotate(' + degree + 'deg) translate(-50%,-50%)');
graphic.css('-ms-transform', 'rotate(' + degree + 'deg) translate(-50%,-50%)');
graphic.css('transform', 'rotate(' + degree + 'deg) translate(-50%,-50%)');
}
$(document).mousemove(mouse);
}
}
themeLanding();
는 또한, 디버깅 체크 등의 MouseMove 이벤트없이, 같은 생각을 신청 한 CSS3를 사용하여 동일한 요소를 회전 할 수 있습니다.
https://jsfiddle.net/psywr840/1/
이것은 내가 잘못 가고 어디 잘 그래서 난 확신 해요 작동하는 것 같다.
아이디어가 있으십니까? 감사.
:
그래서 당신이 원하는, 변환 함수의 순서를 변경하는 것입니다. Whhhhhyy ?? 이것도 해결해 주셔서 고마워요.하지만 이건 좀 미친 것 같아요? –
정말 미치지는 않아요. 실제로는 꽤 유용합니다. 예를 들어 요소를 중심점을 사용하여 회전하려는 경우 결과로 회전 된 요소가 순서없이이 작업을 수행 할 수없는 것보다 다른 곳으로 다시 변환됩니다. 이런 상황에서해야 할 일은'translate','rotate'와'translate'입니다. –