Доброе время суток, есть вопрос, который я сама не смогла реализовать, хотя css на базовом уровне знаю, но видимо знаний не хватает. Есть вращающийся куб по горизонтали и вертикали, так вот по горизонтали в данный момент он все время вращается влево, согласно задумке, а вот как сделать чтобы он вращался вправо пока никак догадаться не могу, т.е куб вращается по вертикали и влево, нужно чтобы также по вертикали вращался, но по горизонтали вправо. https://jsfiddle.net/k5cja4Lx/ Спойлер: код Код html: Код (HTML5): <div class="cube"> <div class="cubespinner> <div class="face"><img src="" width="" height="" /></div> <div class="face"><img src="" width="" height="" /></div> <div class="face"><img src="" width="" height="" /></div> <div class="face"><img src="" width="" height="" /></div> <div class="face"><img src="" width="" height="" /></div> <div class="face"><img src="" width="" height="" /></div> </div> </div> Код css: Код (CSS): <style> .cube {margin: 0 auto; position: relative; width: 800px;} .cubespinner { animation: spincube 10s infinite; transform-style: preserve-3d; transform-origin: center center; margin: 15px auto; height: 24px; width: 24px; position: absolute; } .face { background: rgba(255,255,255,0.5); border: 1px solid #bababa; box-shadow: inset 0 0 5px #8ecbde, 0 0 2px #fff; color: #55dede; font-size: 12px; height: 24px; line-height: 24px; position: absolute; text-align: center; width: 24px; } .face img {padding: 1px;} .face:nth-child(1) {transform: translateZ(12px);} .face:nth-child(2) {transform: rotateY(90deg) translateZ(12px);} .face:nth-child(3) {transform: rotateY(90deg) rotateX(90deg) translateZ(12px);} .face:nth-child(4) {transform: rotateY(180deg) rotateZ(90deg) translateZ(12px);} .face:nth-child(5) {transform: rotateY(-90deg) rotateZ(90deg) translateZ(12px);} .face:nth-child(6) {transform: rotateX(-90deg) translateZ(12px);} @-webkit-keyframes spincube { from,to {transform: rotateX(0deg) rotateY(0deg) rotateZ(0deg);} 16% {transform: rotateY(-90deg);} 33% {transform: rotateY(-90deg) rotateZ(90deg);} 50% {transform: rotateY(-180deg) rotateZ(90deg);} 66% {transform: rotateY(-270deg) rotateX(90deg);} 83% {transform: rotateX(90deg);} } @keyframes spincube { from,to {transform: rotateX(0deg) rotateY(0deg) rotateZ(0deg);} 16% {transform: rotateY(-90deg);} 33% {transform: rotateY(-90deg) rotateZ(90deg);} 50% {transform: rotateY(-180deg) rotateZ(90deg);} 66% {transform: rotateY(-270deg) rotateX(90deg);} 83% {transform: rotateX(90deg);} } </style> при таком раскладе куб вращается по вертикали и всегда влево, нужно чтобы также по вертикали вращался, но при этом по горизонтали всегда вправо. На фото ниже видно, как в данный момент вращается куб, нужно тоже самое, только чтобы вращался не влево, а вправо. Просьба помочь разобраться в этом вопросе, изменяла значение CSS свойств - rotateY, rotateZ, rotateX, а также перемещение translateY и translateX, которое необходимо задавать при вращении, но получается как-то коряво... --- Добавлено --- P.S.: Правильно, когда один поворот по горизонтали и следующий поворот по вертикали и цикл повторяется. На представленной картинке отображение неправильно, сделала ещё одно "правильное" наглядное вращение здесь вращение вращение по вертикали, далее вращение по горизонтали налево и повторение. Нужно, чтобы вращение было не налево, а направо, что в данный момент решить не получается. Заранее благодарна.
не, это просто сайт, куда можно напихать твой код и скинуть сюда ссылку. тогда кто-то мимопроходя потыкает его вживую и возможно даст ответ на твой вопрос --- Добавлено --- https://jsfiddle.net/k5cja4Lx/
Да, вы правы, так будет удобней и наглядней, хотя уже стала сомневаться, что эту проблему вообще можно решить, так как пока всё получалось как-то коряво. Спасибо за подсказку ! --- Добавлено --- Здесь пронумеровала все стороны куба для наглядности: https://jsfiddle.net/0qkf2szm/1/
ну насколько я понял инвертировать вращение можно просто выставив углы с противопложным знаком Код (CSS): @keyframes spincube { from,to {transform: rotateX(0deg) rotateY(0deg) rotateZ(0deg);} 16% {transform: rotateY(90deg);} 33% {transform: rotateY(90deg) rotateZ(-90deg);} 50% {transform: rotateY(180deg) rotateZ(-90deg);} 66% {transform: rotateY(270deg) rotateX(-90deg);} 83% {transform: rotateX(-90deg);} } https://jsfiddle.net/0qkf2szm/9/ но дальше надо все картинки изначально правильно повернуть, я не успеваю, надеюсь ты справишься.
Здравствуйте, не всё так просто, как может показаться на первый взгляд. Я так уже год тому назад пробовала делать, да и по-другому пыталась решить, но ничего не вышло. 1. Если вы обратите внимание, то в примере https://jsfiddle.net/0qkf2szm/9/ имеется поворот по вертикали, где происходит вращение сразу 3 разу, далее всё нормально 2. В примере https://jsfiddle.net/0qkf2szm/1/ всё нормально, вращение происходит без рывков, плавно и один раз за поворот. Нужно то же самое, только не налево, а направо вращение. Казалось бы, задай отрицательные значения и OK, но не тут то было. Работает, но корректно... 3. У меня просто будут 2 куба и они по задумке будут вращаться в разные стороны, с одним кубом разобралась, а вот с кубом, где вращение по горизонтали направо не получается реализовать правильно...то ли браузеры не поддерживают или тут нужно как-то по другому решить данную проблему. В любом случае, спасибо вам за помощь.
В моём случае не приемлемо, у меня на каждой грани вместо цифр будет изображения и будет не очень хорошо, если 3 из 6 изображений будут сразу "пролетать", а потом снова вращаться нормально. Для 1 варианта, всё чётко и вращение плавное и я успеваю все изображения рассмотреть, а во втором хотелось бы, чтобы был такой же эффект, только в другую сторону. Конечно, могу сделать 2 куба с одинаковым вращением, но с разным было бы гораздо красивей. Вот и думала, как же это можно реализовать. Сначала, тоже думала, что ерунда, а на самом деле, тут придётся подумать и основательно...
ну на самом деле это ж не куб и обычно это делается чуток не так ты просто делаешь одну анимацию справа на лево (или слева на право) и одну сверху вниз или снизу вверх а потом просто подставляешь нужные картинки в одну и другую грани и прокручиваешь анимацию --- Добавлено --- но я слаб в css
Да, это я знаю и в сss более или менее разбираюсь, но вот данный момент реализовать самостоятельно не смогла до конца правильно, вот и подумала, что может здесь кто-нибудь опытнее меня сможет справится с этой задачей. Спасибо за ответ, Ольга
Дока по 3D трансформации: https://html5book.ru/3d-transform/ Пример с кубом: http://css.yoksel.ru/3d-cube/
Здравствуйте, на этих сайтах уже был мой знакомый, но там тоже не смогли решить данный момент. Пробовали средствами GSAP, но тоже результат не тот...а интересно можно ли средствами css3 сделать, для 1 варианта https://jsfiddle.net/0qkf2szm/1/ без проблем, а для второго https://jsfiddle.net/0qkf2szm/9/ не получается... Будем дальше экспериментировать, может что и получится...
перейди по второй ссылке. Там примеры кода и демонстрация результата. --- Добавлено --- http://jsfiddle.net/L2j580bc/1/
Здравствуйте, по этой ссылке http://jsfiddle.net/L2j580bc/1/ всё понятно, происходит просто вращение вправо, а мне надо как в моём примере https://jsfiddle.net/0qkf2szm/1/, где происходит вращение и по вертикали и по горизонтали налево, мне нужно точно также, только вращение должно быт не налево, а направо. В любом случае спасибо за помощь.
Здравствуйте, В примере https://jsfiddle.net/0qkf2szm/1/: 1. Вращение по горизонтали налево - грани (1,2 - 3,4 - 5,6) 2. Вращение по вертикали - грани (2,3 - 4,5 - 6,1) Нужно тоже самое, только в пункте 1 вращение не налево, а направо Спасибо за отклик.
Мы тут подсказываем тем, кто хочет учиться. А по тз выполняем работу за денежку, как ни странно. Я искренне пытался Вас направить. Но увы.
Здравствуйте, вопрос не в деньгах, все работы делаю сама, также представляю все коды и информацию. Кстати для тех, кто хочет учиться. Так как работаю исключительно для себя, то мне не горит, будет ли данный момент в сообщении #18 реализован, просто можно ли данный момент на css реализовать или нет. Кстати зачем меня направлять, есть интернет, Google в помощь, спасибо ссылки на сайты (на которых я уже более года назад была). P.S.: Если бы я всё делала для кого-либо за деньги...то не было знакомых совсем. Я могу понять какой-то сложный скрипт, любая работа должна оплачиваться, но здесь форум, люди обмениваются опытом, кто-то опытнее, а кто-то начинающий. Давайте всем говорить про деньги ? тогда и форум не нужен будет. Может быть мы в России поэтому, так и живём, что всё вращается вокруг денег и человеческого нормального отношения мало. Ещё раз напоминаю, данную тему я начала, потому что мне интересно, можно реализовать или нет. Разве я писала, что мне надо или у меня горит, сделайте что-нибудь (тогда, конечно, можно говорить про деньги ). У меня был просто вопрос к опытным коллегам, а вы в итого написали про деньги. Печально, что так всё закончилось, ну да ладно. Спасибо всем, кто откликнулся и кто попытался что-то сделать. С уважением, Ольга
@olga_0630 код по ссылкам на jsfiddle предельно прост и понятен. нужно просто попытаться вникнуть в то, как работает анимация и что означает вращение по осям X, Y и Z. всё это прощупывается методом тыка и чтением документации.