Hướng dẫn how to rotate an image continuously in javascript - cách xoay một hình ảnh liên tục trong javascript

Tôi muốn viết một JavaScript để liên tục xoay hình ảnh bằng cách nhấp vào một nút. Tôi đã có thể thực hiện một vòng quay một phần với một cú nhấp chuột. Tôi nghĩ rằng tôi nên gọi lại chức năng để có được một vòng quay liên tục nhưng tôi không biết làm thế nào để làm điều này. Sau đây là mã của tôi.



    Image Rotation



        
    
Hướng dẫn how to rotate an image continuously in javascript - cách xoay một hình ảnh liên tục trong javascript

Hỏi ngày 30 tháng 8 năm 2021 lúc 10:01Aug 30, 2021 at 10:01

Hướng dẫn how to rotate an image continuously in javascript - cách xoay một hình ảnh liên tục trong javascript

2

Thêm một lớp trong tệp CSS của bạn như

.rotating {
   animation: rotate 1s infinite;
}

@keyframes rotate {
   from { transform: rotate(0deg); }
   to { transform: rotate(360deg); }
}

và sau đó thêm lớp đó bằng JavaScript vào phần tử của bạn

document.querySelector("#rotate").addEventListener('click', function() {
   document.querySelector("#sample").classList.add('rotating')
});

Đã trả lời ngày 30 tháng 8 năm 2021 lúc 10:10Aug 30, 2021 at 10:10

Hướng dẫn how to rotate an image continuously in javascript - cách xoay một hình ảnh liên tục trong javascript

PRSHLPRSHLPRSHL

1.3371 Huy hiệu vàng9 Huy hiệu bạc24 Huy hiệu đồng1 gold badge9 silver badges24 bronze badges

4

Trong hướng dẫn nhanh này, bạn sẽ học cách liên tục xoay hình ảnh bằng thuộc tính hoạt hình CSS.

Đầu tiên, chúng ta cần một số đánh dấu HTML với hình ảnh và một số thuộc tính:

<img
  src="https://upload.wikimedia.org/wikipedia/en/7/77/EricCartman.png"
  class="rotate linear infinite"
  width="150"
  height="150"
/>

Hình ảnh của bạn sẽ hiển thị như thế này:

Hướng dẫn how to rotate an image continuously in javascript - cách xoay một hình ảnh liên tục trong javascript

Như bạn có thể thấy phần tử hình ảnh của chúng tôi có ba lớp, rotate,

.rotating {
   animation: rotate 1s infinite;
}

@keyframes rotate {
   from { transform: rotate(0deg); }
   to { transform: rotate(360deg); }
}
0 và
.rotating {
   animation: rotate 1s infinite;
}

@keyframes rotate {
   from { transform: rotate(0deg); }
   to { transform: rotate(360deg); }
}
1. Trong bảng kiểu CSS của chúng tôi, chúng tôi cần tạo một khối khai báo cho mỗi lớp. Các loại lớp này đôi khi được gọi là các lớp tiện ích hoặc người trợ giúp, nhưng tôi thích thuật ngữ một mục đích đơn hơn vì nó mô tả nhiều hơn.

Trước tiên, hãy để Khai báo Khối mã

.rotating {
   animation: rotate 1s infinite;
}

@keyframes rotate {
   from { transform: rotate(0deg); }
   to { transform: rotate(360deg); }
}
2:

.rotate {
  animation: rotation 2s;
}

Sẽ không có gì xảy ra, bởi vì chúng ta cần xác định chức năng xoay của thuộc tính hoạt hình. Thêm quy tắc KeyFrame CSS này vào bảng kiểu của bạn:

@keyframes rotation {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(359deg);
  }
}

Bây giờ nếu bạn tải lại tab Trình duyệt của mình, bạn sẽ thấy hình ảnh của bạn xoay một lần duy nhất trong hơn 2 giây (

.rotating {
   animation: rotate 1s infinite;
}

@keyframes rotate {
   from { transform: rotate(0deg); }
   to { transform: rotate(360deg); }
}
3). Nhưng chúng ta cần phải làm thêm hai điều nữa. Chúng tôi muốn hình ảnh xoay liên tục và chúng tôi muốn thay đổi thời gian chuyển đổi hoạt hình từ
.rotating {
   animation: rotate 1s infinite;
}

@keyframes rotate {
   from { transform: rotate(0deg); }
   to { transform: rotate(360deg); }
}
4 mặc định sang đường cong tốc độ nhất quán, được gọi là
.rotating {
   animation: rotate 1s infinite;
}

@keyframes rotate {
   from { transform: rotate(0deg); }
   to { transform: rotate(360deg); }
}
0.

Thêm khối khai báo

.rotating {
   animation: rotate 1s infinite;
}

@keyframes rotate {
   from { transform: rotate(0deg); }
   to { transform: rotate(360deg); }
}
6 này vào kiểu dáng CSS của bạn:

.linear {
  animation-timing-function: linear;
}

Tải lại tab Trình duyệt của bạn và bạn sẽ thấy rằng hình ảnh của bạn hiện đang quay với tốc độ phù hợp từ đầu đến cuối.

Cuối cùng, hãy để Lôi làm cho hình ảnh của chúng tôi xoay vô hạn bằng cách khai báo khối mã

.rotating {
   animation: rotate 1s infinite;
}

@keyframes rotate {
   from { transform: rotate(0deg); }
   to { transform: rotate(360deg); }
}
7 của chúng tôi:

.infinite {
  animation-iteration-count: infinite;
}

Và voila, bây giờ bạn có một hình ảnh quay vô hạn/liên tục với đường cong tốc độ hoạt hình tuyến tính.

Hướng dẫn how to rotate an image continuously in javascript - cách xoay một hình ảnh liên tục trong javascript

Kiểm tra mã hoàn chỉnh trên Codepen

Lưu ý: Chúng tôi có thể đã khai báo tất cả các thuộc tính hoạt hình của chúng tôi trong một dòng duy nhất và một lớp duy nhất, như thế này:

.rotate-image {
  animation: rotation 2s linear infinite;
}

Trên đây tiết kiệm rất nhiều mã, nhưng đối với việc học/giảng dạy, tôi thích phá vỡ mọi thứ cho các vết cắn nhỏ hơn, bởi vì giúp dễ hiểu cách các thành phần riêng lẻ hoạt động cùng nhau.

Có nhiều đường cong hình ảnh động bên cạnh

.rotating {
   animation: rotate 1s infinite;
}

@keyframes rotate {
   from { transform: rotate(0deg); }
   to { transform: rotate(360deg); }
}
4 mặc định và
.rotating {
   animation: rotate 1s infinite;
}

@keyframes rotate {
   from { transform: rotate(0deg); }
   to { transform: rotate(360deg); }
}
0 mà chúng tôi sử dụng ở đây. Bạn có thể thực sự lạ mắt khi sử dụng đường cong hoạt hình
document.querySelector("#rotate").addEventListener('click', function() {
   document.querySelector("#sample").classList.add('rotating')
});
0, nhưng tôi sẽ lưu nó cho một hướng dẫn khác.

Làm cách nào để xoay một bức tranh liên tục?

Trước tiên, hãy khai báo khối mã .ROTATE:..
.rotate {hoạt hình: xoay 2S;}.
@KeyFrames xoay {từ {Transform: Rotate (0Deg);} thành {biến đổi: xoay (359deg);}}.
.linear {hoạt hình thời gian-chức năng: tuyến tính;}.
}.

Làm thế nào để bạn xoay một hình ảnh trong JavaScript?

Để xoay một hình ảnh với JavaScript, hãy truy cập phần tử hình ảnh bằng một phương thức như getEuityById (), sau đó đặt kiểu.Chuyển đổi thuộc tính thành một chuỗi trong định dạng xoay ({value} deg), trong đó {value} là góc xoay theo chiều kim đồng hồ theo độ.xoay.Phong cách.

Làm thế nào để bạn thêm một hình ảnh xoay trong HTML?

Cách tiếp cận: Bạn có thể sử dụng hàm xoay () được xác định là một phép biến đổi xoay một phần tử xung quanh một điểm cố định trên mặt phẳng 2D, mà không làm biến dạng nó.Nó có một tham số xác định góc xoay.Góc xoay bao gồm hai phần, giá trị của vòng quay theo sau là đơn vị xoay.use rotate() function defined as a transformation that rotates an element around a fixed point on the 2D plane, without deforming it. It takes one parameter which defines the rotation angle. The rotation angle consists of two parts, the value of the rotation followed by the unit of rotation.