【发布时间】:2018-08-30 08:16:50
【问题描述】:
当您单击它时,我试图使图像旋转。你点击的次数越多,它旋转的越快,如果你停止点击,它会随着时间的推移而变慢。
问题在于,在没有 jQuery 的情况下旋转对象的唯一方法是使用 CSS 中的“transform”属性(至少我所知道的)。有没有办法在 CSS 中使用 JavaScript 变量?还是有另一种方法来旋转我的图像?还是我需要使用 jQuery?
代码:
var spinner = document.getElementById("spinner");
var speed = 0;
var addSpeed = 10;
var slowSpeed = 2;
//Activates Slowdown
window.onload = loop();
//Speed up
function spin() {
if (speed < 0) {
speed = speed + 10;
loop()
} else {
speed = speed + 10;
}
}
spinner.addEventListener('click', spin);
//Slowdown
function loop() {
setTimeout(
function slow() {
speed = speed - slowSpeed;
document.getElementById("speed").innerHTML = speed;
if (speed > 0) {
loop();
}
}, 1000)
}
//Selectors
function wheel() {
spinner.src = "http://pngimg.com/uploads/car_wheel/car_wheel_PNG23305.png";
}
function spiral() {
spinner.src = "https://upload.wikimedia.org/wikipedia/commons/thumb/e/e8/Black_bold_spiral.svg/2000px-Black_bold_spiral.svg.png";
}
#spinner {
width: 500px;
}
#spinner {
transform: rotate("speed"deg);
}
/* The "speed" is the variable I want to use from the JavaScript */
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" type="text/css" href="style.css"/>
</head>
<body>
<div id="spinnerContainer">
<img id="spinner" src="http://pngimg.com/uploads/car_wheel/car_wheel_PNG23305.png"/>
<h4 id="speed">N/A</h4>
</div>
<div id="selectors">
<ul>
<button onclick="wheel()">Wheel</button>
<button onclick="spiral()">Spiral</button>
</ul>
</div>
<footer>
</footer>
<script src="script.js"></script>
</body>
</html>
<!-- END -->
【问题讨论】:
-
据我所知,您不能在 CSS 文件中使用 javascript 变量。
-
不,我不知道
-
您不能直接在 CSS 中使用 JS 变量,但是您可以更新应用于 JS 中元素的 CSS 规则。然而,这确实不太理想。为了实现您在此处的要求,您可以使用 CSS 为轮子设置动画,并使用 JS 来触发动画
-
你不能用 JS 来给你的元素设置样式吗?请参阅MDN
-
您可以使用 javascript 指定样式。
my_element.style.transform='<transform value here>'
标签: javascript jquery html css