我很困惑。为什么我不能同时使用刻度和旋转?我试过这个,但它不起作用:
.rotate-img{
-webkit-transform:scale(2,2);
-webkit-transform:rotate(90deg);
margin-left:20%;
margin-top:10%;
}
我尝试过jQuery,但两种方法都不起作用:
<style>
.zoom{
-webkit-transform:scale(2,2);
margin-left:20%;
margin-top:10%;
}
</style>
<script>
$(document).ready(function(){
$("img").dblclick(function(){
$(this).addClass("zoom");
$(this).contextmenu(function(){
$(this).css("-webkit-transform","rotate(90deg)");
return false;
})
});
})
</script>
我如何缩放img,当我点击右键然后旋转90度
答案 0 :(得分:56)
您可以使用带有transform
值的rotate(**deg)
属性使用CSS旋转图像
.rotate-img {
-webkit-transform : rotate(90deg) scale(0.2); /* Chrome, Opera 15+, Safari 3.1+ */
-ms-transform : rotate(90deg) scale(0.2); /* IE 9 */
transform : rotate(90deg) scale(0.2); /* Firefox 16+, IE 10+, Opera */
left : -200px;
position: relative;
}
<img class="rotate-img" src="https://appharbor.com/assets/images/stackoverflow-logo.png" />
在多行上应用transform
时,它就像任何其他CSS属性一样,它会被覆盖,所以只使用了最后一行,就像这样:
.myclass {
top: 100px;
top: 400px;
}
只会应用最后一个,因此您需要将所有转换放在一个transform
中。
答案 1 :(得分:13)
好吧,建立在ateneo的答案之上,其中包括能够CSS transform的所有浏览器。
.rotate-img {
-webkit-transform: rotate(90deg) scale(2.2); /* Chrome 4+, Op 15+, Saf 3.1, iOS Saf 3.2+ */
-moz-transform: rotate(90deg) scale(2.2); /* Fx 3.5-15 */
-ms-transform: rotate(90deg) scale(2.2); /* IE 9 */
-o-transform: rotate(90deg) scale(2.2); /* Op 10.5-12 */
transform: rotate(90deg) scale(2.2); /* Fx 16+, IE 10+ */
margin: 10% 0 0 20%;
}
见扩展JS Fiddle。
答案 2 :(得分:1)
您可以同时缩放和旋转,但必须在同一行上执行,否则您将用新值覆盖prievius值。
let htmlElement = document.getElementById("rotate-img");
let scaleX = -0.3;
let scaleY = 0.2;
let angle = 45 ;
// NOTICE!! THE BACK-TICKS, not regular quotes. Will decode variables inside before printing.
// Code for Safari
htmlElement.style.WebkitTransform = `scale( ${scaleX}, ${scaleY} ) rotate( ${angle}deg )`;
// Code for IE9
htmlElement.style.msTransform = `scale( ${scaleX}, ${scaleY} ) rotate( ${angle}deg )`;
// Standard syntax
htmlElement.style.transform = `scale( ${scaleX}, ${scaleY} ) rotate( ${angle}deg )`;
<img id="rotate-img" src="https://appharbor.com/assets/images/stackoverflow-logo.png" />
还要注意,该元素上任何现有的样式都将被覆盖,除非您首先将该样式保存到(字符串)变量中,然后将新样式添加(附加或连接)到该已保存的变量中,然后再添加整个变量回到html元素上。
答案 3 :(得分:0)
您无需单独编写代码即可同时使用旋转和缩放 你可以这样使用它:
transform:标度(1.3)旋转(7deg);