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 相关文章推荐
网页中实现浏览器的最大,最小化和关闭按钮
Mar 12 Javascript
Jquery 滑入滑出效果实现代码
Mar 27 Javascript
js sort 二维数组排序的用法小结
Jan 24 Javascript
使用jQuery时Form表单元素ID和name命名大忌
Mar 06 Javascript
JavaScript中的操作符==与===介绍
Dec 31 Javascript
JS实现5秒钟自动封锁div层的方法
Feb 20 Javascript
javascript实现抽奖程序的简单实例
Jun 07 Javascript
给easyui的datebox控件添加清空按钮的实现方法
Nov 09 Javascript
快速掌握jquery分页插件jqPaginator的使用方法
Aug 09 jQuery
Angular CLI在Angular项目中如何使用scss详解
Apr 10 Javascript
详解Vue改变数组中对象的属性不重新渲染View的解决方案
Sep 21 Javascript
使用axios请求接口,几种content-type的区别详解
Oct 29 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/12/30 PHP
PHP中把对象转换为关联数组代码分享
2015/04/09 PHP
php如何获取Http请求
2020/04/30 PHP
js 操作css实现代码
2009/06/11 Javascript
在javascript中关于节点内容加强
2013/04/11 Javascript
jquery+ajax+C#实现无刷新操作数据库数据的简单实例
2014/02/08 Javascript
javascript的回调函数应用示例
2014/02/20 Javascript
判断及设置浏览器全屏模式
2014/04/20 Javascript
jQuery实现table隔行换色和鼠标经过变色的两种方法
2014/06/15 Javascript
JavaScript中的pow()方法使用详解
2015/06/15 Javascript
jQuery双向列表选择器select版
2016/11/01 Javascript
Angularjs分页查询的实现
2017/02/24 Javascript
React.js中常用的ES6写法总结(推荐)
2017/05/09 Javascript
JS module的导出和导入的实现代码
2019/02/25 Javascript
微信小程序解析富文本过程详解
2019/07/13 Javascript
解决layui追加或者动态修改的表单元素“没效果”的问题
2019/09/18 Javascript
原生js实现随机点名功能
2019/11/05 Javascript
SpringBoot+Vue开发之Login校验规则、实现登录和重置事件
2020/10/19 Javascript
浅谈python import引入不同路径下的模块
2017/07/11 Python
python的paramiko模块实现远程控制和传输示例
2017/10/13 Python
NLTK 3.2.4 环境搭建教程
2018/09/19 Python
详解用Python练习画个美队盾牌
2019/03/23 Python
python实现修改固定模式的字符串内容操作示例
2019/12/30 Python
Python实现分数序列求和
2020/02/25 Python
python numpy实现多次循环读取文件 等间隔过滤数据示例
2020/03/14 Python
css3旋转木马_动力节点Java学院整理
2017/07/12 HTML / CSS
Clarks其乐鞋荷兰官网:Clarks荷兰
2019/07/05 全球购物
Kiehl’s科颜氏西班牙官方网站:源自美国的植物护肤品牌
2020/02/22 全球购物
澳大利亚体育和露营装备在线/实体零售商:Find Sports
2020/06/03 全球购物
用友笔试题目
2016/10/25 面试题
平面设计岗位职责
2013/12/14 职场文书
计算机专业毕业生自荐信
2013/12/31 职场文书
打架检讨书50字
2014/01/11 职场文书
股东协议书
2014/04/14 职场文书
Nginx 路由转发和反向代理location配置实现
2021/11/11 Servers
NoSQL优缺点与MongoDB数据库简介
2022/06/05 MongoDB