网络编程
位置:首页>> 网络编程>> JavaScript>> Mootools 1.2教程(15)——滚动条(Slider)(2)

Mootools 1.2教程(15)——滚动条(Slider)(2)

作者:Fdream 来源:Fdream博客 发布时间:2008-12-09 17:35:00 

标签:Mootools,教程,滚动条,Slider,javascript

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)。

参考代码:  

window.addEvent('domready', function() { 
var SliderObject = new Slider('slider', 'knob', { 
    // 选项 
    range: [0, 10], 
    snap: false, 
    steps: 10, 
    offset: 0, 
    wheel: true, 
    mode: 'horizontal', 

    // 回调事件 
    onChange: function(step){ 
        $('change').highlight('#F3F825'); 
        $('steps_number').set('html', step); 
    }, 
    onTick: function(pos){ 
        $('tick').highlight('#F3F825'); 
        $('knob_pos').set('html', pos); 
        // 这一行是必需的(水平滚动使用left) 
        this.knob.setStyle('left', pos); 

    }, 
    onComplete: function(step){ 
        $('complete').highlight('#F3F825') 
        $('steps_complete_number').set('html', step); 
        this.set(step); 
    } 
}); 

var SliderObjectV = new Slider('sliderv', 'knobv', { 
    range: [-10, 0], 
    snap: true, 
    steps: 10, 
    offset: 0, 
    wheel: true, 
    mode: 'vertical', 
    onTick: function(pos){ 
        // 这一行是必需的(垂直滚动使用top) 
        this.knob.setStyle('top', pos); 
    }, 
    onChange: function(step){ 
        $('stepsV_number').set('html', step*-1); 
    } 
}); 

// 设置垂直滚动的从0开始 
// 否则的话是从顶部开始 
SliderObjectV.set(0); 

// 设置滚动条从7开始 
$('set_knob').addEvent('click', function(){ SliderObject.set(7)});



注意在垂直滚动的例子中,我们不仅仅只是把“mode”改成了“vertical”,我们还改变了onTick事件中的.setStyle();方法中的“left”属性为“top”属性。另外,看一下我们是怎样设置“range”从-10开始,然后到0的。然后,我们在onChange事件中显示当前的数字,我们把这个值乘了-1,正好和位置相反。这完成了两件事情:一是让我们从10到0改变这个值,0在最底部。但是这个可能设置rang为从10到0,从而导致鼠标滚轮事件变得相反。这就是我们的第二个原因——鼠标滚轮读取值,而不是你要控制的方向,因此要让鼠标滚轮正确地读取滚动条并且从底部的0开始的值的唯一方式就是做这一点点改变。


注意:至于onTick事件中“top”和“left”的使用,我不确定这是不是MooTools中的“规则”。这只是我让它们正确运行的一种方法,我很有兴趣听到一些其他的清楚的说法。

更多学习

和以前一样,请参考文档中的sliders一节

远程下载:下载一个包含你开始所需要的所有东西的zip包 (44.66 KB)

asp之家下载地址:mootorial_day15_sliders.zip (44.66 KB)

包括MooTools 1.2的核心库和扩展库,还有一个外部的JavaScript文件,一个简单的HTML页面和一个CSS文件和上面的示例。

0
投稿

猜你喜欢

  • Expires 属性 Expires 属性指定了在浏览器上缓冲存储的页距过期还有多少时间。如果用户在某个页过期之前又回到此页,就会显示缓冲区
  • 上一篇:微软建议的ASP性能优化28条守则(7)技巧 22:尽可能使用 Server.Transfer 代替 Response.Redire
  • 1、给滚动条换色 好多网站的滚动条不是系统默认的灰色,而是一些红色、蓝色的,请问这是如何做的?答:这个很好实现,插入下面的代码:<&n
  • 图片的间隙Q:我有一张大图片,把它切割后在Dreamweaver中进行拼接,可是总是有间隙,不知为什么?A:不知你是否把表格的边距、间距和边
  • 在讨论IE6的BUG及如何修复之前,有必要讲叙一些策略去避免这些恼人的问题——正所谓防患于未然 。IE6 市场占有率据Market Shar
  • 如果备份的数据库有2个文件,分别是.LDF 和 .MDF,打开企业管理器,在实例上右击---所有任务--附加数据库,然后选择那个.MDF文件
  • 最近没事,写了个在项目经常要取城市或省份名的方法,所以改成了一个类.方便以后调用//****************************
  • 原来看到这个代码的时候,觉得功能不错,调试并整理了一下也许大家用的到,对于越来越注重用户体验的今天,这种功能一定很受欢迎,当然本例子只是一个
  • 以下是menu.asp代码 程序代码 <% '-----------------------------------
  • 头疼的挂马事件申请了个免费空间弄了个小站空间还可以二年多了挺稳定的只是从今年年初开始网页老莫名奇妙的被人挂马仔细检查了网站 不存在什么漏洞应
  • 如何在独立服务器上创建用户?假设独立服务器是intels,我们用ADSI来创建一个用户liyanbing,初始口令定为3625: 
  • 1:mysql是我们使用最多的数据库,如果在日常中正确的对mysql数据进行备份,下面我们就来做这事,通过脚本来实现############
  • 在用到编辑器时,就会碰到一点,那就是标签的闭合问题,这个问题非常严峻,因为这可能会导致网页显示的整体样式受到破坏。这最近在PJ的functi
  • 如何干预执行计划 - - 使用hints提示基于代价的优化器是很聪明的,在绝大多数情况下它会选择正确的优化器,减轻了DBA的负担。但有时它也
  • 引言 性能是一个特征。您必须预先设计性能,否则您以后就得重写应用程序。就是说,有哪些好的策略可使 Active Server Pages (
  • 任何熟悉SQL和关系数据库的人都遇见过大量的连接类型。最简单的说,连接(join)会把两个表的内容组合到一个虚拟表或者recordset内。
  • 首先你要明白24bit的bmp图片的基本信息:1像素占3个字节,头部占54个字节。好了,现在开始做验证码了,这里以4位验证码(大小为20(高
  • 一). ubuntu下mysql安装布局:/usr/bin       
  • 昨天看到设计师提供的一张有关多个设计师角色间的漫画图(如下图),着实感到有点讽刺。现在的设计还只是停留在“盲人摸象”的阶段,为什么会这样?在
  • 简介:外部连接和自联接inner join(等值连接) 只返回两个表中联结字段相等的行left join(左联接) 返回包括左表中的所有记录
手机版 网络编程 asp之家 www.aspxhome.com