Javascript学习第二季(实战7) 站长,站长素材网,站长资源网,手把手教你做网站美容师 今日更新:0 篇;   本站目前共有文章:210 篇。
当前位置: 网站首页>技术教程 > Javascript-教程 正文
1 次

Javascript学习第二季(实战7)

来源:本站原创 编辑:admin 时间:2008年10月14日 浏览:

Javascript学习第二季(实战7)

上章 我们来 的 用javascript做动画效果,没做成通用的。只能单独使用。

今天我们把动画函数做成通用的,可以多次调用。

  点击下载此文件

Demo1

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"

"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">

<head>

  <meta http-equiv="content-type" content="text/html; charset=utf-8" />

  <title>Message</title>

  <script type="text/javascript">

  /*

   第一个例子,看过后,你会发现原来做动画 这么简单。

   这个例子 比 第一个复杂点 , 抽象化了第一个例子中的方法。

   什么是抽象化?

   把具体的方法改成通用的方法的过程,叫做抽象化。

   也许概念不怎么好理解。

   举个例子吧:

   function a()

   {

        var b =document.getElementById("cs");

b.style.color ="red";

   }

   这个函数只能针对 id为a的 进行 color =red 操作。

   如果我们把这个函数抽象化。那么将是怎么样呢?

   function a( element , color )

   {

        var b =document.getElementById(element);

b.style.color = color;

   }

   看懂了吧。这就是抽象化。

  */

  function addLoadEvent(func) {

  var oldonload = window.onload;

  if (typeof window.onload != 'function') {

    window.onload = func;

  } else {

    window.onload = function() {

      oldonload();

      func();

    }

  }

}

function positionMessage() {

  // 判断浏览器是否支持这些方法。

  if (!document.getElementById) return false;

  // 判断这些元素是否存在。

  if (!document.getElementById("message")) return false;

  var elem = document.getElementById("message");

  elem.style.position = "absolute";

  elem.style.left = "50px";

  elem.style.top = "100px";

  moveElement("message",225,25,20);//调用moveElement函数

  if (!document.getElementById("message2")) return false;

  var elem = document.getElementById("message2");

  elem.style.position = "absolute";

  elem.style.left = "50px";

  elem.style.top = "50px";

  moveElement("message2",225,75,20);//调用moveElement函数

}

addLoadEvent(positionMessage);// 等价于 window.onload

/*

参数解释:

elementID : 元素的ID

final_x : 最后的x坐标的值。

final_y : 最后的y坐标的值。

interval : 时间间隔。 (建议 取 10或者20)

*/

function moveElement(elementID,final_x,final_y,interval) {//抽象化

  // 判断浏览器是否支持这些方法。

  if (!document.getElementById) return false;

  // 判断这些元素是否存在。

  if (!document.getElementById(elementID)) return false;

  var elem = document.getElementById(elementID);

  var xpos = parseInt(elem.style.left);// 转换成 整数。也就是去掉 px

  var ypos = parseInt(elem.style.top);

  if (xpos == final_x && ypos == final_y) {

    return true;

  }

  if (xpos < final_x) {

    xpos++;

  }

  if (xpos > final_x) {

    xpos--;

  }

  if (ypos < final_y) {

    ypos++;

  }

  if (ypos > final_y) {

    ypos--;

  }

  elem.style.left = xpos + "px";  // 这里注意把单位 加上

  elem.style.top = ypos + "px";

  var repeat = "moveElement('"+elementID+"',"+final_x+","+final_y+","+interval+")";

  movement = setTimeout(repeat,interval);

  /*

  提醒下;

  setTimeout 第一个参数是 字符串, 第二个参数是 数值。

  */

}

</script>

 

</head>

<body>

  <p id="message">test1</p>

  <p id="message2">test2</p>

</body>

</html>

如果你是一名jquery的爱好着,想要用jquery写出类似的效果,

可以参考下面的代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"

"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">

<head>

  <meta http-equiv="content-type" content="text/html; charset=gbk" />

  <title>Animation</title>

  <script src="../jquery.js" type="text/javascript"></script>

  <SCRIPT LANGUAGE="JavaScript">

$(function(){

      $('#message').css({'position':'absolute','left':'50px','top':'100px'})

  .animate({ left : 100 , top : 25  }, { queue : false , duration : 1500 , complete : a  })

  function a(){

      $('#message').animate({ left : 225 }, { queue : false , duration : 2500 }); 

  }

   

  $('#message2').css({'position':'absolute','left':'50px','top':'50px'})

  .animate({ left : 120 , top: 75 }, { queue : false , duration : 2000 , complete : b })   

  function b(){

      $('#message2').animate({ left : 225 }, { queue : false , duration : 2000 });  

  }

})

  </SCRIPT>

 

</head>

<body>

  <p id="message">test1</p>

  <p id="message2">test2</p>

</body>

</html>

代码不是很难,结合注释很快能把程序搞懂。

现在我们把程序改进成通用的了,也知道了什么是抽象化。

明天我们将把动画 程序用在 另一个图片馆 例子中。

来看看 动画 的实战效果。 明天见。

本站解压密码:www.web265.com
Tags:Javascript

上一篇:Javascript学习第二季(实战6)

下一篇:Javascript学习第二季(实战8)

赞助商友情链接

站长常用工具

更多

相关文章

更多

    {$CorrelationArticleList(2§ID Desc§10§§20§25§1§false§false§0§""§§0§left§§§§
  • #Title
  • )}