Я работаю в мобильном интернет-магазине и застрял при реализации функции масштабирования продукта
После нажатия на изображение разрешено «масштабирование пользователем», а максимальный масштаб - 10,0
Когда пользователь увеличивает масштаб продукта, все работает нормально.
Но после закрытия увеличенного изображения масштаб не сбрасывается до 1,0.
Есть ли способ динамического сброса значения масштаба области просмотра.
Кажется, что «начальный масштаб» не работает, равно как и сброс «минимального масштаба» и «максимального масштаба» до 1,0
.
Проблема возникает на iPhone / iPad
Кажется, есть решение, но я не знаю, к какому элементу я должен применить этот пост:
Как сбросить масштабирование области просмотра без полного обновления страницы?
"Вам необходимо использовать -webkit-transform: scale (1.1); переход webkit."
Но я не знаю, к какому элементу применяется стиль.
Вот некоторый код для иллюстрации проблемы.
В метатеге для области просмотра выглядит так:
<meta name="viewport" content="user-scalable=no, width=device-width, height=device-height, minimum-scale=1.0, maximum-scale=1.0" />
остальная часть страницы выглядит так:
<div id="page">
<img src="images/smallProductImage.jpg">
</div>
<div id="zoom">
<div class="jsZoomImageContainer"></div>
</div>
и это javascript ::
zoom:{
img: null,
initialScreen:null,
load:function(src){
//load the image and show it when loaded
showLoadingAnimation();
this.img = new Image();
this.img.src = src;
jQuery(this.img).load(function(){
zoom.show();
});
},
show:function(){
var screenWidth, screenHeight, imageWidth, imageHeight, scale, ctx;
hideLoadingAnimation();
jQuery("#page").hide();
jQuery("#zoom").show();
jQuery(".jsZoomImageContainer").empty();
this.initialScreen =[jQuery(window).width(), jQuery(window).height()]
jQuery(".jsZoomImageContainer").append(this.img);
imageWidth = jQuery(this.img).width();
imageHeight = jQuery(this.img).height();
scale = this.initialScreen[0] / imageWidth ;
jQuery(this.img).width(imageWidth * scale)
jQuery(this.img).height(imageHeight * scale)
jQuery(".jsZoomImageContainer").click(function(){
zoom.hide();
});
jQuery('meta[name="viewport"]',"head").attr("content","user-scalable=yes, initial-scale:1.0, minimum-scale=1.0, maximum-scale=10.0")
},
hide:function(){
jQuery(".jsZoomImageContainer").empty();
jQuery('meta[name="viewport"]',"head").attr("content","user-scalable=no, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0")
jQuery("#zoom").hide();
jQuery("#page").show();
this.img = null;
this.initialScreen = null;
}
}
jQuery("#page img").click(function(){
zoom.load("images/bigProductImage.jpg");
});