js事件动画效果小练习 (待更新)

练 习

1、(上下左右)按键移动元素:

html部分代码

 

<div  id = “move">

 

   </div>

 


 

 

 

css部分代码

 

# move{

 

     width:200px;

 

     height:  200px;

 

     background:#ccc;

 

     position:absolute;

 

     top:250px;

 

     left:620px;

 

     border:1px solid black;

 

}

 


 

 

 

js 部分代码

 

 

 

document.onkeydown = function(evt){

 

   var e = evt || window.event;               // W3C与IE兼容

 

   var div = document.getElementById(“move”);

 

 

 

  if (e.keycode == 37 ) {                                                 //按下左键,键码为37

 

   return div.style.left = div.offsetLeft - 10 + “px”;            //div向左移动 10px

 

 } else if (e.keycode == 39){                                          // 按下右键,键码为39

 

  return div.style.left = div.offsetLeft + 10 + ”px”;            //div向右移动 10px

 

 } else if (e.keycode == 38){                                          //按下上键,键码为38

 

  return div.style.top = div.offsetTop - 10 + ”px”;             //div向上移动 10px

 

 } else if (e.keycode == 40 ){                                        //按下下键,键码为40

 

 return div.style.top = div.offsetTop +10 +“px”;              //div向下移动 10px

 

 }

 

 

 

}


2、写一个留言框,按下ctrl和回车提交留言
 
<div>
<textarea id=“txt1” rows = “10” cols = “40”></textarea>
<input id = “txt2” type = “text”/>
<input id = “btn” type = “button” value = “留言”/>
</div>
 
<script>
window.onload = function(){
  var btn = document.getElementById(“btn”);
  var txt1 = document.getElementById(“txt1’);
  var txt2 = document.getElementById(“txt2”);
 
   btn.onclick = function(){
    txt1.value += txt2.value + “\n”;        //讲txt2文本框里输入的内容加到txt1文本框内,并换行;
    txt2.value = null;                       //点击按钮后,txt2文本框内容清空;
  }
 
   txt2.onkeydown = function(evt){
    var e = evt || window.event;       //兼容W3C和IE浏览器
     if(e.ctrlkey && e.keyCode == 13){     //同时按下ctrl和回车键时,提交留言(回车键键码为13)
      txt1.value += txt2.value + “\n”;
      txt2.value = null ; 
}
}
}
</script>

3、物体跟随鼠标运动
 
html、CSS部分代码与第一个相同
 
<div  id = “move">
   </div>
 
<script>
    document.onmousemove = function(evt){
       var e = evt || window.event;                                 //   IE与非IE兼容
       var oMove = document.getElementById("move");
       var scrollTop = document.documentElement.scrollTop||document.body.scrollTop;
       var scrollLeft = document.documentElement.scrollLeft||document.body.scrollLeft;
         //兼容,  body.scrollTop/scrollLeft 为IE下的滚动条高度宽度;
       oMove.style.left = e.clientX + scrollLeft +"px” ; 
       oMove.style.top = e.clientY + scrollTop + "px”;   
         //元素的位置 = 鼠标横纵坐标 +滚动的高度宽度;
  }
</script>
4、写一个图片的无缝滚动
html部分:
 
CSS部分:
 
js部分:

 5、右击菜单(阻止默认菜单,显示自定义新菜单—简易代码):
<html>
  <head>
   <meta charset = "UTF-8"/>
   <style>
     #menu {width:100px;height:150px;background:#ccc;}
   </style>
  </head>
 <body>
   <div id="menu">
     <ul>
        <li>首页</li>
        <li>登陆</li>
        <li>返回</li>
      </ul>
   </div>
   <script>
     document.oncontextmenu = function(evt){
     var   e = evt || window.event;
     var  Omenu = document.getElementById("menu");
    
     Omenu.style.left = e.clientX + "px";           //菜单跟随鼠标横坐标移动
     Omenu.style.top = e.clientY + "px";           //菜单跟随鼠标纵坐标移动
     Omenu.style.display = "block";                 //菜单呈“block”显示
     return false;                    //阻止默认行为(即:阻止默认菜单出现)
     }
 
  document.onclick = function(){
   var  Omenu = document.getElementById("menu");
   Omenu.style.display = "none";                 //   鼠标点击页面任意地方时,自定义菜单不显示;
}
   </script>
 </body>
</html>
 
6、★ 拖 拽:
三个事件:onmousedown — 储存距离(鼠标与物体间横向、纵向距离)
              onmouseover —  根据距离,计算div的最新位置
              onmouseup — 使 onmousedown 和 onmousemove 等于 null;
js部分代码:         
 
 
 
 
 

 

posted @ 2015-12-30 22:54  Krystal_M  阅读(396)  评论(0编辑  收藏  举报