@kit4fs

Как повернуть div перетаскиванием мыши (как изменить transform) при помощи jquery?

В #wrapper {transform-style: preserve-3d} есть 6 .side которые спозиционированы в куб. Есть скрипт, который поворачивает #wrapper по осям X и Y так, что куб крутится относительно своей центральной точки.
$(function () {
            $(document).mousemove(function (e) {
                $('#wrapper').css({
                    'transform': 'rotateX(' + e.pageY + 'deg) rotateY(' + e.pageX + 'deg)'
                });
            });
        });

Как изменить этот скрипт, чтобы он крутил #wrapper по нажатию мышки и перетаскиванию. Куб должен стоять на месте и крутиться, как он крутится при помощи mousemove, только при нажатии, удержании и перетаскивании мышкой. Когда курсор отжат, куб остаётся в текущем положении.
Вот коды html\css
<div id="wrapper">
        <div class="back side"></div>
        <div class="left side"></div>
        <div class="right side"></div>
        <div class="top side"></div>
        <div class="bottom side"></div>
        <div class="front side"></div>
    </div>

body {
    background: #eee;
    margin: 0;
    padding: 0;
    perspective: 900px;
    perspective-origin: center -40px;
    font-family: 'PT Sans', tahoma;
}

#wrapper {
    transform-style: preserve-3d;
    position: relative;
    width: 250px;
    height: 250px;
    margin: 200px auto;
    /*border: 1px solid black;*/
}

.side { 
    position: absolute;
    top: 25px;
    left: 25px;
    opacity: .7;
    border: 3px solid white;
    width: 200px;
    height: 200px; 
}

.back { transform: translateZ(-100px);}
.front { transform: translateZ(100px);}
.bottom { transform: translateY(100px) rotateX(90deg);}
.top { transform: translateY(-100px) rotateX(90deg);}
.left { transform: translateX(100px) rotateY(90deg);}
.right { transform: translateX(-100px) rotateY(90deg);}
  • Вопрос задан
  • 661 просмотр
Пригласить эксперта
Ответы на вопрос 1
Возьмите любой плагин который будет вам удобен, для реализации перетаскивания, гуглить jquery drag (в результатах выдачи будет решение без jquery UI и вообще без отдельного плагина, только библиотека jquery), как правило все они вешают кастомный класс в момент захвата мышкой. На этот класс вы можете повесить вращение.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы