gpt4 book ai didi

javascript - 在 JQM/Phonegap 应用程序中捏合以缩放图像

转载 作者:行者123 更新时间:2023-11-29 18:11:24 24 4
gpt4 key购买 nike

我在这里浏览了许多不同的帖子,但似乎无法找到明确解决此问题的帖子。我正在使用 JQM 和 Phonegap 构建,需要一种缩放图像的方法。我在一页上单击图像的缩略图,图像在单独的页面中打开。

如何在这一页上缩放图像?

我找到了一些关于 hammerjs 的帖子,但从来没有一个完整的解决方案。任何帮助将不胜感激。

这是我的图片页面的样子。

<div data-role="page" id="imagePage">
<div data-role="header" data-position="fixed" data-tap-toggle="false">
<a href="#home" class="ui-btn ui-btn-icon-left ui-icon-carat-l ui-btn-corner-all" data-rel="back" data-direction="reverse">Back</a>
<h1>Image</h1>
</div>
<div data-role="content">
<div id="imageContainer">
<img src="myimage.jpg" width="100%">
</div>
</div>
</div>

更新代码:

<div data-role="page" id="imagePage" data-theme="d">
<div data-role="header" data-theme="b" data-position="fixed" data-tap-toggle="false">
<a href="#home" class="ui-btn ui-btn-icon-left ui-icon-carat-l ui-btn-corner-all ui-shadow ui-nodisc-icon" data-rel="back" data-direction="reverse">Back</a>
<h1>Image</h1>
</div>
<div data-role="content" id="imageContent" style="padding:0px;width:100%; height:100%;">
<iframe id="myframe" src="ImageViewer.html" style="width:100%; height:100%;"></iframe>
</div><!-- /Content -->
</div>

iframe 页面 ImageViewer

<html>
<head>
<meta charset="utf-8">
<title>ImageViewer</title>
<meta name="viewport" content="width=device-width, height=device-height, initial-scale=1, minimum-scale=1, maximum-scale=1.5, user-scalable=1">
<script type="text/javascript" src="jquery-1.11.1.min.js"></script>
<script type="text/javascript" src="jquery.panzoom.min.js"></script>
</head>
<body>
<img src="" style="width:100%;"/>
<script>
$(document).ready(function() {
$("img").panzoom();
});
</script>
</body>
</html>

JavaScript

function openImage(imageURL) {
var frame = document.getElementById("myframe");
var frameDoc = frame.contentDocument;
frameDoc.querySelector("img").src = imageURL;
}

更新了 2014 年 12 月 2 日以上的代码。双指缩放正在处理图像。

谢谢

雷西

最佳答案

您可以在 iframe 中加载内容,并使用手势检测和 css 转换来缩放内容。

您必须设置 <img> 的来源标记到 DOM,所以你的设置看起来像这样

<iframe id="myframe" src="imageViewer.html"></iframe>

<script>
var frame = document.getElementById("myframe");
var frameDoc = frame.contentDocument;
frameDoc.querySelector("img").src = "myimage.jpg"
</script>

和 imageViewer.html 你可以使用 jquery 插件 jquery.panzoom 进行缩放。

<html><head>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="jquery.panzoom.js"></script>
</head><body><img />
<script>
$(document).ready(function() {
$("img").panzoom();
});
</script>

应该可以了。另一种选择是在不同的 html 页面上启用视口(viewport)缩放,如果该导航不会中断您的应用程序的状态,因为当您返回时页面将重新加载。允许缩放的元标记设置是这样的

<meta name="viewport" content="width=device-width, height=device-height, initial-scale=1, minimum-scale=1, maximum-scale=1.5, user-scalable=1">

cordova 在你的 config.xml 中有一个偏好

 <preference name="EnableViewportScale" value="true" />

在其他一些建议中建议 answers on SO ,但我没试过。可悲的是,你can't load the other page in an iframe因为您的页面视口(viewport)设置会阻止缩放。

关于javascript - 在 JQM/Phonegap 应用程序中捏合以缩放图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27070550/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com