mootools框架【十】-mootools深层探讨

mootools【十】- window的扩展及多彩世界

一. Mootools 框架对 Window的扩展: 

    浏览器的window对象本身就提供了我们很多的对浏览器本身属性的获取或设置的方法,但是我们也知道,由于各大浏览器之间对标准的实现不统一,导致很多方法功能上有所出入,mootools为我们统一了我们最常用的一些方法:

    mootools的Window.Base.js里面,主要实现了对DOM树创建完成的事件监听。以前,我们可能经常把javascript代码写在html代码的最后面获者加上defer属性,以保证javascript代码要操作的html先于javascript代码装载(如果不是这样的话,javascript将获取不到目标元素而出错),但是,这种方式看起来还是太杂乱,保险系数也不是最高的。其实像ie的话可以根据document的readyState属性来判断文档树的建立状态,而有些浏览器在创建文档树之后会触发onload事件,mootools把这些都包装了起来,形成一个统一的自定义事件"domready",你可以像添加其他监听器一样来为window添加这个domready事件的监听器方法:

    window.addEvent('domready', function(){

        alert('the dom is ready');

});

备注: ---这就是为什么只要用到 mootools框架的地方总是以给页面添加事件: window.addEvent('domready', function(){ //操作内容...}开始的原因. 这样这可保证javascript代码要操作的html先于javascript代码装载(如果不是这样的话,javascript将获取不到目标元素而出错)

另外,有个快捷方法,效果和以上相同:

    window.onDomReady(function(e){

         alert('dom is ready!!!');

    });

 

    mootools的Window.Size.js提供了一系列和浏览器window的尺寸有关的工具方法

window的扩展方法:

getWidth 获取window的当前高度(不包含滚动条的滚动量,即当前能见

视野高度)

getHeight获取window的当前宽度(不包含滚动条的滚动量,即当前能见 视野宽度)

getScrollWidth获取window的当前高度(包含了整个内容区域,即可滚动 部分也计算在内)

getScrollHeight获取window的当前宽度(包含了整个内容区域,即可滚动 部分也计算在内)

getScrollLeft获取window滚动的水平偏移量

getScrollTop获取window滚动的垂直偏移量

getSize获取window上面几个方法的提供的数据,格式:

{

    'size': {'x': this.getWidth(), 'y': this.getHeight()},

    'scrollSize':{'x': this.getScrollWidth(),'y': this.getScrollHeight()},

    'scroll':{'x': this.getScrollLeft(),'y': this.getScrollTop()}

}

二. 多彩的开始1

    mootools中集成了一些非常好用的界面组件, 也提供了非常好用的界面效果工具类。

    mootools的界面库Moo.Fx的设计十分的讲究OO原则,通过对提供了基本功能的基类的继承,扩展出了不同功能的工具类和组件类。Fx.Base就是这样一个基础类,它本身实现了Events,Chain,Options三个类,它包含了界面效果的最基本的动作和属性:

构造方法的可选属性:

onStart效果开始前执行的方法,默认是一个空的function。你可以指定你

的function。

onComplete完成效果后执行的方法,默认是一个空的function。你可以指 定你的function。

onCancel中断效果后执行的方法,默认是一个空的function。你可以指定 你的function。

transition效果的过渡变换所使用的方程,用来描述效果的变化规律。你可 以在Fx.Transitions类中找到其他的方程,默认使用的是

Fx.Transitions.sineInOut(即正弦)

duration变化频率,毫秒。默认为500。

unit变化量的单位。默认是'px',你可以指定如'em','%'之类。

wait true/false。指定在执行下一个过渡效果之前是否等待当前的过渡效果

执行结束。默认为true

fps帧频。即每秒所执行的变换次数。默认为30帧/秒。

方法:

set:不经过过渡变换效果,直接设置为指定的值

  var myFx = new Fx.Style('myElement', 'opacity').set(0);

start:执行效果,让指定的开始值过渡变换到指定的结束值

  var myFx = new Fx.Style('myElement', 'opacity').start(0,1);

stop中断效果的执行,如果指定了参数为false,则会执行onCancel指定的 方法。

最后,如果要查看有哪些变换方程可以选用,可以看Fx.Transitions.js里的Fx.Transitions类,里面提供了非常之多的变换方程,具体的效果差别,自己去一个个去试试看吧。

三. 多彩的开始2 

    Fx.Base类,它是mootools效果库Fx的基础,而平时会使用最频繁的,就是Fx.Style类,它是直接继承了Fx.Base类的。这个效果类非常强大,基本上可以实现对CSS样式中任何一个属性的过渡变换。

    Fx.Base中提供的方法在Fx.Style中都能用,用法是相同的,其他扩展的方法如下:

方法:

hide:如同调用Fx.Base的set方法,并且参数为0(即set(0)),当效果作 用在opacity,或者width,height(overflow需要是hidden)的时候,调用这个 方法的效果是隐藏元素。

   var myFx = $('myDiv').effect('width', {duration: 1000});

  myFx.hide();

start:在两个区间之间进行过渡变换,和Fx.Base的start用法一样。

   var marginChange = new Fx.Style('myElement', 'margin-top', 

{duration:500});

marginChange.start(10);//从myElement当前的margin-top值过渡到10

    marginChange.start(1,20); //myElement的margin-top值从1过渡到20

    由于Fx.Style的引入,Element又被扩展了一个实现效果的快捷方法: effect

具体用法如下:

   var myEffect = $('myElement').effect('height', {duration: 1000, transition: 

Fx.Transitions.linear});

  myEffect.start(10, 100);

    想实现同时进行多个效果怎么做?Fx.Styles就是提供这样功能的一个类,它也是直接继承了Fx.Base的类,可以像这样来使用它:

var myFx = new Fx.Styles('myDiv', {duration: 1000});

  myFx.start({

    'width':[100,300],

    'height':[100,200]

  });

同样,Effect由此多了一个effects快捷方法,可以这样使用:

var myFxs= $(myElement).effects({duration: 1000, transition: 

Fx.Transitions.sineInOut});

myFxs.start({

'height': [10, 100], 'width': [900, 300]

  });

   

另外,除了上面的两个类之外,还有一个可以用来作转换效果的类:Fx.Elements,这个类可以按照指定的元素顺序来执行指定的效果,就像这样:

var myElementsEffects = new Fx.Elements($$('a'));

myElementsEffects.start({

     '0': {  //对第一个元素执行opacity和width的过渡变化

     'opacity': [0,1],

     width': [100,200]

     },

       '1': { //对第二个元素执行opacity过渡变换

        'opacity': [0.2, 0.5]

      }

  });

转载于:https://www.cnblogs.com/ziyiFly/archive/2008/09/11/1289262.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/381567.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

apache为什么更适合处理动态请求_[适合初中级Java程序员修炼手册从0搭建整个Web项目](一)...

前言文本已收录至我的GitHub仓库,欢迎Star:https://github.com/bin392328206种一棵树最好的时间是十年前,其次是现在six-finger-web一个Web后端框架的轮子从处理Http请求【基于Netty的请求级Web服务器】 到mvc【接口封装转发)】,再…

python如何自动缩进_Python缩进

缩进出现问题&#xff0c;运行不出来。 正确代码如下&#xff1a;1 defbinary_search(list, item):2 low 03 high len(list)-1 4 5 while low <high:6 mid (low high)7 guess list[mid]8 if guess item:9 returnmid10 if guess >item:11 high mid-1 12 else:13 low m…

差分约束系统详解

一直不知道差分约束是什么类型题目&#xff0c;最近在写最短路问题就顺带看了下&#xff0c;原来就是给出一些形如x-y<b不等式的约束&#xff0c;问你是否满足有解的问题 好神奇的是这类问题竟然可以转换成图论里的最短路径问题&#xff0c;下面开始详细介绍下 比如给出三…

美开发思想头盔让士兵通过脑电波交流

http://www.sina.com.cn 2008年09月18日 08:08 新浪科技新浪科技讯 北京时间9月18日消息&#xff0c;据美国《时代》周刊报道&#xff0c;在20世纪的战场上&#xff0c;爆炸声震耳欲聋&#xff0c;军官们要下达命令&#xff0c;或者士兵之间互相交流看法&#xff0c;只能大声…

flink source 同步_大数据面试题-Flink

1、Flink 的 抽象层次有几种Stateful stream processingCore APITableSQL 2、Window 类型(1)TimeWindowTumbling Window(滚动窗口)Sliding Window(滑动窗口)Session Window(会话窗口)Global Window(全局窗口)(2)countWindow(3)自定义window 3、Time 类型事件时间、注入时间和Pr…

python 程序员专属情话_程序员高端情话来一波,你想要的情话原来都在这里......

原标题&#xff1a;程序员高端情话来一波&#xff0c;你想要的情话原来都在这里...程序员最幽默(ID&#xff1a;humor1024)整编图片来自&#xff1a;网络今天是2019年8月7号&#xff0c;一年一度的情人节又来了作为屌丝界的一枚程序员怎么能不参与到这个振奋人心的日子里呢&…

HDU ACM Steps攻略 ACM Steps的全部内容

原地址&#xff1a;http://www.byywee.com/page/M0/S607/607452.html 总结了一下ACM STEPS的各章内容&#xff0c;趁便附上我的Steps题号&#xff08;每人的不一样&#xff09;。 别的&#xff0c;此文首要目标是为了装逼&#xff1b; 大牛请疏忽&#xff1b; 摸索欲斗劲强…

ASP.NET中常用的js代码

ASP.NET中常用的js代码 所属类别&#xff1a;ASP.net推荐指数&#xff1a;★★☆文档人气&#xff1a;61本周人气&#xff1a;3发布日期&#xff1a;2008-7-8三、弹出框1、 弹出提示框Alert("提示框&#xff0c;呵呵");2、 弹出确认框return confirm("确认框&am…

linux孟庆昌第六章课后题_第六章课后练习题答案

第四部分课后练习题一、单项选择题1&#xff0e;某投资方案的年营业收入为元&#xff0c;年总营业成本为60000元&#xff0c;其中年折旧额10000元&#xff0c;所得税率为33&#xff05;&#xff0c;该方案的每年营业现金流量为( B)。A&#xff0e;26800元B&#xff0e;36800元C…

1.1.1.1校园网_Apache Flink 1.11.0 重要功能全面解析

来源 | Apache Flink 官方博客翻译 | 高赟(云骞)Apache Flink 社区很荣幸的宣布 Flink 1.11.0 版本正式发布&#xff01;超过 200 名贡献者参与了 Flink 1.11.0 的开发&#xff0c;提交了超过 1300 个修复或优化。这些修改极大的提高了 Flink 的可用性&#xff0c;并且增强了各…

双硬盘双win10互不干扰_笔者详解win10系统双硬盘经常提示“盘符交错”的技巧...

你是否遇到过win10系统双硬盘经常提示“盘符交错”的问题。那么出现win10系统双硬盘经常提示“盘符交错”的问题该怎么解决呢&#xff1f;很多对电脑不太熟悉的小伙伴不知道win10系统双硬盘经常提示“盘符交错”到底该如何解决&#xff1f;其实只需要  一、修复windows  二、…

[leetcode] 617. Merge Two Binary Trees

题目描述 给定两棵树&#xff0c;要求合并它们&#xff0c;如果节点重合则新合并的树的节点为它们之和&#xff0c;否则不变。 思路 简单递归&#xff0c;c语言怎么创建新节点忘记了&#xff0c;就直接写的。 代码 /*** Definition for a binary tree node.* struct TreeNode {…

python定时任务_Python定时任务(上)

在项目中&#xff0c;我们可能遇到有定时任务的需求。其一&#xff1a;定时执行任务。例如每天早上 8 点定时推送早报。其二&#xff1a;每隔一个时间段就执行任务。比如&#xff1a;每隔一个小时提醒自己起来走动走动&#xff0c;避免长时间坐着。今天&#xff0c;我跟大家分享…

3-font

第三章 font-family控制文字字体font-family:Arial, Helvetica, sans-serif;依次采用列表中的字体&#xff0c;如果没有系统中没有安装&#xff0c;则采用浏览器默认字体。font-size控制文字大小1in&#xff08;英寸&#xff09; 2.54cm&#xff08;厘米&#xff09; 25.4 mm…

显示控制器注释_欧姆龙可编程控制器CS1D-CPU产品型号说明及功能介绍

欧姆龙可编程控制器CS1D-CPU用CPU单元 CPU单元(用于双CPU系统)欧姆龙可编程控制器CS1D-CPU用CPU单元 特点可以轻松引入、使用高可靠性系统成双配备CPU单元轻松易行CPU单元内的程序或内部数据在活动/备用CPU之间完全进行自动传送并进行同步。 无需选择要同步的数据或单独进行传送…

oracle查看数据库是否恢复成功_记一次解决docker下oracle数据库故障事例

一、问题背景&#xff1a;某个项目的线上环境oracle数据库挂了&#xff0c;同事急匆匆来找我救火。我简单咨询了一些基本情况&#xff1a;线上环境&#xff0c;docker部署&#xff0c;已正常运行半年。由于宿主机的根目录硬盘空间不够&#xff0c;运维的同事想把oracle数据文件…

[调剂复试]复试后的一点总结

来北京差不多有两天了&#xff0c;调剂的事情也有了结果&#xff0c;之前的忐忑的心也终于放了下来。好不容易有一点空闲的时间&#xff0c;所以想好好地总结一下&#xff0c;谈不上有多少经验&#xff0c;只是希望阅读这篇文章的人能够在迷茫的时候看到方向。 先说下调剂的学…

js取字符串后四位_JS逆向 | 某验滑块加密参数逆向分析

声明&#xff1a;本文只作学习研究&#xff0c;禁止用于非法用途&#xff0c;否则后果自负&#xff0c;如有侵权&#xff0c;请告知删除&#xff0c;谢谢&#xff01;aHR0cHM6Ly93d3cuZ2VldGVzdC5jb20vZGVtby9zbGlkZS1mbG9hdC5odG1s抓包分析&#xff0c;看到一个加密参数w&…

谨防代理木马和怕米释放有毒程序

江民今日提醒您注意&#xff1a;在今天的病毒中Trojan/PSW.Agent.ann“代理木马”变种ann和TrojanDropper.Psyme.gke“怕米”变种gke值得关注。 英文名称&#xff1a;Trojan/PSW.Agent.ann中文名称&#xff1a;“代理木马”变种ann病毒长度&#xff1a;243200字节病毒类型&…

[python] 命令行模式下出现cp65001异常

问题 在命令行模式下有时会提示cp65001异常&#xff0c;很显然是命令行编码和python环境编码不匹配。 解决 切换命令行编码 unknown encoding: cp65001异常 python安装后进入命令行交互模式&#xff0c;输入任何代码都报unknown encoding: cp65001异常 需要将编码(UTF-8)修改…