[英]Rotate image every time on click JQuery
我想每次单击都旋转图像。.我创建了一个函数来执行此操作,但是图像仅在第一次单击时旋转。此外,一旦图像旋转,图像的宽度和宽度都会自动更改。高度..如何每次保持相同的宽度和高度?
这是功能:
$(document).ready(function () {
$("img").click(function () {
$(this).rotate(45)
})
})
只需使用javascript即可轻松完成,工作示例如下所示
<div id="imgWrapper">
<img src="Desert.jpg" id="image" onclick="rotateBy10Deg(this)">
</div>
<script>
var delta =0;
function rotateBy10Deg(ele){
ele.style.webkitTransform="rotate("+delta+"deg)";
delta+=10;
}
</script>
该插件将img
转换为canvas
,这就是单击第二次不起作用的原因。 更改您的jQuery或参考此演示
$(document).ready(function() {
$("img").click(function() {
$(this).rotate(45);
});
$('body').on('click', 'canvas', function() {
$(this).rotate(45);
});
});
我建议在CSS文件中设置max-height
和max-width
。 这将确保图像不超过特定大小。
此链接可以帮助您:
直接从该链接获取,以防您不想单击:
javascipt的
var rotate_factor = 0;
function rotateMe(e) {
rotate_factor += 1;
var rotate_angle = (180 * rotate_factor) % 360;
$(e).rotate({angle:rotate_angle});
}
HTML
<img src='blue_down_arrow.png' onclick='rotateMe(this);' /></a>
我认为角度(45度)是根据其初始角度0计算得出的。图像成45度后,如果角度发生变化(例如90度),则只需旋转即可。 所以下面的代码可能有效
$(document).ready(function () {
var angle = 0;
$("img").click(function () {
angle = angle+45;
$(this).rotate(angle);
})
})
我按照您的建议做了,我在JQuery中使用了CSS:
CSS:
.rotate:active {
transform: rotate(180deg)
}
JQuery的:
$(document).ready(function () {
$("img").click(function () {
//forcing img to rotate every time on click()
if ($(this).css("transform")=='none') {
$(this).css("transform", "rotate(180deg)");
}
else {
$(this).css("transform","")
}
})
})
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.