一、图片放大缩小

 <!doctype html>
 <html>
 <head>
 <meta charset="utf-8">
 <title>图片放大缩小</title>
 <style>
 *{ margin:0; padding:0; list-style:none;}
 #ulList{ margin:50px;}
 #ulList li{ margin:10px; width:100px; height:100px; float:left; background:#ddd; border:1px solid black;}
 </style>
 <script>
 window.onload = function()
 {
     var oUl = document.getElementById('ulList');
     var aLi = oUl.getElementsByTagName('li');
     var zIndex = 2;

     //布局转换
     for(var i=0;i<aLi.length;i++){
         aLi[i].style.left = aLi[i].offsetLeft + 'px';
         aLi[i].style.top = aLi[i].offsetTop + 'px';
     }

     for(var i=0;i<aLi.length;i++){
         aLi[i].style.position = 'absolute';
         aLi[i].style.margin = '0';
     }

     for(var i=0;i<aLi.length;i++){
         aLi[i].onmouseover = function()
         {
             this.style.zIndex = zIndex++;
             startMove(this, {width:200, height:200, marginLeft:-50, marginTop:-50});
         };
         aLi[i].onmouseout = function()
         {
             startMove(this, {width:100, height:100, marginLeft:0, marginTop:0});
         };
     }
 };

 function getStyle(obj, attr)
 {
     if(obj.currentStyle){
         return obj.currentStyle[attr];
     }else{
         return getComputedStyle(obj, false)[attr];
     }
 }

 function startMove(obj, json, fn)
 {
     clearInterval(obj.timer);
     obj.timer=setInterval(function (){
         var bStop=true;
         for(var attr in json)
         {

             var iCur=0;

             if(attr=='opacity')
             {
                 iCur=parseInt(parseFloat(getStyle(obj, attr))*100);
             }
             else
             {
                 iCur=parseInt(getStyle(obj, attr));
             }

             var iSpeed=(json[attr]-iCur)/8;
             iSpeed=iSpeed>0?Math.ceil(iSpeed):Math.floor(iSpeed);

             if(iCur!=json[attr])
             {
                 bStop=false;
             }

             if(attr=='opacity')
             {
                 obj.style.filter='alpha(opacity:'+(iCur+iSpeed)+')';
                 obj.style.opacity=(iCur+iSpeed)/100;
             }
             else
             {
                 obj.style[attr]=iCur+iSpeed+'px';
             }
         }

         if(bStop)
         {
             clearInterval(obj.timer);

             if(fn)
             {
                 fn();
             }
         }
     }, 30)
 }
 </script>
 </head>

 <body>
 <ul id="ulList">
     <li></li>
     <li></li>
     <li></li>
     <li></li>
     <li></li>
     <li></li>
     <li></li>
     <li></li>
     <li></li>
     <li></li>
     <li></li>
     <li></li>
     <li></li>
     <li></li>
     <li></li>
     <li></li>
     <li></li>
     <li></li>
     <li></li>
     <li></li>
 </ul>
 </body>
 </html>

二、信息滑动淡入加载显示

 <!doctype html>
 <html>
 <head>
 <meta charset="utf-8">
 <title>无标题文档</title>
 <style>
 #msgBox{ width:500px; margin:0 auto; padding:5px;}
 .msgList{ filter:alpha(opacity=0); opacity:0; font-size:12px; line-height:1.6; border-bottom:1px solid #ddd;}

 .box{ float:left;}
 </style>

 <script>
 window.onload = function()
 {
     var oTxt = document.getElementById('txt1');
     var oBtn = document.getElementById('btn1');
     var oBox = document.getElementById('msgBox');

     oBtn.onclick = function()
     {
         var oMsg = document.createElement('div');
         var aDiv = oBox.getElementsByTagName('div');

         oMsg.className = 'msgList';
         oMsg.innerHTML = oTxt.value;
         oTxt.value = '';

         if(aDiv.length==0){
             oBox.appendChild(oMsg);
         }else{
             oBox.insertBefore(oMsg, aDiv[0]);
         }

         var iH = oMsg.offsetHeight;
         oMsg.style.height = 0;

         startMove(oMsg, {height:iH}, function(){
             startMove(oMsg, {opacity:100});
         });

     };
 };

 function getStyle(obj, attr)
 {
     if(obj.currentStyle){
         return obj.currentStyle;
     }else{
         return getComputedStyle(obj, false)[attr];
     }
 }

 function startMove(obj, json, fn)
 {
     clearInterval(obj.timer);
     obj.timer = setInterval(function(){
         var bStop = true;

         for(var attr in json){
             var iCur = 0;

             if(attr == 'opacity'){
                 iCur = Math.round((parseFloat(getStyle(obj, attr))*100));
             }else{
                 iCur = parseInt(getStyle(obj, attr));
             }

             var iSpeed = (json[attr] - iCur) / 8;
             iSpeed = iSpeed > 0 ? Math.ceil(iSpeed) : Math.floor(iSpeed);

             if(iCur != json[attr]){
                 bStop = false;
             }

             if(attr == 'opacity'){
                 obj.style.filter = 'alpha(opacity=' + (iCur + iSpeed)+')';
                 obj.style.opacity = (iCur + iSpeed) / 100;
             }else{
                 obj.style[attr] = iCur + iSpeed + 'px';
             }
         }

         if(bStop){
             clearInterval(obj.timer);

             if(fn){
                 fn();
             }
         }
     }, 30);
 }
 </script>
 </head>

 <body>
 <div class="box">
     <textarea id="txt1" cols="40" rows="10"></textarea><br />
     <input id="btn1" type="button" value="提交信息" />
 </div>
 <div id="msgBox">

 </div>
 </body>
 </html>

三、无缝滚动

 <!doctype html>
 <html>
 <head>
 <meta charset="utf-8">
 <title>无标题文档</title>
 <style>
 *{ margin:0; padding:0; list-style:none;}
 #div1{ width:480px; height:120px; margin:50px auto; border:1px solid black; position:relative; overflow:hidden;}
 #div1 li{ float:left; padding:10px;}
 #div1 li img{ display:block;}
 #div1 ul{ position:absolute;}
 </style>
 <script>
 window.onload = function()
 {
     var oDiv = document.getElementById('div1');
     var oUl = oDiv.getElementsByTagName('ul')[0];
     var aLi = oUl.getElementsByTagName('li');
     var aBtn = document.getElementsByTagName('input');
     var iSpeed = -3;
     var timer = null;

     oUl.innerHTML += oUl.innerHTML;
     oUl.style.width = aLi[0].offsetWidth * aLi.length + 'px';

     timer = setInterval(move, 30);

     aBtn[0].onclick = function()
     {
         iSpeed = -3;
     };

     aBtn[1].onclick = function()
     {
         iSpeed = 3;
     };

     oDiv.onmouseover = function()
     {
         clearInterval(timer);
     };

     oDiv.onmouseout = function()
     {
         timer = setInterval(move, 30);
     };

     function move(){
         if(oUl.offsetLeft<-oUl.offsetWidth/2){
             oUl.style.left = '0px';
         }else if(oUl.offsetLeft>0){
             oUl.style.left = -oUl.offsetWidth/2 + 'px';
         }
         oUl.style.left = oUl.offsetLeft + iSpeed + 'px';
     }

 };
 </script>
 </head>

 <body>
 <input type="button" value="向左" />
 <input type="button" value="向右" />
 <div id="div1">
     <ul>
         <li><img src="data:images/1.jpg" width="100" height="100" /></li>
         <li><img src="data:images/2.jpg" width="100" height="100" /></li>
         <li><img src="data:images/3.jpg" width="100" height="100" /></li>
         <li><img src="data:images/4.jpg" width="100" height="100" /></li>
     </ul>
 </div>
 </body>
 </html>

javascript每日一练(十三)——运动实例的更多相关文章

  1. javascript每日一练—运动

    1.弹性运动 运动原理:加速运动+减速运动+摩擦运动: <!doctype html> <html> <head> <meta charset="u ...

  2. javascript每日一练(十四)——弹性运动

    一.弹性运动 运动原理:加速运动+减速运动+摩擦运动: <!doctype html> <html> <head> <meta charset="u ...

  3. javascript每日一练(十二)——运动框架

    运动框架 可以实现多物体任意值运动 例子: <!doctype html> <html> <head> <meta charset="utf-8&q ...

  4. javascript每日一练(十一)——多物体运动

    一.多物体运动 需要注意:每个运动物体的定时器作为物体的属性独立出来互不影响,属性与运动对象绑定,不能公用: 例子1: <!doctype html> <html> <h ...

  5. javascript每日一练(十)——运动二:缓冲运动

    一.缓冲运动 实现原理:(目标距离-当前距离) / 基数 = 速度(运动距离越大速度越小,运动距离和速度成反比) (500 - oDiv.offsetLeft) / 7 = iSpeed; 需要注意: ...

  6. javascript每日一练(九)——运动一:匀速运动

    一.js的运动 匀速运动 清除定时器 开启定时器 运动是否完成:a.运动完成,清除定时器:b.运动未完成继续 匀速运动停止条件:距离足够近  Math.abs(当然距离-目标距离) < 最小运动 ...

  7. javascript每日一练(二)——javascript(函数,数组)

    一.函数 什么是函数 function show(){}//不带参数 function show(){return 123;}//不带参数,有返回值 function show(arg1, arg2, ...

  8. javascript每日一练(一)——javascript基础

    一.javascript的组成 ECMAScript DOM BOM 二.变量类型 常见类型有:number, string, boolean, undefined, object, function ...

  9. javascript每日一练(八)——事件三:默认行为

    一.阻止默认行为 return false; 自定义右键菜单 <!doctype html> <html> <head> <meta charset=&quo ...

随机推荐

  1. citrix协议ICA技术原理

    转载自: http://www.zrss.com.cn/article-110-1.html Citrix交付中心解决方式的核心是虚拟化技术,虚拟化计算的核心是ICA协议,ICA协议连接了执行在平台上 ...

  2. Ext JS学习第十三天 Ext基础之 Ext.Element

    •Ext.Element提供了181个方法,嗯,还没完,只是在4.1版本中是这样,最新的4.2版本貌似又增加了新方法,可谓是相当丰富给力.那么根据操作类型基本可以分为查询系.DOM操作系.样式操作系. ...

  3. 重启IIS常见命令

    重启IIS常见命令 http://jingyan.baidu.com/article/4ae03de30d6cfa3efe9e6b4a.html

  4. iOS内存管理 ARC与MRC

    想驾驭一门语言,首先要掌握它的内存管理特性.iOS开发经历了MRC到ARC的过程,下面就记录一下本人对iOS内存管理方面的一些理解. 说到iOS开发,肯定离不开objective-c语言(以下简称OC ...

  5. eclipse安装PyDev插件出错No software site found at jar:file:[离线包路径]!/. Do you wish to edit the location?

    解决方法是直接将下载的离线包解压,得到plugins和features文件夹,放到Eclipse的dropins目录下.重启Eclipse,PyDev插件即可安装成功. 离线包下载地址:http:// ...

  6. myeclipse 8.6 插件安装之SVN

    在这里我要说明一点,myEclipse 8.6的插件安装和之前的版本可能会有一些区别,下面是SVN插件的安装: 1.从官网下载site-1.6.13.zip文件,网址是:subclipse.tigri ...

  7. 基于百度地图api + AngularJS 的入门地图

    转载请注明地址:http://www.cnblogs.com/enzozo/p/4368081.html 简介: 此入门地图为简易的“广州大学城”公交寻路地图,采用很少量的AngularJS进行inp ...

  8. C# 常用参数

    主函数调用 public static void Fun_Param() { ; ; ChangeValue(x, y); //外部调用Ref函数,必须初始化变量 ChangeValue(ref x, ...

  9. Zend Studio 如何配置本地apache服务器使用xdebug调试php脚本

    本地环境搭配: apache 2.2 安装位置:D:/program files/Apache Software Foundation/Apache2.2 php 5.2.10 安装位置:C:/php ...

  10. 分支-15. 日K蜡烛图(15)

    #include<iostream> using namespace std; int main(){ float o,h,l,c; while(cin>>o>>h ...