javascript 练习题

简介: javascript 练习题,图片跟着鼠标飞: //图片跟着鼠标飞,可以在任何的浏览器中实现 //window.event和事件参数对象e的兼容 //clientX和clientY单独的使用的兼容代码 //scrollLeft和scrollTop的兼容代码 //pageX,pageY和cl...

javascript 练习题,图片跟着鼠标飞:
//图片跟着鼠标飞,可以在任何的浏览器中实现
//window.event和事件参数对象e的兼容
//clientX和clientY单独的使用的兼容代码
//scrollLeft和scrollTop的兼容代码
//pageX,pageY和clientX+scrollLeft 和clientY+scrollTop

//把代码封装在一个函数

//把代码放在一个对象中
var evt={

//window.event和事件参数对象e的兼容
getEvent:function (evt) {
  return window.event||evt;
},
//可视区域的横坐标的兼容代码
getClientX:function (evt) {
  return this.getEvent(evt).clientX;
},
//可视区域的纵坐标的兼容代码
getClientY:function (evt) {
  return this.getEvent(evt).clientY;
},
//页面向左卷曲出去的横坐标
getScrollLeft:function () {
  return window.pageXOffset||document.body.scrollLeft||document.documentElement.scrollLeft||0;
},
//页面向上卷曲出去的纵坐标
getScrollTop:function () {
  return window.pageYOffset||document.body.scrollTop||document.documentElement.scrollTop||0;
},
//相对于页面的横坐标(pageX或者是clientX+scrollLeft)
getPageX:function (evt) {
  return this.getEvent(evt).pageX? this.getEvent(evt).pageX:this.getClientX(evt)+this.getScrollLeft();
},
//相对于页面的纵坐标(pageY或者是clientY+scrollTop)
getPageY:function (evt) {
  return this.getEvent(evt).pageY?this.getEvent(evt).pageY:this.getClientY(evt)+this.getScrollTop();
}

};
//最终的代码

document.onmousemove=function (e) {

my$("im").style.left=evt.getPageX(e)+"px";
my$("im").style.top=evt.getPageY(e)+"px";

};
钢琴版导航条:
css样式:

  • {

     margin: 0;
     padding: 0;
     list-style: none;

    }

    .nav {

     width: 900px;
     height: 60px;
     background-color: black;
     margin: 0 auto;

    }

    .nav li {

     width: 100px;
     height: 60px;
     /*border: 1px solid yellow;*/
     float: left;
     position: relative;
     overflow: hidden;

    }

    .nav a {

     position: absolute;
     width: 100%;
     height: 100%;
     font-size: 24px;
     color: blue;
     text-align: center;
     line-height: 60px;
     text-decoration: none;
     z-index: 2;

    }

    .nav span {

     position: absolute;
     width: 100%;
     height: 100%;
     background-color: yellow;
     top: 60px;

    }
    jq实现代码: 需要引入jq文件

$(function () {

  //给li注册鼠标进入事件,让li下面的span top:0  播放音乐
  $(".nav li").mouseenter(function () {
    $(this).children("span").stop().animate({top: 0});
    //播放音乐
    var idx = $(this).index();
    $(".nav audio").get(idx).load();
    $(".nav audio").get(idx).play();
  }).mouseleave(function () {
    $(this).children("span").stop().animate({top: 60});
  });
  
  //节流阀  :按下的时候,触发,如果没弹起,不让触发下一次
  //1. 定义一个flag
  var flag = true;
  
  
  //按下1-9这几个数字键,能触发对应的mouseenter事件
  $(document).on("keydown", function (e) {
    if(flag) {
      flag = false;
      //获取到按下的键
      var code = e.keyCode;
      if(code >= 49 && code <= 57){
        //触发对应的li的mouseenter事件
        $(".nav li").eq(code - 49).mouseenter();
      }
    }
   
  });

  $(document).on("keyup", function (e) {
    flag = true;
    
    //获取到按下的键
    var code = e.keyCode;
    if(code >= 49 && code <= 57){
      //触发对应的li的mouseenter事件
      $(".nav li").eq(code - 49).mouseleave();
    }
  });
  
  //弹起的时候,触发mouseleave事件
  
});
相关文章
|
7月前
|
JavaScript 数据安全/隐私保护
js练习题
js练习题
|
2月前
|
JavaScript 前端开发 数据格式
期末测试——JavaScript方式练习题
期末测试——JavaScript方式练习题
52 0
|
8月前
|
前端开发
前端学习笔记202305学习笔记第三十三天-js-执行上下文练习题1
前端学习笔记202305学习笔记第三十三天-js-执行上下文练习题1
32 0
|
8月前
|
前端开发
前端学习笔记202306学习笔记第三十六天-js-原型链练习题2
前端学习笔记202306学习笔记第三十六天-js-原型链练习题2
29 0
|
8月前
|
前端开发
前端学习笔记202305学习笔记第三十四天-js-一个闭包的练习题1
前端学习笔记202305学习笔记第三十四天-js-一个闭包的练习题1
52 0
|
4月前
|
JavaScript 前端开发 开发工具
javaScript基础练习题
javaScript基础练习题
25 0
|
8月前
|
前端开发
前端学习笔记202305学习笔记第三十二天-js-执行上下文练习题2
前端学习笔记202305学习笔记第三十二天-js-执行上下文练习题2
25 0
|
8月前
|
前端开发
前端学习笔记202305学习笔记第三十二天-js-执行上下文练习题1
前端学习笔记202305学习笔记第三十二天-js-执行上下文练习题1
27 0
|
8月前
|
前端开发
前端学习笔记202305学习笔记第三十三天-js-执行上下文练习题
前端学习笔记202305学习笔记第三十三天-js-执行上下文练习题
27 0
|
8月前
|
前端开发
前端学习笔记202305学习笔记第三十三天-js-执行上下文练习题3
前端学习笔记202305学习笔记第三十三天-js-执行上下文练习题3
34 0