2014-10-10 213 views
-1

嗨,我有這個動畫寬度更改器,它似乎自動調整到100%,當我點擊展開此腳本然後單擊我的標題徽標。任何想法爲什麼?動畫寬度調整大小100%

$(".fluid").hide(); 
$(".fixed").click(function() { 
    $("#mainwidth").animate({width: "1024px"}, 800); 
    $(this).hide(); 
    $(".fluid").show(); 
    $.cookie("width","fixed", {expires: 365}); 
    return false; 
}); 
$(".fluid").click(function() { 
    $("#mainwidth").animate({width: "95%"}, 800); 
    $(this).hide(); 
    $(".fixed").show(); 
    $.cookie("width","fluid", {expires: 365}); 
    return false; 
}); 
if($.cookie("width") == "fixed") { 
    $(".fixed").hide(); 
    $(".fluid").show(); 
    $("#mainwidth").css("width","1024px"); 
}; 

text-align: left; 
line-height: 1.4; 
margin: auto auto; 
margin-top: 40px; 
margin-bottom: 50px; 
+2

你可以做小提琴嗎? – 2014-10-10 06:27:08

+0

沒有你的HTML和CSS,它不可能說或重現你的問題。請記住,默認情況下,邊框會在外邊增長,所以如果邊框寬度大於2.5%,則會增加到100%。 – Banana 2014-10-10 06:37:23

回答

1

問題發生在以下塊:

<script type="text/javascript"> 
jQuery(function($) { 
    $(".fluid").hide(); 
    $(".fixed").click(function() { 
     $("#mainwidth").animate({width: "1024px"}, 800); 
     $(this).hide(); 
     $(".fluid").show(); 
     $.cookie("width","fixed", {expires: 365}); 
     return false; 
    }); 
    $(".fluid").click(function() { 
     $("#mainwidth").animate({width: "95%"}, 800); 
     $(this).hide(); 
     $(".fixed").show(); 
     $.cookie("width","fluid", {expires: 365}); 
     return false; 
    }); 
    if($.cookie("width") == "fixed") { 
     $(".fixed").hide(); 
     $(".fluid").show(); 
     $("#mainwidth").css("width","1024px"); 
    }; 
}); 
</script> 

讓我們看看在最後聲明:

if($.cookie("width") == "fixed") { 
    $(".fixed").hide(); 
    $(".fluid").show(); 
    $("#mainwidth").css("width","1024px"); 
}; 

它指示瀏覽器更改寬度頁面加載時。如果width Cookie值爲「固定」,則將寬度設置爲1024px。但是,如果頁面重新加載而Cookie值爲「fluid」
當您單擊徽標時,它會重新加載頁面。因此,如果cookie值是流暢的,則寬度將不會被設置爲相關值。只需添加另一個代碼塊即可處理cookie值爲「fluid」的情況,並且它可以正常工作。

if($.cookie("width") == "fixed") { 
    $(".fixed").hide(); 
    $(".fluid").show(); 
    $("#mainwidth").css("width","1024px"); 
} 
else if($.cookie("width") == "fluid") { 
    $(".fluid").hide(); 
    $(".fixed").show(); 
    $("#mainwidth").css("width","95%"); 
}; 
+0

好吧,我現在修好了。非常感謝您的時間和幫助。 – andreas 2014-10-10 07:09:12

+0

它不是關於jQuery,它只是簡單的邏輯:)你處理一個案件,但不處理其他案件。如果您注意到,只有當您點擊徽標,而寬度爲95%時,網站纔會100%,如果您在寬度爲1024像素時點擊徽標,則保持相同方式。這是因爲你只處理了兩種情況中的一種。只需將'else if'塊添加到您的代碼中,就像我寫的那樣,它應該可以工作。請不要忘記接受我的答案,如果它幫助:)(綠色V在左邊) – Banana 2014-10-10 07:11:37