jQuery---钢琴案例 (按下1-9数字键,能触发对应的mouseenter事件)
2021-04-20 13:26
标签:lis down keycode hidden false 钢琴 osi relative lan (按下1-9数字键,能触发对应的mouseenter事件) 1. 结合之前的学习,主要内容,就是on注册keyup事件,函数里传入e, 用e.keyCode,来获取1-9的数字的范围。 如果所按的按键在49-57的范围里,就去触发mouseenter(or mouseleave)事件。 怎么触发呢?让.nav li的索引下标等于(code-49) 2. 设置节流阀 下面的代码是有bug的 jQuery---钢琴案例 (按下1-9数字键,能触发对应的mouseenter事件) 标签:lis down keycode hidden false 钢琴 osi relative lan 原文地址:https://www.cnblogs.com/jane-panyiyun/p/12259588.html钢琴案例
//弹起的时候,触发mouseleave事件
$(document).on("keyup", function (e) {
// flag = true;
// //获取到按下的键
var code = e.keyCode;
if (code >= 49 && code ) {
//触发对应的li的mouseleave事件
$(".nav li").eq(code - 49).mouseleave();
}
});
DOCTYPE html>
html lang="en">
head>
meta charset="UTF-8">
title>Titletitle>
style>
* {
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: white;
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;
}
style>
script src="../jquery-1.12.4.js">script>
script>
$(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();
// }
}
};
});
//弹起的时候,触发mouseleave事件
$(document).on("keyup", function (e) {
flag = true;
//获取到按下的键
var code = e.keyCode;
if (code >= 49 && code 57) {
//触发对应的li的mouseleave事件
$(".nav li").eq(code - 49).mouseleave();
}
});
});
script>
head>
body>
div class="nav">
ul>
li>
a href="javascript:void(0);">导航1a>
span>span>
li>
li>a href="javascript:void(0);">导航2a>span>span>li>
li>a href="javascript:void(0);">导航3a>span>span>li>
li>a href="javascript:void(0);">导航4a>span>span>li>
li>a href="javascript:void(0);">导航5a>span>span>li>
li>a href="javascript:void(0);">导航6a>span>span>li>
li>a href="javascript:void(0);">导航7a>span>span>li>
li>a href="javascript:void(0);">导航8a>span>span>li>
li>a href="javascript:void(0);">导航9a>span>span>li>
ul>
div>
audio src="mp3/1.ogg">audio>
audio src="mp3/2.ogg">audio>
audio src="mp3/3.ogg">audio>
audio src="mp3/4.ogg">audio>
audio src="mp3/5.ogg">audio>
audio src="mp3/6.ogg">audio>
audio src="mp3/7.ogg">audio>
audio src="mp3/8.ogg">audio>
audio src="mp3/9.ogg">audio>
div>
div>
body>
html>
文章标题:jQuery---钢琴案例 (按下1-9数字键,能触发对应的mouseenter事件)
文章链接:http://soscw.com/index.php/essay/77145.html