The translate3d function for CSS specifies a 3D translation by the vector [tx,ty,tz], with tx, ty and tz being the first, second and third translation-value parameters respectively.
<translate3d()> =
translate3d(
<length-percentage> ,
<length-percentage> ,
<length>
) <length-percentage> =
<length> |
<percentage> <length> Specifies the length using a number followed by a unit of measurement.
<percentage> Specifies the percentage using a number followed by a percent sign (%).
<!doctype html>
<html>
<head>
<style>
.cube
{
height: 100px;
margin: 100px;
perspective: 100px;
transform-style: preserve-3d;
width: 100px;
}
.side
{
color: white;
font-family: sans-serif;
font-size: 50px;
height: 100px;
line-height: 100px;
position: absolute;
text-align: center;
width: 100px;
}
.side1
{
background-color: rgb(255 0 0 / 0.5);
transform: rotateY(-90deg) translateZ(50px);
}
.side2
{
background-color: rgb(255 255 0 / 0.5);
transform: rotateY(90deg) translateZ(50px);
}
.side3
{
background-color: rgb(0 255 0 / 0.5);
transform: rotateX(90deg) translateZ(50px);
}
.side4
{
background-color: rgb(0 255 255 / 0.5);
transform: rotateX(-90deg) translateZ(50px);
}
.side5
{
background-color: rgb(0 0 255 / 0.5);
transform: rotateY(180deg) translateZ(50px);
}
.side6
{
background-color: rgb(255 0 255 / 0.5);
transform: translate3d(50%, 50%, 50px);
}
</style>
</head>
<body>
<p>percentage</p>
<div class="cube">
<div class="side side1">1</div>
<div class="side side2">2</div>
<div class="side side3">3</div>
<div class="side side4">4</div>
<div class="side side5">5</div>
<div class="side side6">6</div>
</div>
</body>
</html>
<!doctype html>
<html>
<head>
<style>
.cube
{
height: 100px;
margin: 100px;
perspective: 100px;
transform-style: preserve-3d;
width: 100px;
}
.side
{
color: white;
font-family: sans-serif;
font-size: 50px;
height: 100px;
line-height: 100px;
position: absolute;
text-align: center;
width: 100px;
}
.side1
{
background-color: rgb(255 0 0 / 0.5);
transform: rotateY(-90deg) translateZ(50px);
}
.side2
{
background-color: rgb(255 255 0 / 0.5);
transform: rotateY(90deg) translateZ(50px);
}
.side3
{
background-color: rgb(0 255 0 / 0.5);
transform: rotateX(90deg) translateZ(50px);
}
.side4
{
background-color: rgb(0 255 255 / 0.5);
transform: rotateX(-90deg) translateZ(50px);
}
.side5
{
background-color: rgb(0 0 255 / 0.5);
transform: rotateY(180deg) translateZ(50px);
}
.side6
{
background-color: rgb(255 0 255 / 0.5);
}
</style>
</head>
<body>
<button>initial</button>
<button value="translate3d(100px, 100px, 50px)">length</button>
<button value="translate3d(50%, 50%, 50px)">percentage</button>
<p>translate3d</p>
<div class="cube">
<div class="side side1">1</div>
<div class="side side2">2</div>
<div class="side side3">3</div>
<div class="side side4">4</div>
<div class="side side5">5</div>
<div class="side side6">6</div>
</div>
<script>
function myfunction(myparameter)
{
const mytarget = myparameter.target;
const myproperty = mytarget.value || mytarget.innerHTML;
document.querySelector(".side6").style.transform = myproperty;
}
for(const mybutton of document.querySelectorAll("button"))
{
mybutton.addEventListener("mouseover", myfunction);
}
</script>
</body>
</html>