JQuery Mobile Pinch Zoom Image Only

寵の児 提交于 2019-12-18 01:20:13

问题


I have a working JQM application that I'd like to display some images in. The images currently are in their own iframe so they can be scrolled separately from the app.

I'd like to be able to pinch zoom only the images within the iframe as well.

I realize if I adjust the following code snippet that I can enable pinch zoom but this enabled it for the entire application.

<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no;" />

By removing maximum-scale pinch zoom returns but for everything.

Is there a way to enable pinch zoom only for an image? How about adding a new viewport tag to the iframe, would that work if that is even possible?

UPDATE

  • Injected HTML into the iframe. Added the meta tag, this did not help.

  • Tried .extend($.mobile.zoom, {locked:false,enabled:true}); on the iframe body, this did nothing.


回答1:


you can do this on image:

var image=document.getElementById('imageId');

image.addEventListener('gesturechange',function(e){

    if(e.scale>1){
        //zoom in 
        //increase the size of image according to the e.scale
    }

    else if(e.scale<1){
        //zoom out 
        //decrease the size of image according to the e.scale
    }
});



回答2:


As a (hack) workaround, perhaps you can detect when the user is performing a pinch gesture, then zoom the image using a CSS transform.




回答3:


It turns out the best way to do this is to use the ChildBrowser plugin. This on IOS and Android works perfect for images.

IOS Childbrowser:

 https://github.com/purplecabbage/phonegap-plugins/tree/master/iPhone/ChildBrowser

Android ChildBrowser:

 https://github.com/phonegap/phonegap-plugins/tree/master/Android/ChildBrowser

Then once you have done all the setup you can open URL's or local files like this:

 window.plugins.childBrowser.onLocationChange(location);

Do note that in a fully cross platform setup between IOS and Android they both need different versions of the plugin. IOS requires ChildBrowser init in onDeviceReady, Android does not.




回答4:


Would using some kind of widget to zoom in/out the image inplace work? eg: http://0.s3.envato.com/files/78471334/index.html
https://github.com/timmywil/jquery.panzoom



来源:https://stackoverflow.com/questions/10777800/jquery-mobile-pinch-zoom-image-only

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!