1

私はhammer.js基本的なタッチフレンドリーなモバイルサイトを作るために使用しています。トップメニューを負のトップ位置で非表示にしました。ダブルタップするとcss3トランジションを使用して表示されます。ただし、2回目のダブルタップで再び非表示にします。

私はif/elseトップポジションを呼び出してそれに応じてリセットしようとしましたが、それを機能させることができません、誰かが私がどこで間違っているのか知っていますか?

var t = $("#topbar");
var position = t.position();

$sw.on('doubletap', function(event) {
    event.preventDefault();
    if (position.top == '-55px') {
        $('#topbar').css("top", "0");
    }
    else {
        $('#topbar').css("top", "-55px")
    }
});

サイトのアドレスはhttp://www.bettondesignwork.co.uk/tim/mobileです。

ありがとう

4

3 に答える 3

2

これを試すことができます:

var t = $("#topbar");
var position = t.offset();

$sw.on('doubletap', function(event) {
    event.preventDefault();
    if (position.top == '-55px') {
        $("#topbar").offset({ top: "0"});
    }
    else {
        $('#topbar').offset({ top: "-55px"});
    }
}​
于 2013-01-03T12:04:09.467 に答える
2

問題はこの行である可能性があります

if (position.top == '-55px')

私が間違っていなければ、.top プロパティは数値であるため、コードを次のように変更できます。

if (position.top == -55)

またはより防御的になる

if (position.top < 0)
于 2013-01-03T12:05:32.900 に答える