2011-08-17 221 views
2

請考慮以下情況。我有2種類型的背景:1.Photoshop梯度爲我使用CSS的標記,如:jquery背景更改

html{ 
       background-image: url('imgs/gradient.png'); 
       background-repeat: repeat-x; 
       background-color: #000000; 
      } 

2.Background模式爲其標記是如下

html{ 
    background-image:url('paper.gif'); 
} 

以下jQuery是負責任的用於背景變化:

$(function() { 
      $('a').click(function() { 
       var currentLink = $(this); 
       var which = $(this).attr('id'); 
       //Color scheme variables(image,color) 
       var image = ''; 
       var color = ''; 
     //gradient + color background 
       if (which == 'a1') 
        {image = "url(backgrounds/pat2.png)"; 
        color = "#3a2c33";} 
    //pattern type background 
         else if(which == 'a2') 
        {image = "url(backgrounds/pat4.jpg)"; 
        color = " ";} 
       if(color != " "){ 
        $('html').css("background-image", image); 
        $('html').css("background-color", color); 
       } 
       else{ 
        $('html').css("background", image); 
       } 
      return false; 
      }); 
     }); 

如果我選擇圖案型背景,然後梯度/彩色型背景的背景顏色不能被初始化。

回答

1

也許你需要清除背景屬性,因爲它可能會離開這兩個背景,背景圖片和背景顏色一次全部?

2

而不是juggle background JS中的CSS值,你應該使用html上的類並切換。

html { background-image:url('paper.gif'); } 
html.alt { background:#000 url('imgs/gradient.png') repeat-x; } 
+1

這裏是一個[jsfiddle](http://jsfiddle.net/2ccxq/)使用這個概念 – MikeM

1

我認爲背景樣式應該是body而不是在html