Javascript实例技巧精选(6)—滚动鼠标中键读取Json数据分页显示网页内容
>>点击这里下载完整html源码<<
截图如下:
滚动鼠标中键读取Json数据分页显示网页内容,关键的Javascript如下:
<script type="text/javascript"> <!--// function $(id){return document.getElementById(id);} //定义获取ID的方法 function GotoPage(num){ //跳转页 Page = num; OutputHtml(); } var PageSize = 9; //每页个数 var Page = 1; //当前页码 function OutputHtml(){ var obj = eval(siteList); //获取JSON var sites = obj.sites; //获取分页总数 var Pages = Math.floor((sites.length - 1) / PageSize) + 1; if(Page < 1)Page = 1; //如果当前页码小于1 if(Page > Pages)Page = Pages; //如果当前页码大于总数 var Temp = ""; var BeginNO = (Page - 1) * PageSize + 1; //开始编号 var EndNO = Page * PageSize; //结束编号 if(EndNO > sites.length) EndNO = sites.length; if(EndNO == 0) BeginNO = 0; if(!(Page <= Pages)) Page = Pages; $("total").innerHTML = "Total:<strong class='f90'>" + sites.length + "</strong> Show:<strong class='f90'>" + BeginNO + "-" + EndNO + "</strong>"; //分页 if(Page > 1 && Page !== 1){Temp ="<a href='javascript:void(0)' onclick='GotoPage(1)'><<Index</a> <a href='javascript:void(0)' onclick='GotoPage(" + (Page - 1) + ")'>Previous</a> "}else{Temp = "<<Index Previous "}; //完美的翻页列表 var PageFrontSum = 3; //当页前显示个数 var PageBackSum = 3; //当页后显示个数 var PageFront = PageFrontSum - (Page - 1); var PageBack = PageBackSum - (Pages - Page); if(PageFront > 0 && PageBack < 0)PageBackSum += PageFront; //前少后多,前剩余空位给后 if(PageBack > 0 && PageFront < 0)PageFrontSum += PageBack; //后少前多,后剩余空位给前 var PageFrontBegin = Page - PageFrontSum; if(PageFrontBegin < 1)PageFrontBegin = 1; var PageFrontEnd = Page + PageBackSum; if(PageFrontEnd > Pages)PageFrontEnd = Pages; if(PageFrontBegin != 1) Temp += '<a href="javascript:void(0)" onclick="GotoPage(' + (Page - 10) + ')" title="前10页">..</a>'; for(var i = PageFrontBegin;i < Page;i ++){ Temp += " <a href='javascript:void(0)' onclick='GotoPage(" + i + ")'>" + i + "</a>"; } Temp += " <strong class='f90'>" + Page + "</strong>"; for(var i = Page + 1;i <= PageFrontEnd;i ++){ Temp += " <a href='javascript:void(0)' onclick='GotoPage(" + i + ")'>" + i + "</a>"; } if(PageFrontEnd != Pages) Temp += " <a href='javascript:void(0)' onclick='GotoPage(" + (Page + 10) + ")' title='后10页'>..</a>"; if(Page != Pages){Temp += " <a href='javascript:void(0)' onclick='GotoPage(" + (Page + 1) + ");'>Next</a> <a href='javascript:void(0)' onclick='GotoPage(" + Pages + ")'>Last>></a>"}else{Temp += " Next Last>>"} $("pagelist").innerHTML = Temp; //输出数据 if(EndNO == 0){ //如果为空 $("content").innerHTML += "<h1>No Images</h1>"; return; } var html = ""; for(var i = BeginNO - 1;i < EndNO;i ++){ html += "<div class='entry'>"; html += "<a href='" +sites[i].Url+ "' rel='bookmark' title=" +sites[i].Name+ ">"; html += "<img src='" +sites[i].Pic+ "' width='200' height='170' />"; html += "<p class='url'><span>" +sites[i].Name+ "</span></p></a>"; html += "</div>"; } $("content").innerHTML = html; clickShow(); //调用鼠标点击事件 //键盘左右键翻页 document.onkeydown=function(e){ var theEvent = window.event || e; var code = theEvent.keyCode || theEvent.which; if(code==37){ if(Page > 1 && Page !== 1){ GotoPage(Page - 1); } } if(code==39){ if(Page != Pages){ GotoPage(Page + 1); } } } //鼠标滚轮翻页 function handle(delta){ if (delta > 0){ if(Page > 1 && Page !== 1){ GotoPage(Page - 1); } } else{ if(Page != Pages){ GotoPage(Page + 1); } } } function wheel(event){ var delta = 0; if (!event) /* For IE. */ event = window.event; if (event.wheelDelta) { /* IE或者Opera. */ delta = event.wheelDelta / 120; /** 在Opera9中,事件处理不同于IE */ if (window.opera) delta = -delta; } else if (event.detail) { /** 兼容Mozilla. */ /** In Mozilla, sign of delta is different than in IE. * Also, delta is multiple of 3. */ delta = -event.detail / 3; } /** 如果 增量不等于0则触发 * 主要功能为测试滚轮向上滚或者是向下 */ if (delta) handle(delta); } /** 初始化 */ if (window.addEventListener) /** Mozilla的基于DOM的滚轮事件 **/ window.addEventListener("DOMMouseScroll", wheel, false); /** IE/Opera. */ window.onmousewheel = document.onmousewheel = wheel; } //获取链接地址和网站名称 function showLink(source){ var siteUrl = $("siteurl"); var siteName = $("sitename"); var description = $("description"); if(source.getAttribute("rel") == "bookmark"){ var url = source.getAttribute("href"); var title = source.getAttribute("title"); siteUrl.innerHTML = "<a href='" + url + "' target='_blank'>"+ url +"</a>"; siteName.innerHTML = title; } } //鼠标点击事件 function clickShow(){ var links = $("content").getElementsByTagName("a"); for(var i=0; i<links.length; i++){ var url = links[i].getAttribute("href"); var title = links[i].getAttribute("title"); links[i].onclick = function(){ showLink(this); return false; } } } //--> </script>
Javascript实例技巧精选(6)—滚动鼠标中键读取Json数据分页显示网页内容的更多相关文章
- JavaScript实例技巧精选(10)—计算器实例2
>>点击这里下载完整html源码<< 这是截图: 利用Javascript和html实现的另一个计算器实例,核心代码如下: <script language=" ...
- JavaScript实例技巧精选(9)—计算器实例1
>>点击这里下载完整html源码<< 这是截图: 利用Javascript和html实现的一个计算器实例,核心代码如下: <script language="J ...
- Javascript实例技巧精选(7)—设置和获取文本框与文本域的光标位置(兼容IE和Chrome,Firefox)
>>点击这里下载完整html源码<< 截图如下: 本实例描述了如何用Javascript来控制和获取文本框/文本域的鼠标光标位置,以下代码兼容IE和Chrome,Firefox ...
- JavaScript实例技巧精选(14)—动态变化背景颜色
>>点击这里下载完整html源码<< 这是截图: 网页背景颜色随时间变化,核心代码如下: <SCRIPT LANGUAGE="JavaScript"& ...
- JavaScript实例技巧精选(13)—计算在网页上的停留时间
>>点击这里下载完整html源码<< 这是截图: 核心代码如下: <SCRIPT LANGUAGE="JAVASCRIPT"> <!-- ...
- JavaScript实例技巧精选(12)—计算星座与属相
>>点击这里下载完整html源码<< 这是截图: 核心代码如下: <SCRIPT LANGUAGE="JavaScript"> <!-- ...
- Javascript实例技巧精选(8)—计算当月剩余天数
>>点击这里下载完整html源码<< 截图如下: 利用Javascript在网页上计算当前月份的剩余天数,相应代码如下: <script language="J ...
- JavaScript实例技巧精选(11)—计算器实例3
>>点击这里下载完整html源码<< 界面如下 将以下代码插入<body></body>中 <FORM NAME="Calc" ...
- php分页例子实现读取mysql数据分页显示
以下代码是PHP分页案例,测试通过,主要是PHP+mysql实现分页,代码来处百度空间,有兴趣看的话可以了解一下PHP是如何分页的? <?php $link = mysql_connect(&q ...
随机推荐
- Object-c中间initialize 与 辛格尔顿
简单说下initialize任务.在初始化过程中同样的类将被调用一次. 直接在代码解释initialize任务. 创建一个InitTest类 InitTest.m #import "Init ...
- 深入Java虚拟机——类型装载、连接(转)
来自http://hi.baidu.com/holder/item/c38abf02de14c7d31ff046e0 Java虚拟机通过装载.连接和初始化一个Java类型,使该类型可以被正在运行的Ja ...
- Ubuntu设置交换空间參考教程[图]
假设你当前使用的Ubuntu系统,不管是虚拟机还是实体机,没有交换分区或交换分区空间不足,能够为其设置交换空间. 本文提供的是一种设置交换空间的简单方法. 如若转载,请注明博文地址及原作者(Risin ...
- hdu 4445 Crazy Tank (暴力枚举)
Crazy Tank Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total ...
- Codeforces 374D Inna and Sequence 二分法+树状数组
主题链接:点击打开链接 特定n一个操作,m长序列a 下列n的数量 if(co>=0)向字符串加入一个co (開始是空字符串) else 删除字符串中有a的下标的字符 直接在序列上搞.简单模拟 # ...
- Oracle 使用
Oracle 日志文件 摘要: 本篇博文呢主要是介绍 Oracle 日志文件的管理, 对 Oracle 日志文件呢,有两个比较关键的名词, 即日志文件组 LogFileGroup 和日志文件 LogF ...
- Unity该插件NGUI学习(1)—— 环境结构
Unity官方网站http://unity3d.com/unity/download下载最新版本4.5.4 发现在神圣的论坛裂纹(Windows)版本号http://game.ceeger.com/f ...
- 微信公众平台企业号验证接口、回调 PHP版
微信公众平台企业号验证接口.回调 PHP版,本人为了解决这个企业号的验证和发送消息的问题,整整研究了几天时间,由于微信企业号刚推出来,网上资料太少了!后来在一些朋友的帮助下和本人重复调试完好下,最终整 ...
- 在LINQ中实现多条件联合主键LEFT JOIN
我昨天遇到一个LINQ下使用多条件比对产生LEFT JOIN的问题,经过深入研究,终于解决了,也让我学到了新的东西,特地拿来分享. 实例:有一张库存异常变更视图KCYD,仓库ID[Ckid]和物品ID ...
- 【github课程】创建github仓库和库创建一个版本号,并添加到存储库文件的版本号
首先,需要登录github注册一个帐号:https://github.com/ 注册帐号登录后,.在右上角,"新仓库": 然后会出现例如以下的界面: 仅仅须要输入仓库的名称,描写叙 ...