一、图片放大缩小

 <!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. Java-线程间通信

    Java-线程间通信 一 线程通讯 就是多个线程操作同一个资源,可是操作的动作不同 二 停止线程: 控制住run的循环就能够控制线程结束 当线程处于冻结状态,就不会读取标记,线程就不会结束 inter ...

  2. JS浏览器类型推断方法

    在网站的前端开发,浏览器兼容性问题这已经让我们抢,Chrome但也生出不知道多少麻烦,我们增加. 浏览器兼容性将由前端开发框架解决的第一个问题.要解决的兼容性问题必须首先准确推断浏览器的类型和它的版本 ...

  3. Android 建造者(Builder)模式

    关于 Builder 模式 详述:http://blog.csdn.net/jjwwmlp456/article/details/39890699 先来张图 看到 Android  中 使用了 Bui ...

  4. .Net将多个DLL打包为一个DLL(ILMerge)

    在做.Net底层编码过程中,为了功能独立,有可能会生成多个DLL,引用时非常不便.这方面微软提供了一个ILMerge工具原版DOS工具,可以将多个DLL合并成一个.下载完成后需要安装一下,然后通过DO ...

  5. iPhone APP 扫码下载

    移动互联网发展迅速,各种APP的开发都太疯狂了,一般稍大点儿的应用,都会准备多个版本,比如:iPhone版.iPad版.Android版,我们姑且称之为:终端适配. 业务做的再大点儿的,APP还会考虑 ...

  6. tcpdump使用技巧

    tcpdump使用技巧 http://www.veryarm.com/1751.html

  7. Java基础之编程语法(一)

    1.基本格式 所有Java代码都应该在一个class中. Java是严格区分大小写的. Java是一种自由格式的语言.Java代码分为结构定义语句和功能执行语句,功能执行语句最后必须以分号结束. 2. ...

  8. yii配置

    一.在config/web.php中添加如下代码(开启debug工具和gii工具) if (YII_ENV_DEV) { // configuration adjustments for 'dev' ...

  9. matlab实现协同过滤之pdist、squareform

    实现协同过滤算法的第一步是:计算用户或项目之间的相似度.接下来介绍pdist和squareform 用法: D = pdist(X) D = pdist(X,distance)   D = pdist ...

  10. 迪杰斯特拉算法c语言实现

    /*http://1wangxiaobo@163.com 数据结构C语言版 迪杰斯特拉算法  P189 http://1wangxiaobo@163.com 编译环境:Dev-C++ 4.9.9.2  ...