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 相关文章推荐
理解Javascript_05_原型继承原理
Oct 13 Javascript
JS实现点击图片在当前页面放大并可关闭的漂亮效果
Oct 18 Javascript
jQuery实现可高亮显示的二级CSS菜单效果
Sep 01 Javascript
jQuery动态生成表格及右键菜单功能示例
Jan 13 Javascript
Angular 4.x中表单Reactive Forms详解
Apr 25 Javascript
在 Angular-cli 中使用 simple-mock 实现前端开发 API Mock 接口数据模拟功能的方法
Nov 28 Javascript
详解在create-react-app使用less与antd按需加载
Dec 06 Javascript
关于微信小程序登录的那些事
Jan 08 Javascript
vue回到顶部监听滚动事件详解
Aug 02 Javascript
jQuery实现简单评论区功能
Oct 26 jQuery
vue使用过滤器格式化日期
Jan 20 Vue.js
vue常用高阶函数及综合实例
Feb 25 Vue.js
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
Notice: Trying to get property of non-object problem(PHP)解决办法
2012/03/11 PHP
PHP之uniqid()函数用法
2014/11/03 PHP
php中关于socket的系列函数总结
2015/05/18 PHP
Dojo之路:如何利用Dojo实现Drag and Drop效果
2007/04/10 Javascript
使用ImageMagick进行图片缩放、合成与裁剪(js+python)
2013/09/16 Javascript
JavaScript 垃圾回收机制分析
2013/10/10 Javascript
JavaScript四种调用模式和this示例介绍
2014/01/02 Javascript
js 数值转换为3位逗号分隔的示例代码
2014/02/19 Javascript
一个JavaScript的求爱小特效
2014/05/09 Javascript
Javascript中的delete操作符详细介绍
2014/06/06 Javascript
jQuery实现倒计时按钮功能代码分享
2014/09/03 Javascript
js模拟百度模糊搜索的实例
2017/08/04 Javascript
Vue的MVVM实现方法
2017/08/16 Javascript
在vue中获取token,并将token写进header的方法
2018/09/26 Javascript
nodejs require js文件入口,在package.json中指定默认入口main方法
2018/10/10 NodeJs
微信小程序实现简单跑马灯效果
2020/05/26 Javascript
详解Vue前端对axios的封装和使用
2019/04/01 Javascript
浅谈JavaScript闭包
2019/04/09 Javascript
详解Vue+Element的动态表单,动态表格(后端发送配置,前端动态生成)
2019/04/20 Javascript
介绍Python的@property装饰器的用法
2015/04/28 Python
如何将python中的List转化成dictionary
2016/08/15 Python
简单了解什么是神经网络
2017/12/23 Python
Flask入门之上传文件到服务器的方法示例
2018/07/18 Python
python使用Plotly绘图工具绘制水平条形图
2020/03/25 Python
python实现图片二值化及灰度处理方式
2019/12/07 Python
python对Excel的读取的示例代码
2020/02/14 Python
python 进程池pool使用详解
2020/10/15 Python
HTML5中新标签和常用标签详解
2014/03/07 HTML / CSS
日本快乐生活方式购物网站:Shop Japan
2018/07/17 全球购物
C语言基础笔试题
2013/04/27 面试题
Linux中如何用命令创建目录
2015/01/12 面试题
施工安全协议书
2013/12/11 职场文书
个人委托书怎么写
2014/04/04 职场文书
2019年暑期法院实习报告
2019/12/18 职场文书
python 实现的截屏工具
2021/05/08 Python
关于flex 上下文中自动 margin的问题(完整例子)
2021/05/20 HTML / CSS