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 面向对象编程 function也是类
Sep 17 Javascript
JavaScript 实现类的多种方法实例
May 01 Javascript
回车直接实现点击某按钮的效果即触发单击事件
Feb 27 Javascript
Jquery中offset()和position()的区别分析
Feb 05 Javascript
jquery使用经验小结
May 20 Javascript
javascript中html字符串转化为jquery dom对象的方法
Aug 27 Javascript
JS实现自动变换的菜单效果代码
Sep 09 Javascript
JS实现获取键盘按下的按键并显示在页面上的方法
Nov 04 Javascript
微信小程序 参数传递实例代码
Mar 20 Javascript
angular.extend方法的具体使用
Sep 14 Javascript
TypeScript的安装、使用、自动编译的实现
Apr 10 Javascript
vue 数据遍历筛选 过滤 排序的应用操作
Nov 17 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
Adnroid 微信内置浏览器清除缓存
2016/07/11 PHP
php实现将数据做成json的格式给前端使用
2018/08/21 PHP
PHP开发实现快递查询功能详解
2019/04/08 PHP
JavaScript 对象成员的可见性说明
2009/10/16 Javascript
用jQuery扩展自写的 UI导航
2010/01/13 Javascript
javascript基础第一章 JavaScript与用户端
2010/07/22 Javascript
兼容IE与firefox火狐的回车事件(js与jquery)
2010/10/20 Javascript
动态加载jquery库的方法
2014/02/12 Javascript
jQuery控制TR显示隐藏的几种方法
2014/06/18 Javascript
AngularJS模块管理问题的非常规处理方法
2015/04/29 Javascript
BootStrop前端框架入门教程详解
2016/12/25 Javascript
javascript replace()第二个参数为函数时的参数用法
2016/12/26 Javascript
深入浅析javascript函数中with
2018/10/28 Javascript
jQuery中each和js中forEach的区别分析
2019/02/27 jQuery
如何实现小程序tab栏下划线动画效果
2019/05/18 Javascript
微信小程序如何修改radio和checkbox的默认样式和图标
2019/07/24 Javascript
使用JavaScript获取Django模板指定键值数据
2020/05/27 Javascript
python备份文件以及mysql数据库的脚本代码
2013/06/10 Python
Python计算回文数的方法
2015/03/11 Python
Python中有趣在__call__函数
2015/06/21 Python
Python装饰器实现几类验证功能做法实例
2017/05/18 Python
python实现Floyd算法
2018/01/03 Python
PyQt5每天必学之布局管理
2018/04/19 Python
python:print格式化输出到文件的实例
2018/05/14 Python
关于Django ForeignKey 反向查询中filter和_set的效率对比详解
2018/12/15 Python
python中类的输出或类的实例输出为这种形式的原因
2019/08/12 Python
python 浅谈serial与stm32通信的编码问题
2019/12/18 Python
解决Jupyter因卸载重装导致的问题修复
2020/04/10 Python
阿迪达斯印尼官方网站:adidas印尼
2020/02/10 全球购物
木马的传播途径主要有哪些
2016/04/08 面试题
群众路线剖析材料
2014/02/02 职场文书
学员自我鉴定
2014/03/19 职场文书
运动会班级口号
2014/06/09 职场文书
班风口号
2014/06/18 职场文书
煤矿开采专业求职信
2014/07/08 职场文书
普通党员群众路线教育实践活动心得体会
2014/11/04 职场文书