2011-03-14 86 views
0

我正在建立一個網站使用大量的動畫,但我必須限制動畫jQuery.fx.interval = 100;所以CPU不會達到100%。由於動畫速度較慢,我想知道是他們的一種方式,我可以在我的頁面上有一個滑塊,這樣任何用戶都可以通過將其滑動得更高或將其降至0來控制jQuery.fx.interval?如何使ui滑塊來控制jQuery.fx.interval?

謝謝,任何幫助表示讚賞。

如何添加

jQuery.fx.interval = 100; 

爲了這

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

動畫背景,使用jQuery插件backgroundPosition使用。 http://plugins.jquery.com/project/backgroundPosition-Effect

$(function(){ 
    $('body').animate({backgroundPosition:"(-99999px 0)"}, 6000000, 'linear'); 
    $('html').animate({backgroundPosition:"(-99999px -100000px)"}, 12000000, 'linear'); 
}); 

回答

0

爲了方便起見,你可以使用這個插件: https://github.com/lrbabe/jquery.updateInterval

然後,你可以這樣做:

$(document).ready(function() { 
    $("#slider").slider({ 
     range: "min", 
     value: 100, 
     min: 0, 
     max: 700, 
     stop: function(event, ui) { 
      $("#amount").html(ui.value); 
      $.fx.updateInterval(ui.value); 
     } 
    }); 
}); 

注意:

由於jQuery使用一個全局區間,沒有動畫應該是ru nning或所有動畫應該停止以使該屬性的更改生效。 http://api.jquery.com/jQuery.fx.interval/

+0

嗯......它不起作用。那麼我需要將jQuery.fx.off一些如何? – Reave 2011-03-14 17:21:04

+0

你知道,如果你重新加載頁面,上一個滑塊值會丟失,jQuery.fx.interval值也是如此,對吧? 動畫是否始終「運行」?您應該停止動畫並重新啓動它,以便使用新值。 – AlfaTeK 2011-03-14 17:22:18

+0

你說的對,我把它存入一個餅乾。我一直運行的動畫是背景。我有兩個背景以不同的速度向相同的方向移動,因此產生了視差效果。 – Reave 2011-03-14 18:51:47