2010-12-21 7 views

답변

0

이 시도 :

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

Source

+0

하지만 자바 스크립트로 할 수 있습니까? –

+0

답변이 아니지만 사용자가 휴대 기기에서 자바 스크립트를 사용 중지하면 어떻게됩니까? Safari를 사용하는 모바일 브라우저 만 타겟팅합니까? – ngen

1

를 지금까지 내가 아는 한, 당신은 스타일을 변경하여 줌 배율을 텍스트 크기를 변경할 수 있습니다 신체의 '-webkit-텍스트 크기 조정' 요소.

확인 자세한 내용은이 링크 :

http://developer.apple.com/library/safari/#documentation/AppleApplications/Reference/SafariCSSRef/Articles/StandardCSSProperties.html%23//apple_ref/doc/uid/TP30001266--webkit-text-size-adjust

+0

JavaScript를 통해 전체 브라우저의 확대/축소 수준을 설정할 수 있어야합니다. 특히, 두 번 살짝 두드려서 줌 레벨을 적절한 수준으로 설정해야합니다. 이를 달성하기 위해 DOM 요소의 크기를 변경하고 싶지 않습니다. 사용자는 핀치 줌에서 더블 탭 줌으로 원활하게 전환 할 수 있어야합니다. – JoshNaro

+0

그러면 Safari의 원래 두 번 탭/집기 동작과 다르게 수행되기를 원하십니까? –

10

[ 업데이트]] 당신이 모바일 사파리에서 더블 탭을 캡처 할 것으로 보인다. touchend 이벤트를 처리하거나 과 같이 제공되는 프레임 워크를 사용할 수 있습니다.

는 개정 된 데모에서 살펴 보자 : http://jsbin.com/atayo4/20

<p id="tap">double tap to zoom</p> 
    <input id="zoomWidth" type="text" value="400" /> 
    <p id="feedback"></p> 

$(document).ready(function(){ 
    $('#tap').doubletap(
    // double tap handler 
    function(e) { 
     $('#feedback').addClass('red').html('double tap! Zoom width: ' + $('#zoomWidth').val()); 

     var zoomWidth = $('#zoomWidth').val(); 

     // zoom with the new width 
     $('meta[name="viewport"]').attr('content', 'width=' + zoomWidth + ', user-scalable:no'); 

     $('#zoomWidth').val(parseInt(zoomWidth, 10) - 25); 
    }, 

    // single tap handler 
    function(e) { 
     $('#feedback').removeClass('red').html('single tap! Zoom width: ' + $('#zoomWidth').val()); 
    }, 

    // double tap delay, default 500 
    400 
    ); 
}); 
1

나는 아무 소용이 자바 스크립트와 메타 태그의 최소/최대 규모와 폭을 조작했습니다. 코드로 확대/축소 수준을 설정하는 대신 (나는 불가능하다고 생각합니다), 비교적 큰 이미지 위에 작은 보이지 않는 상자를 만들 것입니다. 이렇게하면 사용자가 이미지의 흥미로운 부분을 원래의 두 번 탭하여 확대 (및 축소) 할 수 있습니다.

+0

또한,'document.createEvent ("TouchEvent");, .initTouchEvent (...),'document.createTouch (...)'및 모든 재즈를 성공없이 사용하여 두 번 탭 이벤트를 시뮬레이트하려고했습니다. 이벤트는 자바 스크립트 엔진에 의해 인식되지만 Safari의 뷰포트 컨트롤러에서는 인식되지 않습니다. –

+0

이것은 오래 전 일 이었지만 폭과 높이를 변경하고 고화질 이미지를로드하는 것으로 끝났습니다. 즉 인위적으로 확대되었습니다. – JoshNaro

+0

흥미로운 솔루션, 후속 조치 주셔서 감사합니다. 나는 meta [name = viewport] 태그를 조작하여 확대/축소 수준을 변경할 수 있다고 생각했습니다. 이것은 부드러운 전환이 아니지만, 아마도 창 크기와 스크롤 위치를 읽고 폭과 최대/최소 눈금 매개 변수를 연속적으로 조정할 수 있습니다. –

관련 문제