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 相关文章推荐
Jjcarousellite 实现图片列表滚动的简单实例
Nov 29 Javascript
关闭浏览器时提示onbeforeunload事件
Dec 25 Javascript
js用闭包遍历树状数组的方法
Mar 19 Javascript
js过滤特殊字符输入适合输入、粘贴、拖拽多种情况
Mar 22 Javascript
javascript实现在网页中运行本地程序的方法
Feb 03 Javascript
javascript 继承学习心得总结
Mar 17 Javascript
Bootstrap表格和栅格分页实例详解
May 20 Javascript
JS JSOP跨域请求实例详解
Jul 04 Javascript
微信小程序 图片宽高自适应详解
May 11 Javascript
使用Bootrap和Vue实现仿百度搜索功能
Oct 26 Javascript
jQuery利用FormData上传文件实现批量上传
Dec 04 jQuery
jQuery 选择方法及$(this)用法实例分析
May 19 jQuery
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中cookies使用指南
2007/03/16 PHP
PHP 第二节 数据类型之转换
2012/04/28 PHP
CI框架支持$_GET的两种实现方法
2016/05/18 PHP
thinkphp的dump函数无输出实例代码
2016/11/15 PHP
JavaScript EasyPager 分页函数
2011/05/25 Javascript
根据身份证号自动输出相关信息(籍贯,出身日期,性别)
2013/11/15 Javascript
javascript实现的平方米、亩、公顷单位换算小程序
2014/08/11 Javascript
jQuery+PHP实现动态数字展示特效
2015/03/14 Javascript
jQuery+html5实现div弹出层并遮罩背景
2015/04/15 Javascript
动态加载jQuery的两种方法实例分析
2015/07/17 Javascript
js淡入淡出焦点图幻灯片效果代码分享
2015/09/08 Javascript
JavaScript绑定事件监听函数的通用方法
2016/05/14 Javascript
详解Angular2中的编程对象Observable
2016/09/17 Javascript
javascript中的隐式调用
2018/02/10 Javascript
vue中的v-if和v-show的区别详解
2019/09/01 Javascript
JavaScript enum枚举类型定义及使用方法
2020/05/15 Javascript
Vue.extend 登录注册模态框的实现
2020/12/29 Vue.js
python连接池实现示例程序
2013/11/26 Python
Linux下通过python访问MySQL、Oracle、SQL Server数据库的方法
2016/04/23 Python
python判断列表的连续数字范围并分块的方法
2018/11/16 Python
简单了解python单例模式的几种写法
2019/07/01 Python
python操作openpyxl导出Excel 设置单元格格式及合并处理代码实例
2019/08/27 Python
Python @property装饰器原理解析
2020/01/22 Python
Java多线程实现四种方式原理详解
2020/06/02 Python
CSS3旋转——彩色扇子兼容firefox浏览器
2013/06/04 HTML / CSS
应届大专毕业生个人自荐信
2013/09/22 职场文书
如何客观的进行自我评价
2013/12/17 职场文书
项目合作协议书
2014/04/16 职场文书
环保建议书400字
2014/05/14 职场文书
地方白酒代理协议书
2014/10/25 职场文书
求职简历自荐信怎么写
2015/03/26 职场文书
教师调动申请报告
2015/05/18 职场文书
大学生党课心得体会
2016/01/07 职场文书
导游词之西安大清真寺
2019/12/17 职场文书
分析Python list操作为什么会错误
2021/11/17 Python
前端JS获取URL参数的4种方法总结
2022/04/05 Javascript