Показать сообщение отдельно
  #9 (permalink)  
Старый 18.08.2012, 16:37
Новичок на форуме
Отправить личное сообщение для cosmos44 Посмотреть профиль Найти все сообщения от cosmos44
 
Регистрация: 18.08.2012
Сообщений: 1

Доброго времени суток всем почитателям IE.
Доброго времени суток всем почитателям IE.
Я случайно забрел на данную ветку решил помочь народу над головной болью – Вращение элемента в IE. Не используя трех – килограммовых jQuery . Работает естественно только в IE, так как в нем и есть головная боль.
<div id="wrap" style="position: absolute; top:100px; left:100px; border:1px solid red;">
  <div id="hndl" style="position: relative; width:400px; height:300px; filter:progid:DXImageTransform.Microsoft.Matrix(M11=1,M12=0,M21=0,M22=1, sizingMethod='auto expand');">
  <a href="http://sbw.in.ua/"><strong>sbw.in.ua</strong></a>
   <div style="position: relative; filter:alpha(opacity=10); background-color: #06F; width:100%; height:100%; border:1px solid #000000;">
    <div style="position: relative; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fon.png', sizingMethod='scale'); WIDTH: 100%; HEIGHT: 100%;">
    
    </div>
   </div>
 <span style="display:none">123456789</span>
 </div>
</div>
<script type="text/javascript">
	var handler = document.getElementById('hndl');
	var wraper = document.getElementById('wrap');
	var alpha = 0;
	var betta = Math.atan2(150, 200)*180/Math.PI;
	var center = {left:100, top:100, w2:200, h2:150};

	function rotate(){
	 if (alpha >= 360)  alpha=0; else alpha= alpha+5;
	var fi = alpha +180 + betta;
	if (fi >=360) fi = fi-360;
	 var M11 = handler.filters['DXImageTransform.Microsoft.Matrix'].M11 = Math.cos(alpha*Math.PI/180);
	 var M12 = handler.filters['DXImageTransform.Microsoft.Matrix'].M12 = -Math.sin(alpha*Math.PI/180);
	 var M21 = handler.filters['DXImageTransform.Microsoft.Matrix'].M21 = Math.sin(alpha*Math.PI/180);
	 var M22 = handler.filters['DXImageTransform.Microsoft.Matrix'].M22 = Math.cos(alpha*Math.PI/180);
	 handler.filters['DXImageTransform.Microsoft.Matrix'].dx = 0;
	 handler.filters['DXImageTransform.Microsoft.Matrix'].dy = 0;
	  wraper.style.left = center.left + center.w2 - wraper.offsetWidth/2;
	  center.left = 	center.left + center.w2 - wraper.offsetWidth/2;
	  center.w2 = 	wraper.offsetWidth/2;
	  wraper.style.top = center.top + center.h2 - wraper.offsetHeight/2;
           center.top = center.top + center.h2 - wraper.offsetHeight/2;
	  center.h2 = wraper.offsetHeight/2
	window.status =  wraper.offsetWidth  +'   '+wraper.offsetHeight +' '+alpha +' fi= '+fi +' '+betta;
	window.setTimeout(rotate, 12);
	} rotate();
 </script>
Ответить с цитированием