ユーザーが指定した角度で画像を回転させる必要があります。IE以外のブラウザでJavaScriptのimage/divを回転させる方法
私は次のコードを使用しますが、IEでのみ動作し、他のブラウザでは動作しません。
<div id="frame1" style="overflow:hidden" width='300' height='300'>
<div id="frame2" width='200' height='200'>
<img src='1.jpeg'' id='im' src='1.jpeg' width='10' height='10'>
</div>
</div>
<script type="text/javascript">
rotate(frame2, 45);
function rotate (elem, deg)
{
if (navigator.appName=='Microsoft Internet Explorer')
{
rad = deg*Math.PI/180;
elem.style.filter="progid:DXImageTransform.Microsoft.Matrix(M11='1.0', sizingmethod='auto expand')";
elem.filters.item(0).M11 = Math.cos(rad);
elem.filters.item(0).M12 = -Math.sin(rad);
elem.filters.item(0).M21 = Math.sin(rad);
elem.filters.item(0).M22 = Math.cos(rad);
elem.style.marginLeft=((canvsize-elem.offsetWidth)/2)+'px'
elem.style.marginTop=((canvsize-elem.offsetHeight)/2)+'px'
}
else
{
elem.style.MozTransform = 'rotate(' + deg + ')';
elem.style.WebkitTransform = 'rotate(' + deg + ')';
elem.style.OTransform = 'rotate(' + deg + ')';
elem.style.MsTransform = 'rotate(' + deg + ')';
elem.style.transform = 'rotate(' + deg + ')';
}
}
</script>
助けてもらえますか?
を追加するのを忘れ見ることができるように、ブラウザの検出が悪です。 'navigator.appName'は' 'Microsoft Internet Explorer ''に等しくフィルタがサポートされていないため、あなたのコードはIE10では動作しません。 '* transform'属性が' elem.style'に存在するかどうかを確認し、そうでない場合にのみフィルタをフォールバックしてください。 – duri