我有一张图片可以同时旋转并计算点击次数。用户必须将图像旋转到正确的位置,然后提交此答案才能进入下一页。根据第一张图片的总点击次数(通过 clickedcount 函数检查),点击第二个按钮将导航到两个 URL 中的一个。
我已经使用 CSS 变换让图像在点击时旋转。我还有一个 clickedcount 函数,它计算点击次数,然后第二个按钮根据该总数正确响应导航到其中一个 url。但是,我需要从 2 开始计数,而不是 0,因为这是第一个正确的图像位置。然后之后的每个完整旋转(4 的倍数)也将被接受为正确的。所以点击总数是 2,然后是 6、10、14、18、22,依此类推。
在第一个函数中更改起始 clickedcount 值确实会导致上述正确的总数被接受。但是,它还会在第一次单击时将图像额外旋转 2 次(它不应该)。我猜我需要修改 'if (clickedCount % 4 === 0)' 位以有效地将 2 添加到起始总数中,但到目前为止我尝试过的所有变体都没有奏效。
到目前为止,我得到的最接近的是:
'如果 (clickedCount = 2 || 2 + (% 4 === 0))'
如果 clickedcount 等于 2 OR 2 + 4 的倍数
但它根本不接受(完全停止旋转)。我不确定我要去哪里错了!我是 javascript 新手,所以可能遗漏了一些非常明显的东西:(
JS:
<script src="http://code.jquery.com/jquery-latest.min.js" charset="utf-8"></script>
<script>
// Rotate cog when clicked
var directions = ["north", "west", "south", "east"],
clickedCount = 0;
$(function() { // on page load
$('#innercog').click(function() { //* When user clicks on first image //
$(this).removeClass(directions[clickedCount % 4]);
clickedCount++; // do not reset, just keep adding
$(this).addClass(directions[clickedCount % 4]);
console.log(clickedCount,directions[clickedCount % 4]);
});
// When tryunlock button is clicked, checks if stored clicks value is a multiple of 4 and navigates to one of the two urls depending if correct
$("#tryunlock").on("click", function() {
if (clickedCount % 4 === 0) {
console.log(clickedCount,"Entranceroom");
window.location.href = "entranceroom.html";
} else {
console.log(clickedCount,"maindoor");
window.location.href = "maindoor.html"; /* go to next page */
}
});
});
</script>
CSS:
.north {
transform: rotate(0deg);
-webkit-transform: rotate(0deg); /* Safari / Chrome */
}
.west {
transform: rotate(90deg);
-webkit-transform: rotate(90deg); /* Safari and Chrome */
}
.south {
transform: rotate(180deg);
-webkit-transform: rotate(180deg); /* Safari and Chrome */
}
.east {
transform: rotate(270deg);
-webkit-transform: rotate(270deg); /* Safari and Chrome */
}