用jQuery建一个按字母顺序排列的页面索引

大多数Web开发人员很可能很熟悉使用锚链接跳转到的页面部分的解决方案。你可以设置一个特定的name属性的锚链接,并使用href值作为哈希符 号来跳过页面。这种效果当需要列出很长的数据集时,是非常实用的,比方说一个FAQ页面,一问一答的形式经常采用这样的效果,然而页面跳转对于游客来说有 时候并不是好友好,因为他一点击直接跳转,陌生的游客对此可能感到困惑,不知道当前的数据跑那里去了。

在本教程中,我将探讨一个解决方案,创建一个简单的页面索引,并采用锚点链接在页面上。"跳转"动作进行动画处理,向下滚动到达这个链接的容器。(完美兼容IE6,7,8)

在线演示

布局

首先是基本的index.html页面,我加入了一个典型的HTML5文档类型。styles.css为我们的页面样式表,indexscroller.js自定义的jQuery代码。

使用jquery代码别忘记引入谷歌jquery库,旧的浏览器不支持HTML5的html5shiv trunk 库的副本。在主体部分我使用的是定制的谷歌Webfont字体,以及与一些艺术CSS3效果。

<!doctype html>

<html lang=“en-US”>

<head>

<meta http-equiv=“Content-Type” content=“text/html;charset=utf-8”>

<title>jQuery Alphabetical Scrolling Links Index</title>

<meta name=“author” content=“Jake Rocheleau”>

<link rel=“shortcut icon” href=“http://spyrestudios.com/favicon.ico”>

<link rel=“icon” href=“http://spyrestudios.com/favicon.ico”>

<link rel=“stylesheet” type=“text/css” href=“styles.css”>

<link rel=“stylesheet” type=“text/css” href=“http://fonts.googleapis.com/css?family=Milonga”>

<script type=“text/javascript” src=“https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js”></script>

<script type=“text/javascript” charset=“utf-8” src=“indexscroller.js”></script>

<!--[if lt IE 9]>

<script type=“text/javascript” src=“http://html5shiv.googlecode.com/svn/trunk/html5.js”></script>

<![endif]-->

</head>

主体内容

锚链接的href值在页面上按字母顺序列出的目标索引。从indexa到#indexg都针对其他页面上锚链接上面的匹配的name属性的值。

<div id=“w”>

<H1>动态jQuery的滚动链接索引</ h1>

<div id=“container”>

<nav id=“links”>

<ul class=“clearfix”>

<li class=“label”>快速链接:</ P>

<LI> <A href=“#indexa”> A </ A> </ P>

<LI> <A href=“#indexb”> B </ A> </ P>

<LI> <A href=“#indexc”> C </ A> </ P>

<LI> <A href=“#indexd”> D </ A> </ P>

<LI> <A href=“#indexe”> E </ A> </ P>

<LI> <A href=“#indexf”> F </ A> </ P>

<LI> <A href=“#indexg”> G </ A> </ P>

</ ul>

</div>

下面是name为 indexb的锚链接的具体滚动内容:当你点击<LI> <A href="#indexb"> B </ A> </ P> 他就会跳转到这个地方

<div class=“show”>

<h2>Arrested Development <span class=“meta”><a href=“http://en.wikipedia.org/wiki/Arrested_Development_(TV_series)” target=“_blank”>Wikipedia</a> - <a href=“http://www.imdb.com/title/tt0367279/” target=“_blank”>IMDB</a></span></h2>

<p><img src=“images/arrested-development.png” alt=“Arrested Development TV Show” width=“570” height=“280”></p>

</div>

<a name=“indexb”></a>

<div class=“show”>

<h2>The Big Bang Theory <span class=“meta”><a href=“http://en.wikipedia.org/wiki/The_Big_Bang_Theory” target=“_blank”>Wikipedia</a> - <a href=“http://www.imdb.com/title/tt0898266/” target=“_blank”>IMDB</a></span></h2>

<p><img src=“images/big-bang-theory.png” alt=“The Big Bang Theory TV Show” width=“570” height=“280”></p>

</div>

CSS页面样式

一些默认的样式表的内容。除了典型的CSS重置 我用的是CSS3阴影

/* 页面主要样式布局 */

#w { width: 620px; margin: 0 auto; padding-top: 55px; }

#container {

padding: 14px 20px;

background: #fff;

-webkit-box-shadow: 2px 2px 1px rgba(0,0,0,0.35);

-moz-box-shadow: 2px 2px 1px rgba(0,0,0,0.35);

box-shadow: 2px 2px 1px rgba(0,0,0,0.35);

-webkit-border-radius: 5px;

-moz-border-radius: 5px;

border-radius: 5px;

}

在每个锚链接停止之前,在他的顶部设置一个padding-top:8px的大小。这样,我们的滚动效果不停止在每个标题的顶部,有一些额外的空白

/* 具体的每个跳转到锚链接的样式DIV */

#shows { display: block; }

.show { display: block; padding-top: 8px; margin-bottom: 23px; }

.meta { font-family: Arial, Verdana, sans-serif; color: #222; font-size: 0.8em; font-weight: bold; float: right; }

/* clearfix */

.clearfix:after { content: “。”; display: block; clear: both; visibility: hidden; line-height: 0; height: 0; }

.clearfix { display: inline-block; }

html[xmlns] .clearfix { display: block; }

* html .clearfix { height: 1%; }

此外,元信息包含在每个头块的HTML标记,以节省空间。所以,我们是浮动的内容,并使用CSS clearfix的布局结构。

jQuery的scrollTop

jQuery有命名.scrollTop()方法,使用这种技术,可以拉动当前的像素值从页面顶部的任何其他选择的元素。我们从列表向下滚动,准确的锚链接。

$(document).ready(function(){

$(‘#links > ul > li > a’).on(‘click’, function(e){

e.preventDefault();

var anchorid = $(this.hash);

if(anchorid.length == 0) anchorid = $(‘a[name=“’ + this.hash.substr(1) + ‘”]’);

else anchorid = $(‘html’);

$(‘html, body’).animate({ scrollTop: anchorid.offset().top }, 450);

});

});

这里的indexscroller.js。它似乎没有太多代码,但是,让我们看看DOM加载完成后,会发生什么情况。

#links内部链接锚被点击之后,我们立即调用e.preventDefault() 。这将停止从附加到URL的页面跳了下来瞬间的哈希值。然 后使用一个新的jquery.hash属性,我们可以确切的获取href值后的哈希符号。因此,举例来说,我们的第一个索引链接会返回值 “indexa”。

使用这种新的属性,我们可以针对相应的锚链接页面上的name属性相匹配。我们设置这个新anchorid的变量,使用anchorid.offset()可以访问距离顶部的绝对像素。最后加入所有这些代码到一个简单的jQuery .animate()方法。

文章来源:梦想天空

时间: 2025-01-21 12:53:34

用jQuery建一个按字母顺序排列的页面索引的相关文章

jQuery建立一个按字母顺序排列的友好页面索引(兼容IE6/7/8)_jquery

大多数Web开发人员很可能很熟悉使用锚链接跳转到的页面部分的解决方案.你可以设置一个特定的name属性的锚链接,并使用href值作为哈希符号来跳过页面.这种效果当需要列出很长的数据集时,是非常实用的,比方说一个FAQ页面,一问一答的形式经常采用这样的效果,然而页面跳转对于游客来说有时候并不是好友好,因为他一点击直接跳转,陌生的游客对此可能感到困惑,不知道当前的数据跑那里去了, 在本教程中,我将探讨一个解决方案,创建一个简单的页面索引,并采用锚点链接在页面上."跳转"动作进行动画处理,向

jQuery插件开发精品教程,让你的jQuery提升一个台阶

原文:jQuery插件开发精品教程,让你的jQuery提升一个台阶 要说jQuery 最成功的地方,我认为是它的可扩展性吸引了众多开发者为其开发插件,从而建立起了一个生态系统.这好比大公司们争相做平台一样,得平台者得天下.苹果,微软,谷歌等巨头,都有各自的平台及生态圈. 学会使用jQuery并不难,因为它简单易学,并且相信你接触jQuery后肯定也使用或熟悉了不少其插件.如果要将能力上升一个台阶,编写一个属于自己的插件是个不错的选择. 本教程可能不是最精品的,但一定是最细致的. jQuery插件

jQuery判断一个元素是否可见的方法

  本文实例讲述了jQuery判断一个元素是否可见的方法.分享给大家供大家参考.具体如下: jQuery 可以很容易地确定一个元素是可见的或是隐藏的,然后分别做不同的处理.如:我想根据某 div 是否可见,在按钮上显示不同的文字和图标.可以这样实现: 方法一: ? 1 2 3 4 5 6 7 8 9 10 11 $('#para_div button').click(function() { if($(this).next().is(":visible")) { //$(this).h

给Win7建一个“常用程序”菜单

很多人都喜欢将常用程序拖拽到桌面上,美其名曰"桌面快捷方式".不过随着使用时间的增加,这个快捷方式似乎也不怎么快捷.没有分类.无法分组,最关键的是当你的桌面布满窗口的时候,要想打开桌面上一个快捷方式,真比登天还难.其实在万能的Win7中,这个问题并没有大家想像中那么难以搞定.今天就教给大家一个办法,给你的Win7建一个"常用程序"菜单. 图1 用菜单访问"常用程序" 电脑常识 1.在电脑的某个位置建立一个文件夹(比如"C:常用程序&qu

Jquery创建一个层当鼠标移动到层上面不消失效果

 使用Jquery创建一个层,实现当鼠标移动到层上面不消失,示例代码如下,感兴趣的朋友可以参考下 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  <html xmlns="http://www.w3.org/1999/xhtml&q

jQuery删除一个元素后淡出效果展示删除过程的方法

 这篇文章主要介绍了jQuery删除一个元素后淡出效果展示删除过程的方法,实例分析了jQuery中fadeTo及slideUp等方法的使用技巧,非常具有实用价值,需要的朋友可以参考下     本文实例讲述了jQuery删除一个元素后淡出效果展示删除过程的方法.分享给大家供大家参考.具体分析如下: 当我们删除一个元素时希望能看到删除的过程,这个效果通过对元素进行淡出展示动态化删除过程. ? 1 2 3 4 5 6 7 $("#myButton").click(function() { $

有闲-建一个这样的展示网站(主要用作app下载),大概需要多少money ??

问题描述 建一个这样的展示网站(主要用作app下载),大概需要多少money ?? [有闲]网站地址 http://www.youxianapp.com/自学的话,多久能自己做出来求教大神!!

教你三分钟建一个网站,PC端,手机端,微网站

如何建一个三站合一的网站?三站合一的网站一般指手机站.微站和手机站,大多数企业用户的做法是,三大站点分别制作,建站程序不同,管理入口不同,更新内容的时候,一篇文章要分三次发布,更要命的是,建一个手机网站或微网站哪一个不要上万块.免费建网站:http://www. iisp.com/special/design_promotion.php?s=guili147 本文提到建三站合一的方法与上文说到的不一样,我们使用的是建站宝盒.为什么要使用建站宝盒做三站合一的企业网站呢? 三点优势 一套程序,建三个

建表-当我要查询的数据同时在两个表中时,是否应该再建一个新的表?

问题描述 当我要查询的数据同时在两个表中时,是否应该再建一个新的表? 我有一个收入表(表1),一个支出表(表2),然后这样的话就可以对它们进行操作,但是我现在想要查询一个月之内的收支记录,按时间先后排序,我该怎么做呢?我要再建一个表把表1,表2的数据插进去么?还是有别的办法? 解决方案 使用联表连接两个表将两个表的数据同时显示出来或者将两个表的数据查出来后放入到视图当中 解决方案二: 当我每查询一次(当表1,表2更新时)的时候都要先把数据放到视图当中,是不是应该用触发器啊? 解决方案三: 你可以