2014-06-15 87 views
0

我想將兩個值傳遞給函數「sprite-chooser()」,以便我可以選擇在淺色或深色背景中加載哪個精靈。在我加載精靈之前,我需要檢查它是第一個UI - 所以我有兩個@if語句和內嵌的@if語句,但得到一個錯誤說:語法錯誤:函數精靈選擇器沒有@return完成。如果語句嵌套在函數中,則嵌套Scss

 
@function sprite-chooser($ui-for, $bg-color) { 
    @if ($ui-for == "ui-1") { 
     @if (lightness($bg-color) > 60 and $ui-for == "ui-1") { 
      @return #{$sprite-dark-ui-1}; 
     }  
     @else { 
      @return #{$sprite-light-ui-1}; 
     } 
    } 
    @else if ($ui-for == "ui-2") { 
     @if (lightness($bg-color) > 60 and $ui-for == "ui-2") { 
      @return #{$sprite-dark-ui-2}; 
     } 
     @else { 
      @return #{$sprite-light-ui-2}; 
     } 
    } 
} 
 
$background-color: #fff; 
.class-name { 
    background: url(sprite-chooser("ui-1", $background-color)) 0 0 no-repeat; 
} 

回答

0

您需要另一個else情況下

... 
    @else if ($ui-for == "ui-2") { 
     @if (lightness($bg-color) > 60 and $ui-for == "ui-2") { 
      @return #{$sprite-dark-ui-2}; 
     } 
     @else { 
      @return #{$sprite-light-ui-2}; 
     } 
    } 
    @else { @return null; } 
} 
+0

感謝扎克 - 我試過了,現在只是直接跳到別的。 – moonunit7

+0

@ moonunit7這是因爲既沒有輸入以前的if語句,這意味着在您的設置中出現了錯誤。這解決了你所問的錯誤,而不是爲什麼'if'不起作用的原因(:我必須看看你是如何調用函數來幫助解決爲什麼它沒有輸入'if'語句 –

+0

我這樣稱呼它: $ background-color:#fff; .class-name { background:url(sprite-chooser(「ui-1」,$ background-color))0 0 no-repeat; } – moonunit7