>>点击这里下载完整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>&nbsp;&nbsp;Show:<strong class='f90'>" + BeginNO + "-" + EndNO + "</strong>"; 

     //分页
     if(Page > 1 && Page !== 1){Temp ="<a href='javascript:void(0)' onclick='GotoPage(1)'>&lt;&lt;Index</a> <a href='javascript:void(0)' onclick='GotoPage(" + (Page - 1) + ")'>Previous</a>&nbsp;"}else{Temp = "&lt;&lt;Index Previous&nbsp;"};

     //完美的翻页列表
     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 += "&nbsp;&nbsp;<a href='javascript:void(0)' onclick='GotoPage(" + (Page + 1) + ");'>Next</a> <a href='javascript:void(0)' onclick='GotoPage(" + Pages + ")'>Last&gt;&gt;</a>"}else{Temp += "&nbsp;&nbsp;Next Last&gt;&gt;"}

     $("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数据分页显示网页内容的更多相关文章

  1. JavaScript实例技巧精选(10)—计算器实例2

    >>点击这里下载完整html源码<< 这是截图: 利用Javascript和html实现的另一个计算器实例,核心代码如下: <script language=" ...

  2. JavaScript实例技巧精选(9)—计算器实例1

    >>点击这里下载完整html源码<< 这是截图: 利用Javascript和html实现的一个计算器实例,核心代码如下: <script language="J ...

  3. Javascript实例技巧精选(7)—设置和获取文本框与文本域的光标位置(兼容IE和Chrome,Firefox)

    >>点击这里下载完整html源码<< 截图如下: 本实例描述了如何用Javascript来控制和获取文本框/文本域的鼠标光标位置,以下代码兼容IE和Chrome,Firefox ...

  4. JavaScript实例技巧精选(14)—动态变化背景颜色

    >>点击这里下载完整html源码<< 这是截图: 网页背景颜色随时间变化,核心代码如下: <SCRIPT LANGUAGE="JavaScript"& ...

  5. JavaScript实例技巧精选(13)—计算在网页上的停留时间

    >>点击这里下载完整html源码<< 这是截图: 核心代码如下: <SCRIPT LANGUAGE="JAVASCRIPT"> <!-- ...

  6. JavaScript实例技巧精选(12)—计算星座与属相

    >>点击这里下载完整html源码<< 这是截图: 核心代码如下: <SCRIPT LANGUAGE="JavaScript"> <!-- ...

  7. Javascript实例技巧精选(8)—计算当月剩余天数

    >>点击这里下载完整html源码<< 截图如下: 利用Javascript在网页上计算当前月份的剩余天数,相应代码如下: <script language="J ...

  8. JavaScript实例技巧精选(11)—计算器实例3

    >>点击这里下载完整html源码<< 界面如下 将以下代码插入<body></body>中 <FORM NAME="Calc" ...

  9. php分页例子实现读取mysql数据分页显示

    以下代码是PHP分页案例,测试通过,主要是PHP+mysql实现分页,代码来处百度空间,有兴趣看的话可以了解一下PHP是如何分页的? <?php $link = mysql_connect(&q ...

随机推荐

  1. ASP.NET农历时间显示(两)

    在拍摄的月球时前(http://blog.csdn.net/yysyangyangyangshan/article/details/6802950),只是没有进行封装使用起来须要手动改动. 本次进行简 ...

  2. CentOS 7 / RHEL 7 上安装 LAMP + phpMyAdmin

    原文 CentOS 7 / RHEL 7 上安装 LAMP + phpMyAdmin 发表于 2014-11-02 作者 Haoxian Zeng 更新于 2014-12-12   之前根据在 Lin ...

  3. Android开发之自己主动登录功能的实现

    在我们平时使用的手机应用都能够实现仅仅须要登陆一次账号后,第二次进入应用直接跳转到效果界面的效果,还有QQ的登陆框是怎样记忆我们的隐身登陆,保存账号选项的呢,这些都是通过使用SharedPrefere ...

  4. KMP算法之从next[]到nextVal[] (转)

    前些日子写了一篇KMP算法的博文,浅谈数据结构之KMP(串中的模式匹配算法),在这片文章中,谈到了一个模式串K值的记录数组 next[],详细可看那篇文章,其实,前面定义的next[]数组是有一定缺陷 ...

  5. win8 64位使用plsql developer连接oracle数据库问题

    问题:win8的64使用位系统plsql developer本地连接oracle莫名其妙的问题发生在数据库时.错误消息框,甚至可能是空的. 原因:它表示,互联网,的原因,预计在64位系统安装在64位O ...

  6. C++语言债券系列之十一——友元函数和拷贝构造函数

    1.好友功能 (1)友元函数类的普通功能外定义. 定义友元函数和相同的正常功能.在类必须声明的正常功能为好友. (2)友元函数不是一个成员函数. 你不能反对打电话.但直接调用:友元函数访问类的公共.p ...

  7. nova-compute[5410]: OSError: [Errno 13] Permission denied: &#39;图像路径&#39;

    前几天有 openstack-Nova 创建虚拟机拨弄了一下,结果重新启动后的今天 nova boot 创建虚拟机实例有错误,创建虚拟机出状况  他们是 error 视图 openstack 服务状态 ...

  8. 【BZOJ3450】【Tyvj1952】Easy 可能DP

    联系: #include <stdio.h> int main() { puts("转载请注明出处[辗转山河弋流歌 by 空灰冰魂]谢谢"); puts("网 ...

  9. Oracle缓存机制

  10. Oracle\MS SQL Server Update多表关联更新

    原文:Oracle\MS SQL Server Update多表关联更新 一条Update更新语句是不能更新多张表的,除非使用触发器隐含更新.而表的更新操作中,在很多情况下需要在表达式中引用要更新的表 ...