Js实现网页键盘控制翻页的方法


Posted in Javascript onOctober 30, 2014

本文实例讲述了Js实现网页键盘控制翻页的方法。分享给大家供大家参考。具体实现方法如下:

键盘控制翻页效果我想我们不少见了,经常在很多网站特别是相册的效果都可以直接使用键盘进行上下页进行翻页了,原理很简单,只要利用js监测用户是否有按上下键即可实现。

举例如下:

<a id="last" href="<?=$lefturl?>">上一章</a>

<a id="booklist" href="<?=$booklisturl?>">返回目录</a>

<a id="next" href="<?=$righturl?>">下一章</a>

js代码如下:
<script language="javascript">

<!--

last=document . getElementById("last").href;

next=document . getElementById("next").href;

booklist=document . getElementById("booklist").href;

function keyUp(e) {

if(navigator.appName == "Microsoft Internet Explorer")

{

var keycode = event.keyCode;

var realkey = String.fromCharCode(event.keyCode);

}else

{

var keycode = e.which;

var realkey = String.fromCharCode(e.which);

}

if(keycode==39){

window.location.href=next;

}

if(keycode==37){

window.location.href=last;

}

if(keycode==13){

window.location.href=booklist;

}

}

document.onkeydown = keyUp;

//-->

</script>

今天从网上看到这个功能,不错啊,以后就可以在文章中,增加这个功能了
var re = /<a href=["']?([-=w./?]+)["']?>[[(<]?上一页[])>]?</a>/igm; 

if (window.document.body.innerHTML.search(re) >= 0) { 

var PREVIOUS_PAGE = RegExp.$1; 

}

如果搜下到"上一页",则定义
var PREVIOUS_PAGE = RegExp.$1; 

var re = /<a href=["']?([-=w./?]+)["']?>[[(<]?下一页[])>]?</a>/igm; 

if (window.document.body.innerHTML.search(re) >= 0) { 

var NEXT_PAGE = RegExp.$1; 

}

如果搜下到"下一页",则定义
var NEXT_PAGE = RegExp.$1; 

if (typeof PREVIOUS_PAGE == "string" || typeof NEXT_PAGE == "string") { 

document.onkeydown = function() { 

switch (event.srcElement.tagName) { 

case "INPUT": 

case "TEXTAREA": 

case "SELECT": 

break; 

default: 

if (event.keyCode == 37 /* Arrow Left*/ && typeof PREVIOUS_PAGE == "string") { 

window.location.href = PREVIOUS_PAGE; 

} 

else if (event.keyCode == 39 /* Arrow Right */ && typeof NEXT_PAGE == "string") { 

window.location.href = NEXT_PAGE; 

} 

} 

} 

}

下面说一下我做过的一个上下翻页的快捷键实现。当用户点击左右方向键时,js获取键盘代码,然后跳转到下一页或者上一页,现在网上很多代码都是ie的,firefox下无法执行,很多时候都是因为ff下不支持非标准的**.click()造成的,ie下对A标签进行click操作默认转到了相应的网址,而ff下不可行(onClick()倒是可以,不过这是执行的A的onClick事件)。

解决办法也很简单,我们可以采用这个方法:捕获用户点击右方向键时,把下一页的A的href属性赋给window.location.href就可以了。

var $=function(id)

{

    return document.getElementById(id);

}

var hotKey=function(e) 

{

    var e =e||event;

    var k = e.keyCode||e.which||e.charCode;//获取按键代码

    if (k == 37)

    {

        if ($("prevPage"))

            window.location.href = $("prevPage").href;

    }

    else if (k == 39)

    {

        if ($("nextPage"))

            window.location.href = $("nextPage").href;

    }

    else if (k == 72)

    {

        if ($("home"))

            window.location.href = $("home").href;

    }

}

document.onkeydown = hotKey;//左右键

希望本文所述对大家基于javascript的web程序设计有所帮助。

Javascript 相关文章推荐
动态调用CSS文件的JS代码
Jul 29 Javascript
javascript针对DOM的应用分析(四)
Apr 15 Javascript
js获取判断上传文件后缀名的示例代码
Feb 19 Javascript
JavaScript设计模式之外观模式实例
Oct 10 Javascript
JQuery遍历元素的后代和同胞实现方法
Sep 18 Javascript
vue插件tab选项卡使用小结
Oct 27 Javascript
JavaScript中闭包的详解
Apr 01 Javascript
vue项目中使用ueditor的实例讲解
Mar 05 Javascript
JavaScript栈和队列相关操作与实现方法详解
Dec 07 Javascript
layer更改皮肤的实现方法
Sep 11 Javascript
基于layui内置模块(element常用元素的操作)
Sep 20 Javascript
最新最全的手机号验证正则表达式
Feb 24 Javascript
javascript实现iframe框架延时加载的方法
Oct 30 #Javascript
js中iframe调用父页面的方法
Oct 30 #Javascript
js防止页面被iframe调用的方法
Oct 30 #Javascript
escape函数解决js中ajax传递中文出现乱码问题
Oct 30 #Javascript
js防止DIV布局滚动时闪动的解决方法
Oct 30 #Javascript
js实现window.open不被拦截的解决方法汇总
Oct 30 #Javascript
一个JavaScript获取元素当前高度的实例
Oct 29 #Javascript
You might like
PHP高手需要要掌握的知识点
2014/08/21 PHP
PHP的CURL方法curl_setopt()函数案例介绍(抓取网页,POST数据)
2016/12/14 PHP
php表单处理操作
2017/11/16 PHP
Laravel框架实现多个视图共享相同数据的方法详解
2019/07/09 PHP
JavaScript 三种不同位置代码的写法
2009/10/25 Javascript
js监听键盘事件示例代码
2013/07/26 Javascript
javascript eval(func())使用示例
2013/12/05 Javascript
Javascript浅谈之引用类型
2013/12/18 Javascript
js实现用户离开页面前提示是否离开此页面的方法(包括浏览器按钮事件)
2015/07/18 Javascript
JavaScript实现快速排序的方法
2015/07/31 Javascript
网页收藏夹显示ICO图标(代码少)
2015/08/04 Javascript
Restify中接入Socket.io报Error:Can’t set headers的错误解决
2017/03/28 Javascript
node.js中EJS 模板快速入门教程
2017/05/08 Javascript
详解javascript 正则表达式之分组与前瞻匹配
2018/05/30 Javascript
JavaScript惰性载入函数实例分析
2019/03/27 Javascript
JavaScript适配器模式原理与用法实例详解
2020/03/09 Javascript
NestJs使用Mongoose对MongoDB操作的方法
2021/02/22 Javascript
[03:09]2014DOTA2国际邀请赛 Mushi前队友送上祝福
2014/07/12 DOTA
[42:25]EG vs Spirit Supermajor 败者组 BO3 第二场 6.4
2018/06/05 DOTA
开始着手第一个Django项目
2015/07/15 Python
详谈python中冒号与逗号的区别
2018/04/18 Python
基于Django框架的权限组件rbac实例讲解
2019/08/31 Python
CSS实现圆形放大镜狙击镜效果 只有圆圈里的放大
2012/12/10 HTML / CSS
HTML5视频支持检测(检查浏览器是否支持视频播放)
2013/06/08 HTML / CSS
美国创意之家:BulbHead
2017/07/12 全球购物
皮姆斯勒语言学习:Pimsleur Language Programs
2018/06/30 全球购物
Vertbaudet西班牙网上商店:婴儿服装、童装、母婴用品和儿童家具
2019/10/16 全球购物
人力资源部培训专员岗位职责
2014/01/02 职场文书
好家长事迹材料
2014/01/23 职场文书
奥巴马当选演讲稿
2014/09/10 职场文书
四风查摆问题及整改措施
2014/10/10 职场文书
党政领导班子群众路线对照检查材料
2014/10/26 职场文书
小学校长个人总结
2015/03/03 职场文书
2015年公司后勤管理工作总结
2015/05/13 职场文书
使用jpa之动态插入与修改(重写save)
2021/11/23 Java/Android
CSS巧用渐变实现高级感背景光动画
2021/12/06 HTML / CSS