日期:2014-05-16 浏览次数:20484 次
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>练习3.9.3</title>
<script type="text/javascript" src="/js/jquery.min.js" ></script>
<script type="text/javascript">
$(document).keyup(function(event){
if(event.keyCode==39){
//这里怎么写?
}
});
</script>
</head>
<body>
<div id="div1">
<span>
div1
</span>
</br></br></br></br></br></br></br></br></br></br></br></br></br>
</br></br></br></br></br></br></br></br></br></br></br></br></br>
</div>
<div id="div2">
<span>
div2
</span>
</br></br></br></br></br></br></br></br></br></br></br></br></br>
</br></br></br></br></br></br></br></br></br></br></br></br></br>
</div>
<div id="div3">
<span>
div3
</span>
</br></br></br></br></br></br></br></br></br></br></br></br></br>
</br></br></br></br></br></br></br></br></br></br></br></br></br>
</div>
</body>
</html>
<script type="text/javascript">
//获取元素相对于页面根元素的位置
var getOffsetTop = function(elem){
var height = elem.offsetTop;
while(elem.offsetParent){
elem = elem.offsetParent;
height += elem.offsetTop
}
return height;
};
//按下下键的时候,首先找到页面显示的目标div,再跳转到下一个div的位置
var skipToTarget = function(){
var divs = document.getElementsByTagName("div");
if(divs.length < 1) return false;
//遍历div元素
(function(){
for(var i = 0, len = divs.length; i < len; i++){
var elem = divs[i],
//跳转的目标位置
skipFlag = i + 1;
if( i == len - 1){
skipFlag = 0;
}
//通过判断元素在可视窗口显示的区域,确定目标div
if(elem.offsetHeight - (document.documentElement.scrollTop - getOffsetTop(elem)) >= 0){
//跳转
location.hash = divs[skipFlag].id;
break;
}
}
})();
};
window.onload = function(){
document.onkeyup = function(event){
event = event ? event : window.event;
if(event.keyCode == 40){
skipToTarget();
}
};
};
/*
$(document).keyup(function(event){
if(event.keyCode==39){
//在这里调用跳转函数
skipToTarget();
}
});
*/
</script>
------解决方案--------------------