Я уже замучился понимать математику как считается перспектива..
Что мне нужно:
как размеры блока (хоть 1 сторона) зависит от велечины perspective : <length>
Что я уже узнал:
1) чтоб работала перспектива, нужно еще указывать и угол поворота, к примеру transform: rotateY(60deg)
2) какая ширина блока получится (если не применять перспективу), можно высчитать по косинусу угла, например 60 градусов это 1/2 (или 0,5) блок был 300 пикселей, стал 150; 30 градусов - 0,866... 45 градусов - 0,7...
Вопрос, как математически понять перспективу? на глаз мне не подходит подтягивать все и вся..
P.S. извините, если вопрос упорот
@keyframes _img{
0%{
-webkit-transform:rotateX(-360deg) translateZ(100px) rotateX(360deg);
transform:rotateX(-360deg) translateZ(100px) rotateX(360deg);
}
100%{
-webkit-transform:rotateX(0deg) translateZ(100px) rotateX(0deg);
transform:rotateX(0deg) translateZ(100px) rotateX(0deg);
}
}
div
{
border:1px solid hsla(0,0%,100%,1);
display:block;
position: relative;
width:calc(60vw);
height:calc(20vw);
margin:0% auto;
background:hsla(0,0%,60%,1);
box-shadow:inset .75em .75em .75em hsla(0,0%,100%,1),inset -.75em -.75em .75em hsla(0,0%,100%,1);
perspective:700px;
transform-style:preserve-3d;
transition:all 1s linear 0s;
}
img {
border-radius: 50%;
border:1px solid hsla(0,0%,60%,1);
position:absolute;
width:calc(8vw);
height:calc(8vw);
top:calc(100%/3 - 3%);
left:calc(100%/2 - 10%);
-webkit-filter: drop-shadow(0px 0px 40px hsla(70,80%,40%,1));
-webkit-transform:rotateX(0deg) translateZ(160px) rotateX(0deg);
filter: drop-shadow(0px 0px 40px hsla(70,80%,40%,1));
transform:rotateX(0deg) translateZ(160px) rotateX(0deg);
}
div:hover img{
animation:_img 3s infinite linear;
}
<div >
<img src="http://i.imgur.com/3DWAbmN.jpg" />
</div>
div
{
margin:0;
padding:0;
border:1px solid hsla(0,0%,100%,1);
display: inline-block;
position: relative;
width:calc(28vw);
height:calc(28vw);
background:transparent;
perspective:700px;
transform-style:preserve-3d;
}
.str{
position:absolute;
top:calc(100%/4 - 1%);
left:calc(100%/2 - 10%);
width: 0px;
height:calc(5vw);
border-left:calc(5vw) solid black;
border-top:calc(5vw) solid transparent;
border-bottom:calc(5vw) solid transparent;
border-right: transparent;
background: transparent;
transform: rotateX(0deg) translateZ(110px);
transition:transform 2s;
}
div:hover .str{
transform: rotateX(360deg) translateZ(110px);
}
.str_1{
position:absolute;
top:calc(100%/4 - 1%);
left:calc(100%/2 - 10%);
width: 0px;
height:calc(5vw);
border-left:calc(5vw) solid black;
border-top:calc(5vw) solid transparent;
border-bottom:calc(5vw) solid transparent;
border-right: transparent;
background: transparent;
transform: rotateY(0deg) translateZ(110px);
transition:transform 2s;
}
div:hover .str_1{
transform: rotateY(360deg) translateZ(110px);
}
.str_3{
position:absolute;
top:calc(100%/4 - 1%);
left:calc(100%/2 - 10%);
width: 0px;
height:calc(5vw);
border-left:calc(5vw) solid black;
border-top:calc(5vw) solid transparent;
border-bottom:calc(5vw) solid transparent;
border-right: transparent;
background: transparent;
transform: skewY(0deg) translate(0px) ;
transition:transform 2s;
}
div:hover .str_3{
transform: skewY(360deg) translate(10px);
}
<div>
<div class="str"></div>
</div>
<div>
<div class="str_1"></div>
</div>
<div>
<div class="str_3"></div>
</div>
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
ЗдравствуйтеПодскажите, как заставить картинку по достижению определенной точки двигаться обратно? Что я имею:
Хочу сделать постраничность, передаю структуру в html-страницу, потом хочу сделать условие:
Работаю с проектом на WPF, взаимодействие(связь) между View и ViewModel выполняется через catelКаждому представлению xxxView
Когда нечего было делать, нашел функцию Raycast у класса Collider2D в unityМне стало интересно, откуда будет пускаться луч (я подумал, что из всех точек...