0

デモを作成しようとしています-1
。(ランディング)ブラウザサイズの確認>ポリゴンサイズの変更
2.ボタンをクリック>ポリゴンサイズの変更(小さい)
3。ブラウザのサイズ変更>ポリゴンサイズの変更
4.ブラウザのサイズ変更>ボタンをクリックしているかどうかを確認前に小さいモードに>ポリゴンサイズを小さいに変更


4でスタックしています。サイズ変更前のステータスを変更後のステータスに渡す方法がわかりません。再度計算します。

任意の提案をいただければ幸いです。

Demo

$(function(){
var adivide=0;
var winwid = $(window).width();
function setadivide(){  
    winwid = $(window).width(); 
    if(winwid > 800){
        adivide = 8;
    }
    else{
        adivide = 4;
    }
    console.log(adivide);
};
setadivide();

var awidth;
function acal(){
    awidth = parseInt( winwid / adivide);
};
acal();
function setawidth(){
    $('.a').css({width: awidth, height: awidth});
};
setawidth();

//****** button
//set btn visibility
function btnvis(){
    switch(adivide){
        case 4:
            $('.plus').show();
            $('.minus').hide();
        break;
        case 8:
            $('.plus').show();
            $('.minus').hide();
        break;
    }
};
btnvis();
//click btn update adivide and set btn visibility
function btnclick(){
    $('.plus').click(function(){
        switch(adivide){
            case 4:
                adivide = adivide -2;
                console.log(adivide);
                acal();
                setawidth();
                $('.plus').hide();
                $('.minus').show();
            break;
            case 8:
                adivide = adivide - 2;
                console.log(adivide);
                acal();
                setawidth();
                $('.plus').hide();
                $('.minus').show();
            break;
        }
    });
    $('.minus').click(function(){
        switch(adivide){
            case 2:
                adivide = adivide + 2;
                console.log(adivide);
                acal();
                setawidth();
                $('.plus').show();
                $('.minus').hide();
            break;
            case 6:
                adivide = adivide + 2;
                console.log(adivide);
                acal();
                setawidth();
                $('.plus').show();
                $('.minus').hide();
            break;
        }
    });
};
btnclick();
//end button ******
$(window).resize(function(){
    setadivide();
    acal();
    setawidth();
    //****** button
    btnvis();
    //end button ******
});
});
4

1 に答える 1

2

(編集された回答)

adivide現在の値(つまり現在のステータス)を考慮に入れるようにsetadivide関数を変更します。

function setadivide(){    
    winwid = $(window).width();    
    if(winwid > 800){
        if (adivide == 2)
           adivide = 6;
        else if (adivide != 6)
           adivide = 8;
    }
    else{
        if (adivide == 6)
           adivide = 2;
        else if (adivide != 2)
           adivide = 4;
    }
    console.log(adivide);
};

変更されたデモ

于 2012-11-30T07:44:51.243 に答える