位置: 编程技术 - 正文

Javascript & DHTML 实例编程(教程)(四)初级实例篇2—动画

编辑:rootadmin
上篇说了动态创建结点和删除结点的例子,这一篇说一些如何用setInterval和setTimeout做简单的动画。 语法皆是window.setTimeout(fn, delay), window.setInterval(fn, delay) fn可以是一个函数名,也可以是一个执行的字符串,但要注意的是,如果fn是一个可以执行的字符串,且有参数,如window.setInterval("myFunction(obj)",)将可能抛出一个异常,这个时候,通常是你要传递一个对象参数,我建议用这样的一个办法来解决,也建议使用这种方法来使用window.setTimeout和window.setInterval: window.setInterval(function (){ myFunction(obj);},); 还有一种情况就是在一个"class"里,即要执行this.myFunction(obj)如何实现呢? function jsclass() {}; jsclass.prototype.init = function (obj) { var self = this; //创建一个this指针的引用 window.setInterval(function(obj) { self.myFunction(obj);},); }; jsclass.prototype.myFunction = function (obj) { //TODO }; DHTML的全局方法setInterval和setTimeout,所谓全局,即在window层,不属于DHTML的DOM元素的方法里,这两个有一些区别,网上也有很多说明,也就是setInterval是循环执行一个指定函数,setTimeout是只执行一次。例外说明一点,属于window层次的,可以在前面不加window,即可以用window.setInterval也可以直接用setInterval。 它们都返回一个数字型的timerId,用于cleaverInterval/clearTimeout方法,从setInterval/setTimeout中返回。如果做过桌面应用的朋友,可以把这个setInterval和setTimeout假想成创建一个线程,而timerId则是一个线程Id,而cleaverInterval/clearTimeout方法则是消毁这个线程。也许这样可以更好的理解这两个方法。 (在具体的应用中,我更驱向于用setTimeout。) 知道这两个方法的功能,先来写一个简单的例子: 一个一秒后弹出的alert对话框。 <script> window.setTimeout(function () { alert("timeout example after 1 second"); },) </script> 每一秒创建一个新DIV结点的函数 <script> function intervalExample() { var div=document.createElement("div"); div.innerHTML = "tutorial of DHTML and javascript programming, by www.never-online.net"; document.body.appendChild(div); } window.setInterval(intervalExample,); </script> 而实际应用中,setTimeout可以有一个另类一些的应用,比如相当于VB中的DoEvents函数,或者.net桌面程序中Application.DoEvents();这样的功能,也就是异步处理,因为DHTML没有多线程,所以说这个功能在很多的时候是为了给用户觉得不是在假死状态,或者给其它的程序按照代码的逻辑继续执行下去而不会阻塞或者也不会跳过一段代码执行。 举个例子。 下段代码是没有加setTimeout的。运行后,锚点会马上指向hash2 <script> window.location.hash="hash1"; window.location.hash="hash2"; </script> 这一段是加了setTimeout的,锚点会在3秒后指向hash1,再在3秒后指向hash2 <script> var doEventsDelay = 0; function DoEvents (fn) { window.setTimeout(fn,doEventsDelay); doEventsDelay+=; } DoEvents(function () { window.location.hash="hash1"; doEventsDelay-=; } ); DoEvents(function () { window.location.hash="hash2"; doEventsDelay-=; } ); </script> 下面我们做一个实用些的例子,比如一个动态显示tip的动态菜单。 一、这里只讲解setTimeout的方法,setInterval的请看demo里的代码,还要注明一点(本例中有一个比较严重的问题是没有解决的,这一问题我将留到以后再讲解)是关于坐标的。比如将下面代码中的sliderShow放到一个table中,就可能会发现一些问题了。:D 思路,得到一个元素,相对这个元素的作标,再根据一个tip的容器从而做一个动画, 主要用到的就是相对元素的X,Y坐标,关于坐标的一些属性意义,参见下图: 而整个动画的思路,见下图注释代码: Slider Show Demo - Slider Show Demo click show setTimeout demo sliderShowtutorial of DHTML and javascript programmingby never-online, never-online.net [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]是否觉得上面的例子很多都是重复的劳动?如果减少一些岂不更好?:D,的确如此,上面的JS代码有近一半都是重复的,在这里我就不把它优化了,还是留给大家做一些实质性的工作,减少上面代码的冗余。

推荐整理分享Javascript & DHTML 实例编程(教程)(四)初级实例篇2—动画,希望有所帮助,仅作参考,欢迎阅读内容。

Javascript & DHTML 实例编程(教程)(四)初级实例篇2—动画

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

javascript中的几个运算符 ||是这样运算的:从第一个开始,遇到有意义的返回,否则返回最后一个表达式(注意不一定是Boolean值);&&是这样运算的:从第一个开始,遇到无意

你需要知道的JavsScript可以做什么? JavsScript可以做什么?JavaScript可以做客户端的数据验证、处理,同服务器进行数据交互(AJAX),界面功能增强、美化等等,似乎JavaScript就只能做页面或

javascript之函数直接量(function(){})() 种语法是什么意思(function(){})()如下例:scriptlanguage="JavaScript"(function(){document.write("somescriptcode");})()/scriptscriptlanguage="JScript"type="Text/JScript"!--vara=(function(s){r

标签: Javascript & DHTML 实例编程(教程)(四)初级实例篇2—动画

本文链接地址:https://www.jiuchutong.com/biancheng/383961.html 转载请保留说明!

上一篇:Javascript & DHTML 实例编程(教程)(三)初级实例篇1—上传文件控件实例

下一篇:javascript中的几个运算符(javascript有几种类型)

  • 营业账簿印花税怎么交
  • 个体户季报网上怎么报税
  • 注册资本金入账需要缴税么
  • 资金收益率计应收账款吗
  • 门禁卡属于什么卡
  • 没有增值税发票怎么做账
  • 合并报表中怎么抵消投资性房地产
  • 发票抬头公司名称有空格
  • 发票没用完可以申请超限量吗
  • 小规模纳税人处置固定资产的税率
  • 盘盈资产开具发票是否符合规定
  • 税负率过低进行什么交易
  • 项目一次性奖励会计分录怎么处理
  • 出口货物退税率查询
  • 收到实收资本要验资吗
  • 个体户核定征收超过了怎么办
  • 一般纳税人出租不动产增值税税率
  • 一般纳税人按简易计税办法计算增值税,是否能节税?
  • 不用发票可以报销吗
  • 纳税人提供植物养护服务按照什么服务缴纳增值税
  • 为什么餐费不能计入在差旅费
  • 购进固定资产抵扣时咋填报增值税
  • 企业出租屋顶不需要缴税!
  • 小规模免增值税印花税用交吗
  • 对公银行转账给私卡做备用金应怎样做分录?
  • 员工个税需要计提吗现在
  • Win10 Build 19043(21H1最新版)即将推送 更新内容汇总
  • 主营业务成本的二级科目有哪些
  • 商业意外险进项可以抵扣吗
  • 往公户存钱怎么存最划算
  • 冲未开票收入怎么做分录
  • 重装系统后怎么恢复原来的系统
  • php常用的设计模式在开发中的实例
  • 公司为实习生买保险列支什么科目?
  • linux中的大于号什么意思
  • 未能连接到一个windows 的服务win7
  • 复式记账法含义
  • php redis实现秒杀思路
  • 增值税常见账务处理方法
  • 图像分割最新算法
  • 建筑业营改增后税务问题
  • 拥有自我意识的动物有哪些
  • 金银首饰以旧换新增值税处理
  • php输出隔行变色的表格
  • 固定资产改造费用化账务处理
  • 发票作废申请书模板
  • ps像素大小怎么调整不了
  • 奖金属于职工福利吗
  • 在途资金属于什么科目
  • 通过法院拍卖取得的土地没有得到执行属于什么案件
  • 外贸出口企业申报年月怎么填
  • 公司股权作价转让会计分录案例
  • 盈利是不是利润的意思
  • 电子发票开票方怎么做账?
  • 税控设备设置在哪儿
  • 实收资本的主要用途
  • 房地产开发企业增值税税率
  • 限售股包括哪些
  • sql查询生成器
  • Linux系统下mysqlcheck修复数据库命令(详解)
  • 电脑收藏夹文件恢复
  • 怎样一键重装
  • windows后台启动VirtualBox虚拟机让界面不在出现
  • xp系统怎么修改图标和文字大小
  • linux命令pwd是什么意思
  • 忘记mysql密码
  • win8怎么打开管理员命令提示符
  • win7系统如何创建新用户
  • windowsxp入门
  • linux系统怎样
  • opengl gltranslatef
  • 富文本编辑器模板
  • hbase shell split
  • rom开发是做什么的
  • 社保逾期未申报会造成什么影响,要怎么处理
  • 税务稽查工作底稿属于什么证据
  • 沈阳市税务局最新公告
  • 哈尔滨国家税务局客服电话
  • 个人所得税申报怎么申报
  • 城市维护建设税怎么算
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设