国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

MooTools教程(15):滾動條(Slider)

2024-07-21 02:04:25
字體:
來源:轉載
供稿:網友

到現在為止,初始化這些mootools插件對象就會開始變得越來越熟悉。滾動條(slider)沒有任何不同,你要創建一個新的滾動條,定義滾動條和滑塊相關的元素,然后設置你的選項,再創建一些回調事件的控制函數。盡管滾動條(slider)遵循這個熟悉的模式,但是任然還有一點特殊的地方。

基本用法

創建一個新的滾動條(slider)對象

我們首先從html和css開始。基本的想法是創建一個滾動條的div,因此是一個長的長方形(長度取決于我們用滾動條做什么),還有一個子元素作為滑塊。

參考代碼: [復制代碼] [保存代碼]
  1. <div id="slider"><div id="knob"></div></div>

我們的css也可以這么簡單。只需要設置寬、高,還有背景顏色。

參考代碼: [復制代碼] [保存代碼]
  1. #slider {
  2.     width200px
  3.     height20px
  4.     background-color: #0099ff
  5. }
  6.  
  7. #knob {
  8.     width20px
  9.     height20px
  10.     background-color: #993333
  11. }

現在,我們可以創建我們的新滾動條對象了。要初始化滾動條,首先要把你的相關元素賦值給一些變量,然后使用“new”來創建一個滾動條slider對象,這和我們以前創建tween、morph和drag.move時一樣:

參考代碼: [復制代碼] [保存代碼]
  1. // 把元素賦值給變量
  2. var sliderobject = $('slider');
  3. var knobobject = $('knob');
  4.  
  5. // 創建一個新的slider對象
  6. // 首先定義slider元素
  7. // 然后定義滑塊元素
  8. var sliderobject = new slider(sliderobject , knobobject , {
  9.     // 這里是你的選項
  10.     // 稍后我們會仔細講一下這些選項
  11.     range: [010],
  12.     snap: true,
  13.     steps: 10,
  14.     offset: 0,
  15.     wheel: true,
  16.     mode: 'horizontal',
  17.     // 當step的值改變時將觸發onchange事件
  18.     // 它會把當前的step作為參數傳入
  19.     onchange: function(step){
  20.         // 在這里放置onchange時要執行的代碼
  21.         // 你可以引用step
  22.     },
  23.     // 當用戶拖動滑塊時觸發ontick事件
  24.     // 它會傳遞當前的位置(相對于父元素的位置)
  25.     ontick: function(pos){
  26.     // 這是必需的,用以調整滑塊的位置
  27.     // 我們會在下面詳細解釋這個
  28.     this.knob.setstyle('left', pos);
  29.     },
  30.     // 當拖動停止時觸發
  31.     oncomplete: function(step){
  32.         // 當完成時要執行的代碼
  33.         // 你可以引用step
  34.     }
  35. });

slider的選項

snap:(默認為false),可以是一個true或者false值。這決定了滑塊是不是以最小單元格移動

offset:(默認是0),這是滑塊相對于開始的位置。你可以對此做一個試驗。

range:(默認是false),這是一個非常有用的選項。你可以設置一個數字范圍,會依照此數字和你的步數(step)觸發onchange事件。例如:如果你設置的范圍是[0, 200],而且你設置的step值為10,那么每次onchange的step的值將是20。這個范圍也是是負數,例如[-10,0],這個數字在做反向的滾動條時會非常有用(下面有示例)。

wheel:(默認是false),如果設置這個參數為true,這個滾動條將會識別鼠標滾輪事件。當使用鼠標滾輪時,你肯恩需要調整range參數,以保證鼠標滾輪事件的行為不是相反的(同樣,后面會有例子)。

steps:(默認是100),默認值為100非常有用,因為它可以很容易地作為百分比使用。當然,你也可以以你的理由設置任意多步(這是可以的)。

mode:(默認是“horizontal”),這個參數定義了滾動條是水平滾動還是垂直滾動。當然了,要從水平滾動轉化為垂直滾動還需要一些其它步驟。

回調事件

onchange:當step改變時,觸發這個事件。同時傳遞參數“step”。可以從下面的例子中看到它是什么時候觸發的。

ontick:當控制點的位置發生改變時觸發這個事件。同時傳遞參數“position”。可以從下面的例子中看到它是什么時候觸發的。

oncomplete:當控制點釋放時觸發這個事件。捅死傳遞參數“step”。可以從下面的例子中看到它是什么時候觸發的。

代碼示例

讓我們建立一個示例,以便看看它們的效果。

.set();方法:看一看按鈕上的事件,看是怎么使用.set()方法的。它使用起來非常簡單:調用slider對象,附加.set,然后是你想要滾動的步數(step)。

參考代碼: [復制代碼] [保存代碼]
  1. window.addevent('domready'function() {
  2. var sliderobject = new slider('slider''knob', {
  3.     // 選項
  4.     range: [010],
  5.     snap: false,
  6.     steps: 10,
  7.     offset: 0,
  8.     wheel: true,
  9.     mode: 'horizontal',
  10.  
  11.     // 回調事件
  12.     onchange: function(step){
  13.         $('change').highlight('#f3f825');
  14.         $('steps_number').set('html', step);
  15.     },
  16.     ontick: function(pos){
  17.         $('tick').highlight('#f3f825');
  18.         $('knob_pos').set('html', pos);
  19.         // 這一行是必需的(水平滾動使用left)
  20.         this.knob.setstyle('left', pos);
  21.  
  22.     },
  23.     oncomplete: function(step){
  24.         $('complete').highlight('#f3f825')
  25.         $('steps_complete_number').set('html', step);
  26.         this.set(step);
  27.     }
  28. });
  29.  
  30. var sliderobjectv = new slider('sliderv''knobv', {
  31.     range: [-100],
  32.     snap: true,
  33.     steps: 10,
  34.     offset: 0,
  35.     wheel: true,
  36.     mode: 'vertical',
  37.     ontick: function(pos){
  38.         // 這一行是必需的(垂直滾動使用top)
  39.         this.knob.setstyle('top', pos);
  40.     },
  41.     onchange: function(step){
  42.         $('stepsv_number').set('html', step*-1);
  43.     }
  44. });
  45.  
  46. // 設置垂直滾動的從0開始
  47. // 否則的話是從頂部開始
  48. sliderobjectv.set(0);
  49.  
  50. // 設置滾動條從7開始
  51. $('set_knob').addevent('click'function(){ sliderobject.set(7)});
  52.  
  53. });

onchange

passes the step you are on:  
ontick
passes the knob position:  
oncomplete
passes the current step:  
 

 
0

注意在垂直滾動的例子中,我們不僅僅只是把“mode”改成了“vertical”,我們還改變了ontick事件中的.setstyle();方法中的“left”屬性為“top”屬性。另外,看一下我們是怎樣設置“range”從-10開始,然后到0的。然后,我們在onchange事件中顯示當前的數字,我們把這個值乘了-1,正好和位置相反。這完成了兩件事情:一是讓我們從10到0改變這個值,0在最底部。但是這個可能設置rang為從10到0,從而導致鼠標滾輪事件變得相反。這就是我們的第二個原因——鼠標滾輪讀取值,而不是你要控制的方向,因此要讓鼠標滾輪正確地讀取滾動條并且從底部的0開始的值的唯一方式就是做這一點點改變。

 

注意:至于ontick事件中“top”和“left”的使用,我不確定這是不是mootools中的“規則”。這只是我讓它們正確運行的一種方法,我很有興趣聽到一些其他的清楚的說法。

更多學習

和以前一樣,請參考文檔中的sliders一節

下載一個包含你開始所需要的所有東西的zip包

包括mootools 1.2的核心庫和擴展庫,還有一個外部的javascript文件,一個簡單的html頁面和一個css文件和上面的示例。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 阿合奇县| 北宁市| 松溪县| 晋城| 大安市| 东兴市| 丽水市| 潜山县| 阿拉善右旗| 安仁县| 宜城市| 延安市| 桑植县| 扶沟县| 利津县| 增城市| 微山县| 太谷县| 陈巴尔虎旗| 灵武市| 台中县| 灌阳县| 桦甸市| 讷河市| 兴宁市| 江门市| 民勤县| 元江| 沙田区| 桂林市| 保山市| 察隅县| 平江县| 白山市| 岐山县| 安阳县| 牟定县| 奇台县| 石林| 石林| 宜宾市|