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 相关文章推荐
js png图片(有含有透明)在IE6中为什么不透明了
Feb 07 Javascript
jQuery学习笔记之jQuery的事件
Dec 22 Javascript
你未必知道的JavaScript和CSS交互的5种方法
Apr 02 Javascript
javascript 继承学习心得总结
Mar 17 Javascript
xtemplate node.js 的使用方法实例解析
Aug 22 Javascript
JS给swf传参数的实现方法
Sep 13 Javascript
node.JS md5加密中文与php结果不一致的解决方法
May 05 Javascript
AngularJs 常用的过滤器
May 15 Javascript
jQuery封装animate.css的实例
Jan 04 jQuery
Node.js Event Loop各阶段讲解
Mar 08 Javascript
一文了解Vue中的nextTick
May 06 Javascript
Vuex的实战使用详解
Oct 31 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 OPCode缓存 APC详细介绍
2010/10/12 PHP
常用的php图片处理类(水印、等比缩放、固定高宽)分享
2015/06/19 PHP
PHP导出Excel实例讲解
2016/01/24 PHP
Add a Formatted Table to a Word Document
2007/06/15 Javascript
Extjs ajax同步请求时post方式参数发送方式
2009/08/05 Javascript
javascript代码加载优化方法
2011/01/30 Javascript
利用谷歌地图API获取点与点的距离的js代码
2012/10/11 Javascript
Extjs4 GridPanel 的几种样式使用介绍
2013/04/18 Javascript
纯JS实现五子棋游戏兼容各浏览器(附源码)
2013/04/24 Javascript
html向js方法传递参数具体实现
2013/08/08 Javascript
鼠标拖动实现DIV排序示例代码
2013/10/14 Javascript
jsonp原理及使用
2013/10/28 Javascript
js图片自动轮播代码分享(js图片轮播)
2014/05/06 Javascript
一张表格告诉你windows.onload()与$(document).ready()的区别
2014/05/16 Javascript
Javascript遍历table中的元素示例代码
2014/07/08 Javascript
jQuery实现表格颜色交替显示的方法
2015/03/09 Javascript
jquery.fastLiveFilter.js实现输入自动过滤的方法
2015/08/11 Javascript
Webpack 实现 Node.js 代码热替换
2015/10/22 Javascript
轻松实现jQuery添加删除按钮Click事件
2017/03/13 Javascript
js嵌套的数组扁平化:将多维数组变成一维数组以及push()与concat()区别的讲解
2019/01/19 Javascript
Koa从零搭建到Api实现项目的搭建方法
2019/07/30 Javascript
nodejs实现聊天机器人功能
2019/09/19 NodeJs
vue 获取及修改store.js里的公共变量实例
2019/11/06 Javascript
JS 事件机制完整示例分析
2020/01/15 Javascript
基于Web Audio API实现音频可视化效果
2020/06/12 Javascript
vue中路由跳转不计入history的操作
2020/09/21 Javascript
python使用TensorFlow进行图像处理的方法
2018/02/28 Python
Python实现的基于优先等级分配糖果问题算法示例
2018/04/25 Python
使用Python制作一个打字训练小工具
2019/10/01 Python
python如何从键盘获取输入实例
2020/06/18 Python
css3之UI元素状态伪类选择器实例演示
2017/08/11 HTML / CSS
Fossil加拿大官网:化石手表、手袋、首饰及配饰
2019/04/23 全球购物
Ruby中的保护方法和私有方法与一般面向对象程序设计语言的一样吗
2013/05/01 面试题
学生乘坐校车安全责任书
2015/05/11 职场文书
校车安全管理责任书
2015/05/11 职场文书
2019年恭贺升学祝福语集锦
2019/08/15 职场文书