2013-09-01 53 views
0

我有5個函數,如下所示。我想要做的是一旦用戶將每個欄杆滑動到一個位置,總共5個欄杆的總和就會打印出一條信息。將5個函數的總值加起來在屏幕上打印結果

根據達到的總數,將取決於顯示的消息。例如,如果所有5個滑動條的總數= 500,則該消息將顯示爲「您非常高興」。如果所有5個滑動條的總數= 100,則該消息將顯示「你非常傷心」

我對此很陌生,所以尋找一些經驗和最佳實踐建議,以便我可以把握和學習。

$(function() { 
    $("#slider-vertical").slider({ 
     orientation: "vertical", 
     range: "min", 
     min: 0, 
     max: 100, 
     value: 10, 
     slide: function (event, ui) { 
      $("#amount").val(ui.value); 
     } 
    }); 
    $("#amount").val($("#slider-vertical").slider("value")); 
}); 

在HTML中,滑塊的結果被示出這樣的:

<p> 
    <label for="amount">Volume:</label> 
    <input type="text" id="amount" style="border: 0; color: #f6931f; font- weight: bold;" 
    /> 
</p> 
<div id="slider-vertical" style="height: 200px;"></div> 
</div> 

回答

0
<p> 
    <label for="amount">Volume:</label> 
    <input type="text" id="amount" style="border: 0; color: #f6931f; font-weight: bold;" /> 
</p> 
<style> 
    .slider { height: 200px; float:left; margin-right:20px; } 
</style> 
<div class="slider"></div> 
<div class="slider"></div> 
<div class="slider"></div> 
<div class="slider"></div> 
<div class="slider"></div> 

<script> 
$(function() { 
    $(".slider").slider({ 
     orientation: "vertical", 
     range: "min", 
     min: 0, 
     max: 100, 
     value: 10, 
     slide: function(event, ui) { 
      var total = 0; 
      $('.slider').each(function() { 
       total += $(this).slider('value'); 
      }); 
      $("#amount").val(total); 
     } 
    }); 
}); 
</script> 

ADDITION:

爲了顯示根據合計值不同的圖像,您應該首先使用圖像標籤代替輸入標籤

<img id="amount-img" src="/path/to/images/defualt.png"/> 

;其次,像這樣用代碼來選擇和顯示圖像:

slide: function(event, ui) { 
    var total = 0; 
    $('.slider').each(function() { 
     total += $(this).slider('value'); 
    }); 

    var img = 'default.png'; 
    if(total>=50) img = 'above50.png'; 
    else if(total>=100) img = 'above100.png'; 
    else if(total>=250) img = 'above250.png'; 

    $('#amount-img').attr('src', '/path/to/images/'+img); 
} 
+0

而你很可能誤用'input' - 這是不顯示的消息,但捕捉用戶輸入。您可以動態設置_any_ html元素的內容 - 只需使用'.text(msg)'或'.html(msg)'而不是'.val(msg)' –

+0

Thanks Mas。其實我想要的輸出是一個圖像。我將如何實現這一目標? – Dano007

+0

很簡單!只需選擇基於'total'的圖像名稱,然後使用'$('#image-id')。attr('src',selected_name);'改變'img'-tag的src'屬性,顯示。在答案中反映了這一點。 –