$(function () {
var scrollTop = 0, //缓存上一次触发scroll的时候的scrollTop值
appendIndex = 0, //由于第23行append这个操作需要时间,在这个时间内可能多次触发scroll事件,为了不会append多次,这里缓存一个appendIndex变量,标识是否已经进行append操作
removeIndex = 0, //同上,为了第46行不会detach多次
firstTitle = $("p.contentTitle").eq(0);
if (firstTitle != undefined) {
$("#topTitle p.titleNormal").html(firstTitle.html());
}
$(window).scroll(function () {
var topTitle = $("#topTitle p"), //顶部title
topTitleWrap = $("#topTitle"), //顶部title的容器
curIndex = parseInt(topTitle.last().attr("data-index")), //顶部title最后的索引值
nextTitle = $("p.contentTitle").eq(curIndex + 1), //向上滑动时下一个title
prevTitle = $("p.contentTitle").eq(curIndex - 1), //向下滑动时上一个title
curTitle = $("p.contentTitle").eq(curIndex),
curScrollTop = $("body").scrollTop(); //取得当前scrollTop的值 if (curScrollTop > scrollTop) {//如果向上滑动
if (nextTitle[0] != undefined) {
if (nextTitle[0].getBoundingClientRect().top <= 52) {//如果下一个title与顶部的title贴到一起或者超过它
var nextTitleIndex = parseInt(nextTitle.attr("data-i")) - 1; //下一个title的索引值
var lastTitleIndex = parseInt(topTitle.last().attr("data-index")); //顶部最后一个title的索引值
if (nextTitleIndex == lastTitleIndex + 1) {
if (appendIndex == lastTitleIndex) {
topTitleWrap.html("<p class='titleNormal' data-index=" + nextTitleIndex + ">" + nextTitle.html() + "</p>");
}
removeIndex = nextTitleIndex;
appendIndex = nextTitleIndex;
}
}
}
}
else {//如果向下滑动
if (prevTitle[0] != undefined && curTitle[0] != undefined) {
if (curTitle[0].getBoundingClientRect().top >= 0) {
var prevTitleIndex = parseInt(curTitle.attr("data-i")) - 1;
var lastTitleIndex = parseInt(topTitle.last().attr("data-index"));
if (prevTitleIndex == lastTitleIndex) {
if (removeIndex == lastTitleIndex && removeIndex != 0) {
topTitleWrap.html("<p class='titleNormal' data-index=" + parseInt(curIndex - 1) + ">" + prevTitle.html() + "</p>");
}
if (curTitle.attr("data-i") - 1 > 0) {
appendIndex = prevTitleIndex - 1;
removeIndex = prevTitleIndex - 1;
}
}
}
}
}
scrollTop = curScrollTop;
});
});

安卓端网页浏览过程中实时更新title的web实现的更多相关文章

  1. 驰骋工作流引擎-CCMobile与安卓、IOS集成过程中的问题与解决方案

    CCMobile与安卓.IOS集成过程中的问题与解决方案 前言: CCMobile(2019版本)是CCFlow&JFlow 的一款移动端审批的产品.系统基于mui框架开发,是一款可以兼容An ...

  2. 制作移动端手机网站过程中的SEO优化方法技巧

    据国内三大运营商数据来看,中国的手机用户数已达10亿,超过2/5的移动用户每个月都会从手机终端访问网页,如今的移动端手机网站比例肯定有提升,但是对于这些存在的移动版本网站来说,马海祥查看了很大一部分手 ...

  3. 【C#】让DataGridView输入中实时更新数据源中的计算列

    本文适用Winform开发,且DataGridView的数据源为DataTable/DataView的情况. 理解前提:熟知DataTable.DataView 求:更好方案 考虑这样一个场景: 某D ...

  4. 网页制作过程中div定位的三个问题

    这几天要做单位的网站,对于做网站我也不怎么样,于是我便在网上参考了一个比较满意的网站,套一下来把这个工作结束了.在此期间遇到了三个关于div定位问题, 一般网站用div布局时都是从上到下分head . ...

  5. MFC For循环中实时更新显示Edit内容

    在for(){}循环中如果有处理函数,然后需要显示的时候,简单的UpdateData(false);是不行的: for (int i=0;i<10000;i++) { m_nT1.Format( ...

  6. 利用DIV+CSS制作网页过程中常用的基本概念及标签使

    CSS主要用于对HTML文件功能的补充及扩展,其作用就是对HTML文件中各种排版进行设置,达到对网页中字体.颜色.背景.图片等的控制,使网页能够完全依照设计者的想法来显示. CSS可以控制网页的显示, ...

  7. 利用DIV+CSS制作网页过程中常用的基本概念及标签使用细节

    CSS主要用于对HTML文件功能的补充及扩展,其作用就是对HTML文件中各种排版进行设置,达到对网页中字体.颜色.背景.图片等的控制,使网页能够完全依照设计者的想法来显示. CSS可以控制网页的显示, ...

  8. Python爬虫(图片)编写过程中遇到的问题

    最近我突然对网络爬虫开窍了,真正做起来的时候发现并不算太难,都怪我以前有点懒,不过近两年编写了一些程序,手感积累了一些肯定也是因素,总之,还是惭愧了.好了,说正题,我把这两天做爬虫的过程中遇到的问题总 ...

  9. Java SpringMVC实现PC端网页微信扫码支付完整版

    一:前期微信支付扫盲知识 前提条件是已经有申请了微信支付功能的公众号,然后我们需要得到公众号APPID和微信商户号,这个分别在微信公众号和微信支付商家平台上面可以发现.其实在你申请成功支付功能之后,微 ...

随机推荐

  1. ABAP 将单元格设置编辑状态 FORM

    FORM set_style  USING   fieldname                         style TYPE string                 CHANGING ...

  2. MyBatis Like查询处理%_符号

    如果我们数据库中存的字段包含有"%_"这两个like查询的通配符,那么在查询的时候把"%_"当作关键字是查询不出来的,因为mybatis会把这两个字符当作通配符 ...

  3. 第三天--html列表

    <!Doctype html><html>    <head>        <meta charset="utf-8">      ...

  4. windows下webstorm开发react-native智能提示

    webstorm破解版地址:点这里 1.随便在一个目录下下载ReactNative-LiveTemplate插件,命令为: git clone https://github.com/virtoolsw ...

  5. iOS10 推送必看(基础篇)

    虽然这篇文章比较长,也不好理解,但是还是建议大家收藏,以后用到的时候,可以看看,有耐心的还是读一读. 这篇文章开始,我会跟大家好好讲讲,苹果新发布的iOS10的所有通知类. 一.创建本地通知事例详解: ...

  6. [转]阿里巴巴数据库连接池 druid配置详解

    一.背景 java程序很大一部分要操作数据库,为了提高性能操作数据库的时候,又不得不使用数据库连接池.数据库连接池有很多选择,c3p.dhcp.proxool等,druid作为一名后起之秀,凭借其出色 ...

  7. "飞机大战"游戏_Java实现_详细注释

    1 package cn.xiaocangtian.Util; import java.awt.Frame; import java.awt.Graphics; import java.awt.Ima ...

  8. 【leetcode】Valid Sudoku

    题目简述: Determine if a Sudoku is valid, according to: Sudoku Puzzles - The Rules. The Sudoku board cou ...

  9. CMD安装/删除服务

    服务安装 sc create "ddd" binpath= "D:\winservice\XXX\XXX.exe" 服务删除 sc delete "d ...

  10. AVL树的平衡算法(JAVA实现)

      1.概念: AVL树本质上还是一个二叉搜索树,不过比二叉搜索树多了一个平衡条件:每个节点的左右子树的高度差不大于1. 二叉树的应用是为了弥补链表的查询效率问题,但是极端情况下,二叉搜索树会无限接近 ...