js版iphone通讯录分组列表效果

<!DOCTYPE html>
<html>
<head>
  <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  <title>groupList demo</title>

  <script type=‘text/javascript‘ src=‘http://cdn.staticfile.org/jquery/1.11.1/jquery.js‘></script>

  <style type=‘text/css‘>
    dl dt{background:#ccc;padding:5px;}
    dl li{padding:5px;list-style: none;}
    p{height:100px;}
    html,body{margin:0;padding:0;}
  </style>

<script type=‘text/javascript‘>//<![CDATA[
$(function(){
    //$(‘dl‘).groupList();      //相对窗口顶部
    $(‘dl‘).groupList(true);
});
$.fn.groupList = function(selfScroll){
     var list = this;
    var listTopOffset = list.offset().top;
    var titleHeight = $(list).find(‘dt:first‘).height();

    var currentContext = selfScroll ? list : window;
    if(selfScroll){
        list.css({
            ‘height‘:$(window).height() - listTopOffset,
            ‘overflow‘:‘auto‘
        });
    }
    $(currentContext).on(‘scroll‘,function(){
        if($(currentContext).scrollTop()-(selfScroll ? 0 : listTopOffset) < titleHeight){
            clearFixed();
        }else{
            var lis = list.find(‘li‘);
            for(var i = 0, len = lis.length ; i < len ; i++){
                if(isOnSight(lis[i])){
                    clearFixed().filter(‘.clone‘).remove();
                    lis.eq(i).parent().parent().prev().clone(true).addClass(‘clone‘).css({
                        ‘top‘: selfScroll ? listTopOffset : 0,
                        ‘position‘:‘fixed‘,
                        ‘width‘:‘100%‘
                    }).appendTo(list);
                    break;
                }
            }
        }
    });
    var isOnSight = function(item){
        return selfScroll ? listTopOffset < $(item).offset().top + $(item).outerHeight() : $(currentContext).scrollTop() <  $(item).offset().top + $(item).outerHeight();
    }
    var clearFixed = function(){
        return $(list).find(‘dt‘).css({
            ‘position‘:‘‘
        });
    }
}
//]]>  

</script>

</head>
<body>
    <p>ale</p>
  <dl>
    <dt>A</dt>
    <dd>
        <ul>
            <li>abandon</li>
            <li>abnormal</li>
            <li>abstinence</li>
            <li>abort</li>
            <li>abortive</li>
            <li>abeyance</li>
            <li>abscond</li>
            <li>absolve</li>
            <li>abrogate</li>
            <li>about</li>
            <li>abandon</li>
            <li>abnormal</li>
            <li>abstinence</li>
            <li>abort</li>
            <li>abortive</li>
            <li>abeyance</li>
            <li>abscond</li>
            <li>absolve</li>
            <li>abrogate</li>
            <li id=‘check‘>about</li>
            <li>abandon</li>
            <li>abnormal</li>
            <li>abstinence</li>
            <li>abort</li>
            <li>abortive</li>
            <li>abeyance</li>
            <li>abscond</li>
            <li>absolve</li>
            <li>abrogate</li>
        </ul>
    </dd>
    <dt>B</dt>
    <dd>
        <ul>
            <li>banana</li>
            <li>blue</li>
            <li>background</li>
            <li>backward</li>
            <li>bacon</li>
            <li>bacteria</li>
            <li>baggage</li>
            <li>balance</li>
            <li>banana</li>
            <li>blue</li>
            <li>background</li>
            <li>backward</li>
            <li>bacon</li>
            <li>bacteria</li>
            <li>baggage</li>
            <li>balance</li>
            <li>banana</li>
            <li>blue</li>
            <li>background</li>
            <li>backward</li>
            <li>bacon</li>
            <li>bacteria</li>
            <li>baggage</li>
            <li>balance</li>
        </ul>
    </dd>
    <dt>C</dt>
    <dd>
        <ul>
            <li>banana</li>
            <li>blue</li>
            <li>background</li>
            <li>backward</li>
            <li>bacon</li>
            <li>bacteria</li>
            <li>baggage</li>
            <li>balance</li>
            <li>banana</li>
            <li>blue</li>
            <li>background</li>
            <li>backward</li>
            <li>bacon</li>
            <li>bacteria</li>
            <li>baggage</li>
            <li>balance</li>
            <li>banana</li>
            <li>blue</li>
            <li>background</li>
            <li>backward</li>
            <li>bacon</li>
            <li>bacteria</li>
            <li>baggage</li>
            <li>balance</li>
            <li>blue</li>
            <li>background</li>
            <li>backward</li>
            <li>bacon</li>
            <li>bacteria</li>
            <li>baggage</li>
            <li>balance</li>
        </ul>
    </dd>
</dl>

</body>

</html>
时间: 2025-01-04 06:35:37

js版iphone通讯录分组列表效果的相关文章

【Android 仿微信通讯录 导航分组列表-上】使用ItemDecoration为RecyclerView打造带悬停头部的分组列表

[Android 仿微信通讯录 导航分组列表-上]使用ItemDecoration为RecyclerView打造带悬停头部的分组列表 一 概述 本文是Android导航分组列表系列上,因时间和篇幅原因分上下,最终上下合璧,完整版效果如下: 上部残卷效果如下:两个ItemDecoration,一个实现悬停头部分组列表功能,一个实现分割线(官方demo) 网上关于实现带悬停分组头部的列表的方法有很多,像我看过有主席的自定义ExpandListView实现的,也看过有人用一个额外的父布局里面套 Rec

WPF—QQ界面(五):QQ好友分组列表的效果实现 及 截稿

效果分析: 1.鼠标左键单击 分组 的组名,能够弹出一个下拉列表,并且左边的向右箭头转成向下: 2.弹出的下拉列表中包含好友的头像,好友的昵称,还有好友的个性签名或最新动态: 3.当鼠标移到好友这一行,能够将一行的背景色置蓝或置橙: 4.当鼠标移到好友的头像上,能够悬浮显示好友的个人信息. 除了这些基本的效果,还有很多效果蕴含其中....感觉分组列表的效果最难做. 我大致做出了那样的效果,很不美观.没达到一样的效果,就不分析思路了,以免误人子弟. 用的是ScrollViewer 前台: <Scr

js简单 图片版时钟,带翻转效果

js简单 图片版时钟,带翻转效果 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>时钟</title> <style type="text/css"> ul,li{ list-style: none; margin: 0; padding: 0; } ul{ position: absolute; left: 2

[WP8.1UI控件编程]SemanticZoom控件实现分组列表

11.1.5 SemanticZoom实现分组列表 SemanticZoom控件可以让用户实现一种更加高级的列表,这种列表可以对列表的项目进行分组,同时这个SemanticZoom控件会提供两个具有相同内容的不同视图,其中有一个是主视图,另外一个视图可以让用户进行快速导航的分组视图.例如,Windows Phone里面的人脉通讯录列表就是使用SemanticZoom控件实现的. SemanticZoom控件支持对GridView和ListView控件的视图效果进行缩放,在SemanticZoom

类似通讯录分组的Android PinnedSectionListView,且分组标签悬停滑入滑出

 <类似通讯录分组的Android PinnedSectionListView,且分组标签悬停滑入滑出> 常用的联系人.通讯录,会按照联系人的姓氏从A,B,C,,,X,Y,Z,这样归类排列下去,方便用户快速查找和定位.PinnedSectionListView是一个第三方的开源框架,在github上的链接地址是:https://github.com/beworker/pinned-section-listview .Android PinnedSectionListView不仅是一个实现上

原生js版分页插件

之前我在自己的博客里发表了一篇用angularJs自定义指令实现的分页插件,今天简单改造了一下,改成了原生JavaScript版本的分页插件,特此记录下来.如有不足之处,欢迎指出. 本插件可以实现的功能: 1. 可初始化每页条数,以及重新选择每页条数 2.自定义首末页.上下页按钮的显示内容(是:<<.  >>.  < .  >    还是:首页.末页.上一页.下一页) 3.设置当前页在一定范围时,是否显示省略号按钮 4.自定义当前页按钮与省略号按钮之间显示的数字按钮的个

某网站品牌的列表效果(引自锋利的jQuery)

<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta name="generator" content="editplus" /> <title>某网站品牌的列表效果</title> <script src="jquery-1.7.1.min.js" type

利用FluidMoveBehavior制作出手机通讯录平滑的效果

最近学习Blend,原来Blend制作动画等效果非常棒.下面演示一下FluidMoveBehavior应用,利用Blend中行为中的FluidMoveBehavior制作出手机通讯录平滑的效果 1.在画布上添加一个ListBox,添加N多个<TextBlock>,如图 2.在ListBox上右键按图指示操作创建副本 3.在模板中选择ItemsPresenter, 4.然后从行为面板中选择FluidMoveBehavior拖放到画板上的ItemsPresenter对象上 5.返回到ListBox

JS版汉字与拼音互转终极方案,附简单的JS拼音输入法

原文:http://www.cnblogs.com/liuxianan/p/pinyinjs.html 前言 网上关于JS实现汉字和拼音互转的文章很多,但是比较杂乱,都是互相抄来抄去,而且有的不支持多音字,有的不支持声调,有的字典文件太大,还比如有时候我仅仅是需要获取汉字拼音首字母却要引入200kb的字典文件,无法根据实际需要满足需求. 综上,我精心整理并修改了网上几种常见的字典文件并简单封装了一下可以直接拿来用的工具库. 这篇文章差不多一个月前就写好了大部分了,但是就差拼音输入法这一块一直没时