一、图片放大缩小

 <!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. 用 jQuery Masonry 插件创建瀑布流式的页面

    瀑布流式的页面,最早我是在国外的一个叫 Pinterest 的网站上看到,这个网站爆发,后来国内的很多网站也使用了这种瀑布流方式来展示页面(我不太喜欢瀑布流这个名字). 我们可以使用 jQuery 的 ...

  2. malloc、calloc、realloc三者的差别

    1.malloc 作用:分配内存块 原型:void *malloc(size_t size);size表示要分配的字节数 返回值:返回一个指向所分配空间的void指针,假设没有足够的内存可用,则返回N ...

  3. asp.net生成RSS

    经常看到博客.还有很多网站中有RSS订阅,今天就来玩玩asp.net生成RSS,在网上查找了相关资料 发现just soso,如下: aspx <?xml version="1.0&q ...

  4. if语句判断身高体重是否标准

    1.判断身高,体重是否标准 Console.WriteLine("请输入您的身高:"); int sg = Convert.ToInt32(Console.ReadLine()); ...

  5. MBProgressHUD简单使用

    使用HUD最多的情形用于请求等待提示 例如做登录的时候在确认登陆的时候可以用HUD提示正在登陆. 最基本的使用 初始化 //self.view代表在哪个view中显示hud MBProgressHUD ...

  6. WPF qq界面(转)

    原文:http://blog.csdn.net/u013981858/article/details/49130885 刚开始学WPF,自己写了个小东西,说实话写的并不好,好多东西不懂只是用现在懂的东 ...

  7. select into from 和 insert into select 的用法和区别(转)

    转自:http://www.studyofnet.com/news/182.html select into from 和 insert into select都是用来复制表,两者的主要区别为: se ...

  8. 如何用一个语句判断一个整数是不是二的整数次幂——从一道简单的面试题浅谈C语言的类型提升(type promotion)

    最近招聘季,看JULY大哥的面试100题时,碰到这么一个扩展问题: 如何用一个语句判断一个整数是不是二的整数次幂?(此题在编程之美也有) easy, 2的整数次幂的二进制形式只有一个1,只要用i和i- ...

  9. SqlServer和Oracle中一些常用的sql语句10 特殊应用

    --482, ORACLE / SQL SERVER --订购数量超过平均值的书籍 WITH Orders_Book AS ( SELECT Book_Name, SUM(Qty) Book_Qty ...

  10. 查看一个int数组里边的每个数字出现过几次

    public void aa() { int[] a = { 1, 2, 3, 4, 5, 4, 3, 2, 1 }; Hashtable ht = new Hashtable(); for (int ...