#javascript #cordova #iscroll
#javascript #кордова #iscroll
Вопрос:
Я пытался создать вкладку в моем приложении cordova, в которой отображается карта. Я хочу, чтобы пользователи могли нажимать для увеличения и уменьшения изображения и панорамирования. Я использовал последнюю сборку iScroll и не смог заставить что-либо работать правильно. Недавно я наткнулся на эту демонстрацию
http://lab.cubiq.org/iscroll/examples/zoom/
Который делает именно то, что я хочу, чтобы мое приложение выполняло и работало в браузере моего телефона. Однако, когда я скопировал iscroll.js и исходный код этой демонстрации и вставил его в свое приложение, чтобы протестировать его через cordova, я не смог увеличить масштаб на своем телефоне Android или эмуляторе ios, только перемещаться. Я добился того же на странице, к которой я действительно хочу применить это:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=0, minimum-scale=1.0, maximum-scale=1.0">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
<script type="text/javascript" src="js/iscroll.js"></script>
<script type="text/javascript">
var myScroll;
function loaded() {
myScroll = new iScroll('wrapper', {
zoom:true,
onBeforeScrollStart:null,
zoomMin:0.25,
zoomStart:0.5,
});
}
document.addEventListener('touchmove', function (e) { e.preventDefault(); }, false);
document.addEventListener('DOMContentLoaded', loaded, false);
</script>
<style type="text/css">
html {
-ms-touch-action: none;
}
body {
overflow: hidden;
}
#wrapper {
position: absolute;
z-index: 1;
top: 3px;
bottom: 3px;
left: 3px;
right: 3px;
background: #ccc;
overflow: auto;
}
#scroller {
position:relative;
background: #ccc;
/*-webkit-touch-callout:none;*/
-webkit-tap-highlight-color:rgba(0,0,0,0);
width:725px;
padding:0;
}
img {
-webkit-transform:translate3d(0,0,0);
}
</style>
</head>
<body Onload="loaded()">
<ons-screen>
<ons-navigator title="Map">
<div id="wrapper">
<div id="scroller">
<!--<iframe src="thing.html" style="width:100%; height:100%"></iframe>-->
<img src="img/map.png"></img>
</ons-page>
</div>
</ons-navigator>
</ons-screen>
</body>
<!--<script src="js/hammer.min.js"></script>
<script src="js/myLogic.js"></script>-->
</html>
Если кто-нибудь может помочь мне понять, почему это работает в браузере, но не при переводе в машинный код, или как заставить его работать, я буду у вас в долгу.
Комментарии:
1. О, сценарии с комментариями внизу взяты из того времени, когда я пытался решить эту проблему с помощью hammer.js …
2. ОБНОВЛЕНИЕ: я вставил демонстрационную версию iScroll5 точно так же, как я делал с демонстрационной версией iScroll4, и она работала еще хуже, это беспорядок, вероятно, больше не будет использовать подобную структуру. Лучше всего просто написать это дважды.