4

私の目標は、モバイルデバイスのズーム機能をオンまたはオフにするボタンを用意することです。

onClickイベントを使用して次の関数を呼び出し、user-scalable = "no"で最初にロードされた後、user-scalableをオンにするボタンの作成に成功しました。これは、期待どおりに機能します。

function zoom(){
viewport = document.querySelector("meta[name=viewport]");
viewport.setAttribute('content', 'width=device-width; initial-scale=1.0; maximum-scale=3.0; user-scalable=1;');

alert("does this work?");
}

ただし、それをさらに一歩進めて、ユーザーがボタンの2回目のタッチでズームをオフにしてから、3回目に再びオンにできるようにする必要があります。以下は現在のjavascriptコードであり、ifステートメントは正しく機能しますが、ズーム機能に影響を与えることができないようです。

var toggleZoom = 0;

function zoom(){

toggleZoom++;
var toggleModulus=toggleZoom%2;

if(toggleModulus==1)
{
        viewport = document.querySelector("meta[name=viewport]");
        viewport.setAttribute('content', 'width=device-width; initial-scale=1.0; maximum-scale=3.0; user-scalable=1;');
        alert("if");
}

else
{
        viewport = document.querySelector("meta[name=viewport]");
        viewport.setAttribute('content', 'width=device-width;   initial-scale=1.0; maximum-scale=1.0; user-scalable=no;');
        alert("else");
};

alert("function complete");
}

ここに欠けているものはありますか?最初のコードでボタンに触れたときにズームをオンにできる理由がわかりませんが、2番目のコードではできません。また、2番目のコード内のすべては、属性を変更することを除いて正しく機能しているようです。

4

1 に答える 1