• jQuery插件综合应用(二)文字为主的页面


    一、介绍

    文字内容是每个网站都有的内容,网站在展示文字内容时,总是比图片、视频等富媒体内容要难一些,因为富媒体容易被用户接受。尤其是越多的文字内容越难以被用户通篇的阅读,跳跃式阅读往往是阅读的主要方式。 那么做为站长的我们,该如何使用户轻松阅读我们写的文章,也是非常重要的事情,因为我们发布一篇文章,目的是为了供网友阅读,产生共鸣。如果发布一篇文章没人看,或者看完了也不知道文章在说些什么,那发布文章也没有意义。

    为了使用户轻松阅读文章,改进的方面主要有以下3点。1)文章的选题,做为开发人员,可以选择 工作中遇到或解决的问题,或学习的内容做为文章的主题。2)写作技巧,怎样写文章,写文章注意的事项,从小在语文课中学习的写作技巧。3)文章的布局(排版),本文的主要内容。书面文章可能千篇一律,文字基本也就几种格式如宋体、仿宋体等,行距固定,字体大小也基本固定,颜色也基本以黑色为主(彩色图书除外)。

    而在博客中发布文章,我们可以合理的毫无限制的使用文字的字体、大小、颜色等,也可以在文章中添加图片、视频等信息。我们通过使用html+css+js可以提供更好地阅读体验。

    而本文主要讲解通过html+css提供文章页面布局,jquery插件提供丰富的阅读体验。

    在说明实现的功能之前,先以图书的形式进行说明。图书是相关文章的汇总,对我们阅读者来说,最主要的内容有:1)目录,可能是翻阅一本书时最先浏览的地方。方便我们知道图书的内容如何组织,也方便我们跳跃式的阅读。2)内容,涉及到具体的知识和操作。3)引用和术语解释,尤其是翻译的图书,在图书的最后或每章的后面都有引用或术语说明,以附录的形式表示。当然图书还有前言、作者介绍等说明,但重要性相对低一些。所以在本文中只实现目录、内容和引用术语说明3个功能。

    二、使用的插件

    目录:
    我们在发布文章时,如果能够合理的使用h2标记表示”章“、h3标记表示”节“。那么我们就可以用js遍历body,提取出全部的h2,h3形成文章的“章-节”。在本文只是测试jquery插件的综合应用,所以目录是人工输入的。

    然后我们使用scrolltofixed,scrollTo两个插件实现目录固定、内容滚动,向用户提供跳跃式阅读的功能。

    内容:
    对设置的关键词以链接的方式显示,如网站设置的分类,点击关键词链接,跳转到相应的分类。以遍历的方式寻找文章中的关键词,加链接(不遍历代码中的,如type=’text/javascript’,文章中出现的’javascript’关键词加链接,代码中的不予添加)。

    引用和术语解释:
    使用cluetip插件直接在文章中以提示框的形式对术语进行解释。

    插件的使用说明可以看下面的文章

    网站开发常用jQuery插件总结(13)定位插件scrollto
    网站开发常用jQuery插件总结(12)固定元素插件scrolltofixed
    网站开发常用jQuery插件总结(六)关键词说明插件cluetip

    三、插件实现的功能

    scrolltofixed插件:
    页面滚动时固定“目录”的位置。

    scrollTo插件:
    滚动到指定元素的位置,按“目录”可进行跳跃式阅读。

    cluetip插件:
    对术语或引用进行说明。

    backstretch插件:
    添加页面(body)和头部(header)的背景,只是为了增加页面美观,在选择背景图片时,对于图片的要求是质量越高越好(如清晰度,图片大小等)。backstretch插件只能适当使用,如果设置的背景图片过大,加载会非常缓慢,如果图片太小,背景模糊甚至变形(本文只是演示插件的使用,图片来自于网络)。使用说明可以看 网站开发常用jQuery插件总结(七)背景插件backstretch

    四、实现流程

    页面样式:
    主要用于定义页面居中显示、双列、边距、字体格式、大小等。具体信息看“测试页面”。

    插件的样式:
    主要定义了cluetip插件样式,修改了插件中的jquery.cluetip.css文件,具体信息看测试文件。scrolltofixed,scrollto使用过程中,无需定义

    js编码: 操作主要涉及到 设置透明度,点击“目录”链接时,禁止回滚操作

    $("#wrap").css({ opacity: .86 }); //透明度
    $('#left a').attr('href','javascript:void(0)');  //禁止回滚

    backstretch插件设置背景

    //背景图片
    $.backstretch(["http://1100w.com/ref/backstretch/bg.jpg"]);
    //头部图片,设置了两张图片,切换显示,间隔时间为4000毫秒
    $("#header").backstretch(["http://1100w.com/ref/backstretch/b.jpg","header2.jpg"],{duration:4000});

    scrolltofixed插件固定元素 ,固定文章的”章与节”

    $('#articleinfo').scrollToFixed();

    scrollTo插件滚动到指定元素

    $('#left li > a').click(function(){
        var id='#h'+$(this).attr("id");
        $.scrollTo(id,800);
    });

    遍历关键词 ,为关键词添加链接。如在本例中对关键词jquery,css,插件,javascript添加了链接,使用正则忽略关键词的大小写。

    function KeywordAddLink(json) {
        $.each(json,function(key, value) {
              if(json[key] instanceof Object){
                  TraversalJson(json[key]);
              }else{
                  $('.box p').each(function(){
                        var reg=new RegExp(key,'ig');
                        $(this).html($(this).html().replace(reg, '<a href="'+json[key]+'">'+key+'</a>'));
                  });
              }
        });
    }

    cluetip插件为术语添加说明,说明的术语有 排版 、富媒体

    function TermInfo(json){
      $.each(json,function(key, value) {
        $('.box p').each(function(){
              var reg=new RegExp(key,'ig');
              $(this).html($(this).html().replace(reg, '<a href="#" title="'+key+'|'+json[key]+'" class="term">'+key+'</a>'));
        });
      });   
    }
    $('.box a.term').cluetip({
        splitTitle: '|',
        sticky: true,
        closeText: '<img src="http://1100w.com/ref/cluetip/cross.png" alt="关闭" />',
        closePosition: 'title',
        dropShadow: false,
        positionBy: 'mouse'
        //truncate: 60
    });

    本例使用的数据,在寻找关键词和术语时,使用的是两个json数据。

    var keywords={'jquery':'http://www.1100w.com/category/jquery/','css':'http://www.1100w.com/category/css/','插件':'http://www.1100w.com/tag/jquery%e6%8f%92%e4%bb%b6/','javascript':'http://www.1100w.com/category/javascript/'};
    var terms={'排版':'在固定版面内,排版摆置各种不同型态的数据,如数字、文字、表格、图形和图像等等,以最合适的方法呈现。印刷品中的版面安排,网页文案的编排,若要引人注意和阅读上的舒适,皆应留意排版方面的问题。','富媒体':'富媒体包括多媒体(二维和三维动画、影像及声音)。它包括HTML、Java scripts, Interstitial间隙窗口,Microsoft Netshow、RealVideo,和RealAudio,Flash等等,随着技术的进步,名单可能会进一步加长。'};

    五、测试环境

    ie8以上浏览器、chrome版本 29.0.1547.76 m、firefox12.0测试通过

    测试地址:http://1100w.com/ref/p/page.html

  • 相关阅读:
    Axure RP 9 Beta 开放下载(更新激活密钥和汉化包)
    Android 解决NestedScrollView 嵌套 RecyclerView出现的卡顿,上拉刷新无效
    上周热点回顾(8.27-9.2)团队
    上周热点回顾(8.20-8.26)团队
    上周热点回顾(8.13-8.19)团队
    上周热点回顾(8.6-8.12)团队
    阿里云MVP第6期招募与博客园合作启动团队
    上周热点回顾(7.30-8.5)团队
    上周热点回顾(7.23-7.29)团队
    上周热点回顾(7.16-7.22)团队
  • 原文地址:https://www.cnblogs.com/imlions/p/3357577.html
Copyright © 2020-2023  润新知