jq和css实现对图片进行旋转

本文探讨了两种旋转HTML图片的方法:使用jQuery(jq)和CSS。在使用jq旋转图片时,若页面上有多个图片,可能出现旋转角度叠加的错误,导致实际旋转角度超出预期。另一方面,CSS的transform属性提供了解决这一问题的方案,可以更精确地控制图片的旋转效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

html代码:

<img src="${request.contextPath}/images/rotate.svg" id="rotate_img" onclick="rotateImg('rotate_img');return false;">
  1. 方法一:使用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哪里出现了重复叠加。

  1. 方法二:使用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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值