revision:
Click on the image to rotate it 180 degrees clockwise.
Click on the image to rotate it 90 degrees clockwise.
<div class="grid_A">
<div class="grid_A">
<p class="spec">Click on the image to rotate it 180 degrees clockwise.</p>
<img src="../images/cartoon.jpg" id="image1" onclick="rotateImage();" alt="cartoon" />
<p class="spec">Click on the image to rotate it 90 degrees clockwise.</p>
<img src="../images/cartoon.jpg" id="image2" onclick="rotate();" alt="cartoon" />
</div>
<style>
#image1{margin-left: 3vw; width: 15vw; height: 15vw;}
#image2{margin-left: 3vw; width: 15vw; height: 15vw;}
.element {transform: rotate(90deg);}
</style>
<script>
function rotateImage() {
var img = document.getElementById('image1');
img.style.transform = 'rotate(180deg)';
}
function rotate() {
var img = document.getElementById('image2');
img.className = 'element';
}
</script>
</div>
Click on the button to rotate it 90 degrees anti-clockwise.
Click on the button to rotate it 90 degrees sequentially (clockwise).
<div class="grid_A">
<p class="spec">Click on the button to rotate it 90 degrees anti-clockwise.</p>
<img src="../images/cartoon.jpg" id="image3" alt="cartoon" />
<button onClick="rotateImg() ">rotate image</button>
<p class="spec">Click on the button to rotate it 90 degrees sequentially (clockwise).</p>
<img src="../images/cartoon.jpg" id="image4" alt="cartoon" />
<button onClick="rotateImg2()">rotate image</button>
</div>
<style>
#image3{margin-left: 3vw; width: 15vw; height: 15vw;}
#image4{margin-left: 3vw; width: 15vw; height: 15vw;}
</style>
<script>
function rotateImg() {
document.querySelector("#image3").style.transform = "rotate(-90deg)";
}
let rotation = 0;
function rotateImg2() {
rotation += 90; // add 90 degrees
if (rotation === 360) {
// 360 means rotate back to 0
rotation = 0;
}
document.querySelector("#image4").style.transform = `rotate(${rotation}deg)`;
}
</script>
Click on the button to rotate it 90 degrees sequentially (anti-clockwise).
rotate by clicking the image (using setAttribute)
<div class="grid_A spec">
<p class="spec">Click on the button to rotate it 90 degrees sequentially (anti-clockwise).</p>
<img id="sample" src="../images/cartoon.jpg" alt="picture" title="photo"/>
<button id="rotate-button">rotate image</button><br>
<p>rotate by clicking the image (using setAttribute)</p>
<img id="image5" src="../images/cartoon.jpg" onclick="turn();" alt="picture" title="photo"/>
</div>
<style>
#sample{margin-left: 3vw; width: 15vw; height: 15vw;}
#image5{margin-left: 3vw; width: 15vw; height: 15vw;}
</style>
<script>
var current_rotation = 0;
// change CSS transform property on click
document.querySelector("#rotate-button").addEventListener('click', function() {
// update total rotation
// if angle is positive, rotation happens clockwise. if negative, rotation happens anti-clockwise.
current_rotation -= 90;
// rotate clockwise by 90 degrees
document.querySelector("#sample").style.transform = 'rotate(' + current_rotation + 'deg)';
});
function turn(){
var img=document.getElementById('image5');
img.setAttribute('style','transform:rotate(180deg)');
}
</script>
code:
<div>
<div class="normal">normal position</div>
<div class="rotated">rotated position</div>
</div>
<style>
.normal, .rotated {width: 80px; height: 80px; background-color: skyblue; margin-left: 10vw;}
.rotated {transform: rotate(45deg); background-color: pink; }
</style>
Gradually rotate the DIV element 180 degrees, and back:
code:
<div class="spec">
<p>Gradually rotate the DIV element 180 degrees, and back:<p>
<div id="Div_1">A Div element</div>
</div>
<style>
#Div_1 {margin: 2vw auto; border: 0.1vw solid black; width: 12vw; height: 6vw;
background-color: coral; color: white; text-align: center; vertical-align: center;
animation: animate 5s infinite;}
@keyframes animate {
50% {transform: rotate(180deg);}
}
</style>
Loading...
code:
<div class="loader-container">
<div class="loader"></div>
<p>Loading...</p>
</div>
<style>
.loader-container { display: flex; justify-content: center; align-items: center;
flex-direction: column; height: 40vh;}
.loader { width: 6vw; height: 6vw; border-radius: 50%; border: 0.3vw solid #0055ff;
border-top-color: transparent; animation: rotation 1s linear infinite;}
@keyframes rotation {
from {transform: rotate(0deg); }
to {transform: rotate(360deg);}
}
.loader-container p {font-size: 1.5vw; margin-top: 2vw;}
</style>
code:
<div class="rotate">
<img id="foto" src="../images/12.jpg" alt="crowd">
</div>
<style>
.rotate #foto{ width: 20vw; height: 20vw; margin: 5vw; animation: animate2 10s linear infinite;}
@keyframes animate2{
from{transform: rotate (0deg);}
to{transform: rotate(360deg)}
}
</style>
matrix().code:
<div class="rectangle">Rotated and moved with <code>matrix()</code>.</div>
<style>
.normal, .rectangle{width: 120px; height: 60px; padding: 12px; background: limegreen;
color: white; font-family: Helvetica, sans-serif;}
.rectangle {transform-origin: 0 0; transform: matrix(0.707107, 0.707107,
-0.707107, 0.707107, 150, 0); }
</style>
The parameters are as follow:
matrix(scaleX(), skewY(), skewX(), scaleY(), translateX(), translateY()).
code:
<div class="grid_A frame">
<p>The parameters are as follow: <br>matrix(scaleX(), skewY(), skewX(),
scaleY(), translateX(), translateY()).</p><br>
<div class="two">This a normal div element.</div>
<div class="two" id="myDiv1">Using the matrix() function.</div>
<div class="two" id="myDiv2">Another use of the matrix() function.</div>
<div class="two" id="myDiv3">Another use of the matrix() function.</div>
</div>
<style>
.frame{width: 50vw; height: 30vw;}
.two { width: 80px; height: 80px; background-color: lightgreen; border: 2px solid black;
padding: 1px;}
#myDiv1 {transform: matrix(1, -0.3, 0, 1, 0, 50);}
#myDiv2 {transform: matrix(1, 0, 0.5, 1, 50, 50);}
#myDiv3 {transform: matrix(2, 1, 0.5, 1, 90, 70);}
</style>