Im làm việc trên aa trực tuyến cửa hàng điện thoại di động và đã bị mắc kẹt trong khi thực hiện chức năng zoom sản phẩmCó cách nào để thiết lập lại quy mô của khung nhìn động đến 1.0
Sau khi nhấp một hình ảnh "người dùng khả năng mở rộng" được phép và quy mô tối đa được đặt thành 10.0 Khi người dùng phóng to trên sản phẩm bằng cử chỉ chụm, mọi thứ hoạt động tốt. Nhưng sau khi đóng Ảnh thu nhỏ, tỷ lệ không được đặt lại thành 1.0.
Có cách nào để đặt lại giá trị quy mô của chế độ xem động không. Các "ban đầu quy mô" dường như không làm việc, không phải không Reseting các "tối thiểu quy mô" và "tối đa quy mô" đến 1.0
Những vấn đề xảy ra trên iPhone/iPad
Có vẻ là một giải pháp , nhưng tôi không biết yếu tố nào tôi nên áp dụng cho bài đăng này: How to reset viewport scaling without full page refresh?
"Bạn cần sử dụng -webkit-transform: scale (1.1); chuyển đổi webkit".
Nhưng tôi không biết yếu tố nào được áp dụng theo kiểu nào.
Dưới đây là một số mã để minh họa sự cố.
Trong Tag meta cho khung nhìn trông như thế này:
<meta name="viewport" content="user-scalable=no, width=device-width, height=device-height, minimum-scale=1.0, maximum-scale=1.0" />
phần còn lại của trang Trông như thế này:
<div id="page">
<img src="images/smallProductImage.jpg">
</div>
<div id="zoom">
<div class="jsZoomImageContainer"></div>
</div>
và đây là 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");
});
giải pháp bạn đã đề cập sử dụng CSS để chia tỷ lệ mọi thứ, chứ không phải bản thu phóng gốc được áp dụng trên chế độ xem. Nếu bạn muốn áp dụng giải pháp đó, bạn nên suy nghĩ lại quá trình thu phóng của mình để nó được thực hiện bằng css + javascript – BBog
Nếu bạn quan tâm, tôi đã viết câu trả lời (ở đây) [https://stackoverflow.com/questions/22639296/force-mobile -browser-zoom-out-with-javascript/46137189 # 46137189] về vấn đề chính xác này. Một giải pháp hoạt động (đối với tôi) trái với tất cả các giải pháp được tìm thấy trong câu trả lời cho câu hỏi của bạn hoặc câu hỏi khác. –