html代码:
<img src="${request.contextPath}/images/rotate.svg" id="rotate_img" onclick="rotateImg('rotate_img');return false;">
- 方法一:使用jq的方法旋转图片
function rotateImg(imgId){
var image = new Image();
image = document.getElementById(imgId);
var w = image.width;
var h = image.height;
var dg = $("#"+imgId).attr("degree");
dg = Number(dg)+90;
$("#"+imgId).rotate(dg);
$("#"+imgId).attr("degree",dg);
$("#"+imgId).attr("width",h);
$("#"+imgId).attr("height",w);
$("#"+imgId).css("transform-origin","50.5% 50% 0px");
var can = $("#"+imgId).parent().offset();
$("#"+imgId).offset({top:can.top,left:can.left});
}
缺点:当一个页面上同时有两个图片需要进行旋转的时候,当第一个图片旋转90度后,
再旋转第二个图片,也旋转90度的时候,第二个图片在执行rotate方法的时候会被旋
转180度,虽然dg传入的为90,但是执行结果还是被旋转了180度,这个问题也尚未弄
清除具体在rotate哪里出现了重复叠加。
- 方法二:使用css的方法旋转图片
function rotateImg(imgId){
var image = new Image();
image = document.getElementById(imgId);
var w = image.width;
var h = image.height;
var dg = $("#"+imgId).attr("degree");
dg = Number(dg)+90;
$("#"+imgId).css("transform","rotate("+dg+"deg)");
$("#"+imgId).attr("degree",dg);
$("#"+imgId).attr("width",h);
$("#"+imgId).attr("height",w);
$("#"+imgId).css("transform-origin","50.5% 50% 0px");
var can = $("#"+imgId).parent().offset();
$("#"+imgId).offset({top:can.top,left:can.left});
}
css中transform属性:http://www.w3school.com.cn/cssref/pr_transform.asp