javascript教程_web前端教程分享javascript 练习题

12f1a0a575b15c36624fade8eeae2c01.png

web前端教程分享前端 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.οnmοusemοve=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事件

});

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值