來自:http://wenku.baidu.com/link?url=G2JoOrHKrwinFAY03-QpigyvZ2Jg_fZ0JKRtEcnX7jCPyeb4F9cBSC6gT1xKt2XAyHdhPd-lKFuhImeOFdCsjvgzSyWn_oZALo6zgwSsKpm
JQuery. Sparkline線狀圖插件
圖形的類型,共有'line' (default), 'bar', 'tristate', 'discrete', 'bullet', 'pie' , 'box'
使用Sparklines你需要四件事情:
1、jQuery JavaScript庫使用至少1.2或更高版本
2、在頁面中引用jquery.sparkline-2.1.2.min.js插件.
3、在頁面上內嵌一個標簽來顯示sparkline.
4、實際上調用sparkline()函數來顯示sparkline。
下面我做一個簡單的小例子
首先在你的頁面頭部添加JS引用
<script type="text/javascript" src="jquery-1.4.4.js">script>
<script type="text/javascript" src="jquery.sparkline.js">script>
添加一個SPAN
Inline Sparkline: <span class="inlinesparkline">1,4,4,7,5,9,10</span>
JS代碼
$(function() {
/** This code runs when everything has been loaded on the page */
/* Inline sparklines take their values from the contents of the tag */
$('.inlinesparkline').sparkline();
});
控件通用屬性
type - line (default), bar, tristate, discrete, bullet, pie or box;
width -圖表的寬度- '默認為'auto -可以是任何有效的CSS寬度- 1.5em,20像素等,對bar與tristate無效
height -圖表的高度的-默認為'auto'
lineColor -圖表描線顏色
fillColor -填充顏色,設置為false,以禁用填充。
chartRangeMin -指定要使用的最小值范圍的Y值的圖表——默認提供的最小值
chartRangeMax -指定要使用的最大值的Y值的范圍圖,默認提供的最大價值
composite -是否使用組合,如果為true,則不重繪圖形
enableTagOptions -如果為true選項可以被指定為屬性,每個標簽上sparkline將進行改造,以及傳遞給sparkline()函數。 另見tagOptionPrefix
tagOptionPrefix -每個選項的字符串作為一個屬性傳遞給一個標記。默認為“spark”
tagValuesAttribute –根據屬性名稱的標簽獲取“value”
line線圖特殊屬性
defaultPixelsPerValue |
每一個值所占的寬度,默認為3px |
spotColor |
數據點的顏色,false表示不顯示 |
minSpotColor |
最小數據點的顏色,false表示不顯示 |
maxSpotColor |
最大數據點的顏色,false表示不顯示 |
spotRadius |
標志點的半徑 |
valueSpots |
{':4': 'green', '5:': 'red'},//表示低於4的用綠色表示,大於5的用紅色表示 |
highlightSpotColor |
最高數據點的顏色 |
highlightLineColor |
最高數據線的顏色 |
lineWidth |
線的寬度 |
normalRangeMin, normalRangeMax |
指定閾值之間畫一條表示“正常”或預期的值的范圍。 指定閾值之間畫一條表示“正常”或預期的值的范圍。 |
drawNormalOnTop |
默認情況下正常范圍畫背后的填充區域圖。將此選項設置為true使其在填充區域的頂部 |
chartRangeClip |
chartRangeMin和chartRangeMax之間——默認情況下chartRangeMin / Max只是確保圖至少跨越的值的范圍,但並不限制它 |
chartRangeMinX |
指定使用的最小值的X值圖 |
chartRangeMaxX |
指定使用的最大值的X值圖 |
Bar Charts柱狀圖特殊屬性
barColor |
柱體顏色 |
|
negBarColor |
負柱體的顏色 |
|
zeroColor |
柱體等於0的顏色 |
|
nullColor |
為空的顏色 |
|
barWidth |
柱體的寬度 |
|
barSpacing |
柱體之間的間隔 |
|
zeroAxis |
如果為true,把0軸線居中 |
|
colorMap |
映射到特定值所選的顏色。例如如果你想要的值2出現黃色,使用colorMap:{“2”:“# ff0”}。 |
|
stackedBarColor |
堆柱體的顏色 |
|
Tristate Charts特殊屬性
posBarColor |
正柱體的顏色 |
negBarColor |
負柱體的顏色 |
zeroBarColor |
為0時柱體的顏色 |
barWidth |
柱體的寬度 |
barSpacing |
柱體之間的間隔 |
colorMap |
映射到特定值所選的顏色。例如如果你想要的值2出現黃色,使用colorMap:{“2”:“# ff0”}。 |
Discrete Charts特殊屬性
lineHeight |
每一行的像素高度,默認為30%的圖的高度 |
thresholdValue |
低於此值的將使用thresholdColor進行繪制 |
thresholdColor |
顏色使用結合thresholdValue |
Bullet Graphs子彈圖特殊屬性
targetColor |
垂直線的顏色 |
targetWidth |
垂直線的寬度 |
performanceColor |
中間橫條的顏色 |
rangeColors |
背景顏色變化范圍 |
Pie Charts餅圖特殊屬性
sliceColors |
餅圖分區的顏色 |
offset |
在度來抵消第一片- -90或+ 90 |
borderWidth |
邊框的寬度,默認沒有邊框 |
borderColor |
邊框的顏色,默認為“#000” |
這些小餅圖只能用2或3個值
Sparkline用法
基本用法:
$(selector).sparkline(values, options);
values可以是一系列數字或從“html”標簽中讀取的值
<span class="sparklines">1,2,3,4,5,4,3,2,1</span>
<span id="ticker"">Loading..</span>
<script type="text/javascript">
$('.sparklines').sparkline('html');
$('#ticker').sparkline([1,2,3,4,5,4,3,2,1]);
</script>
Options選項是一個對象,它指定sparkline畫的類型,顏色,等等。
$('#barchart').sparkline(myvalues, { type:'bar', barColor:'green' });
如果有必要,options可以作為屬性傳遞在每個標簽選項。
<span class="sparklines" sparkType="bar" sparkBarColor="green"><!-- 1,2,3,4,3,2,1 --></span>
<span class="sparklines" sparkType="bar" sparkBarColor="red"><!-- 1,2,3,4,3,2,1 --></span>
<script type="text/javascript">
$('.sparklines').sparkline('html', { enableTagOptions: true });
</script>
每個選項必須以“spark”為前綴。
你也可以覆蓋默認的選項將值分配給所有后續微線圖
$.fn.sparkline.defaults
例如:
$.fn.sparkline.defaults.common.lineColor = 'red';
或者
$.fn.sparkline.defaults.common = {
…
};
可以將commont替換為line,bar,tristate,discrete,bullet,pie等
$.extend()方法
JQuery的extend擴展方法:
Jquery的擴展方法extend是我們在寫插件的過程中常用的方法,該方法有一些重載原型,
一、Jquery的擴展方法原型是:
extend(dest,src1,src2,src3...);
它的含義是將src1,src2,src3...合並到dest中,返回值為合並后的dest,由此可以看出該方法合並后,是修改了dest的結構的。如果想要得到合並的結果卻又不想修改dest的結構,可以如下使用:
var newSrc=$.extend({},src1,src2,src3...)//也就是將"{}"作為dest參數。
這樣就可以將src1,src2,src3...進行合並,然后將合並結果返回給newSrc了。如下例:
var result=$.extend({},{name:"Tom",age:21},{name:"Jerry",sex:"Boy"})
那么合並后的結果:
result={name:"Jerry",age:21,sex:"Boy"}
也就是說后面的參數如果和前面的參數存在相同的名稱,那么后面的會覆蓋前面的參數值。
二、省略dest參數
上述的extend方法原型中的dest參數是可以省略的,如果省略了,則該方法就只能有一個src參數,而且是將該src合並到調用extend方法的對象中去,如:
1、$.extend(src)
該方法就是將src合並到jquery的全局對象中去,如:
$.extend({
hello:function(){alert('hello');}
});
就是將hello方法合並到jquery的全局對象中。
2、$.fn.extend(src)
該方法將src合並到jquery的實例對象中去,如:
$.fn.extend({
hello:function(){alert('hello');}
});
就是將hello方法合並到jquery的實例對象中。
下面例舉幾個常用的擴展實例:
$.extend({net:{}});
這是在jquery全局對象中擴展一個net命名空間。
$.extend($.net,{
hello:function(){alert('hello');}
})
這是將hello方法擴展到之前擴展的Jquery的net命名空間中去。
三、Jquery的extend方法還有一個重載原型:
extend(boolean,dest,src1,src2,src3...)
第一個參數boolean代表是否進行深度拷貝,其余參數和前面介紹的一致,什么叫深層拷貝,我們看一個例子:
var result=$.extend( true, {},
{ name: "John", location: {city: "Boston",county:"USA"} },
{ last: "Resig", location: {state: "MA",county:"China"} } );
我們可以看出src1中嵌套子對象location:{city:"Boston"},src2中也嵌套子對象location:{state:"MA"},第一個深度拷貝參數為true,那么合並后的結果就是:
result={name:"John",last:"Resig",
location:{city:"Boston",state:"MA",county:"China"}}
也就是說它會將src中的嵌套子對象也進行合並,而如果第一個參數boolean為false,我們看看合並的結果是什么,如下:
var result=$.extend( false, {},
{ name: "John", location:{city: "Boston",county:"USA"} },
{ last: "Resig", location: {state: "MA",county:"China"} }
);
那么合並后的結果就是:
result={name:"John",last:"Resig",location:{state:"MA",county:"China"}}
以上就是$.extend()在項目中經常會使用到的一些細節。
setInterval()與setTimeOut()方法的區別
1,HTML DOM setInterval() 方法
定義和用法
setInterval() 方法可按照指定的周期(以毫秒計)來調用函數或計算表達式。
setInterval() 方法會不停地調用函數,直到 clearInterval() 被調用或窗口被關閉。由 setInterval() 返回的 ID 值可用作 clearInterval() 方法的參數。
語法
setInterval(code,millisec["lang"])
參數 描述
code 必需。要調用的函數或要執行的代碼串。
millisec 必須。周期性執行或調用 code 之間的時間間隔,以毫秒計。
返回值 :一個可以傳遞給 Window.clearInterval() 從而取消對 code 的周期性執行的值
2,HTML DOM clearInterval()方法
定義和用法
clearInterval() 方法可取消由 setInterval() 設置的 timeout。
clearInterval() 方法的參數必須是由 setInterval() 返回的 ID 值。
語法
clearInterval(id_of_setinterval)
參數 描述
id_of_setinterval 由 setInterval() 返回的 ID 值。
如何停止:
下面這個例子將每隔 50 毫秒調用 clock() 函數。您也可以使用一個按鈕來停止這個 clock:
<html>
<body>
<form>
<input type="text" id="clock" size="35" />
<button onclick="int=window.clearInterval(int)">
Stop interval</button>
</form>
<script language=javascript>
var int=self.setInterval("clock()",50)
function clock()
{
var t=new Date()
document.getElementById("clock").value=t
}
</script>
</body>
</html>
1,HTML DOM setTimeout() 方法
定義和用法
setTimeout() 方法用於在指定的毫秒數后調用函數或計算表達式。
語法
setTimeout(code,millisec)
參數 描述
code 必需。要調用的函數后要執行的 JavaScript 代碼串。
millisec 必需。在執行代碼前需等待的毫秒數。
提示和注釋
提示:setTimeout() 只執行 code 一次。如果要多次調用,請使用 setInterval() 或者讓 code 自身再次調用 setTimeout()。
實例,這個例子,在你點擊按鈕 5 秒鍾后會彈出一個提示框:
<html>
<head>
</head>
<body>
<form>
<input type="button" value="Display timed alertbox!"
onClick="timedMsg()">
</form>
<p>Click on the button above. An alert box will be
displayed after 5 seconds.</p>
<script type="text/javascript">
function timedMsg()
{
var t=setTimeout("alert('5 seconds!')",5000)
}
</script>
</body>
</html>
2,HTML DOM clearTimeout() 方法
定義和用法clearTimeout() 方法可取消由 setTimeout() 方法設置的 timeout。語法clearTimeout(id_of_settimeout)
參數 描述
id_of_setinterval 由 setTimeout() 返回的 ID 值。該值標識要取消的延遲執行代碼塊。
實例下面的例子每秒調用一次 timedCount() 函數。您也可以使用一個按鈕來終止這個定時消息:
<html>
<head>
</head>
<body>
<form>
<input type="button" value="Start count!" onClick="timedCount()">
<input type="text" id="txt">
<input type="button" value="Stop count!" onClick="stopCount()">
</form>
<script type="text/javascript">
var c=0
var t
function timedCount()
{
document.getElementById('txt').value=c
c=c+1
t=setTimeout("timedCount()",1000)
}
function stopCount()
{
clearTimeout(t)
}
</script>
</body>
</html>