У меня есть изображение, которое нужно повернуть. Это изображение ориентировано либо на пейзаж, либо на портрет.
У меня есть форма HTML5, чтобы принимать степени вращения с шагом 90 каждый клик. Когда это значение изменяется, изображение должно вращаться и изменять размер. Он должен всегда иметь ширину 770 пикселей, но может быть такой же высокой, как и должен быть.
Я написал следующий обработчик событий, но он не работает так, как я ожидал.
Случай использования. Когда изображение является портретом, его начальные значения составляют 770x1027 (шхх). При повороте на 90 градусов, я ожидал бы, что функция ниже поворачивает изображение, задает ширину = 1027 и height = 770. Но я вижу, что ширина и высота установлены на 770. Что я не вижу?
$("#degrees").change(function(){
var element$ = $("#photo-submission"),
w = element$.width(),
h = element$.height(),
deg = $(this).val();
element$.removeAttr("style").attr({
"style": "-webkit-transform:rotate("+ deg +"deg); width: "+ h +"px; height: "+ w + "px;"
})
});
Как пробовать его с помощью метода jQuery, фактически сделанного для изменения свойств CSS, таким образом было бы легче отслеживать ваши переменные и помещать их в нужные места:
$("#degrees").change(function(){
var el = $("#photo-submission"),
w = el.width(),
h = el.height(),
deg = this.value;
el.css({
'-webkit-transform' : 'rotate(' +deg+ 'deg)',
width : w,
height : h
});
});
Реальное преимущество этого заключается в том, что вам не нужно устанавливать ширину и высоту того, что уже есть, что в основном является тем, что вы делаете, поэтому этого достаточно
$("#degrees").change(function(){
$("#photo-submission").css({
'-webkit-transform' : 'rotate(' + this.value + 'deg)'
});
});
Кажется, вы изменили свою ширину и высоту.
element$.removeAttr("style").attr({
"style": "-webkit-transform:rotate("+ deg +"deg); width: "+ w +"px; height: "+ h + "px;"
})
"width:" + h
?