我非常喜欢上面@Savage 的回答。我希望能够只向元素添加一个类,以使任何具有该类的图像可旋转。当我点击右侧时,也想让它向右(顺时针)旋转,当我点击左侧时,它在左侧(逆时针)旋转。
这里是我连接点击事件的地方 (from this post) - 我确实在页面上使用 jQuery,所以请原谅我的放纵 - 但这会根据您点击的图像上的位置为您提供正确的旋转:
$('.tot-rotatable-image').on('click', function (e) {
var elm = $(this);
var xPos = e.pageX - elm.offset().left;
if((elm.width() / 2) >= xPos){
addRotation(e, -90);
} else {
addRotation(e, 90);
}
});
这里有一个稍微修改过的 addRotation 版本,它只接受事件而不是选择器。这与 @Savage 采用的将当前旋转附加到 DOM 元素相关的方法特别有效。
function addRotation(evt, degrees) {
var control = $(evt.currentTarget);
var currentRotation = parseInt(control.data('rotation'));
degrees += isNaN(currentRotation) ? 0 : currentRotation;
control.css({
'transform': 'rotate(' + degrees + 'deg)',
'-ms-transform': 'rotate(' + degrees + 'deg)',
'-moz-transform': 'rotate(' + degrees + 'deg)',
'-webkit-transform': 'rotate(' + degrees + 'deg)',
'-o-transform': 'rotate(' + degrees + 'deg)'
});
control.data('rotation', degrees);
}
我确实有一些与图像重叠位置有关的样式问题,但我仍然对如何快速轻松地散布这些内容感到满意。