$(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. xtrabackup 使用说明(续)

    背景: 关于物理备份工具xtrabackup的一些说明可以先看之前写过的文章说明:xtrabackup 安装使用.现在xtrabackup版本升级到了2.4.4,相比之前的2.1有了比较大的变化:in ...

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

    FORM set_style  USING   fieldname                         style TYPE string                 CHANGING ...

  3. 51nod 1459 迷宫游戏 (最短路径—Dijkstra算法)

    题目链接 中文题,迪杰斯特拉最短路径算法模板题. #include<stdio.h> #include<string.h> #define INF 0x3f3f3f3f ],v ...

  4. linux添加私有的ip

    在虚拟机上的网络适配器设置为仅主机模式,重启linux系统,ifconfig查看所得的就是linux自动配置的私有ip.

  5. MVC 添加Area

    在MVC项目中经常会使用到Area来分开不同的模块让项目结构更加的清晰. 步骤如下: 项目 –> 添加 -> 区域 ( Area ) 输入 Admin 添加成功后 Area包含: 创建一个 ...

  6. SqlServer 2008登录时报错

    登录SQLServer2008R2时提示如下错误: 在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误.未找到或无法访问服务器.请验证实例名称是否正确并且 SQL Server ...

  7. IIS6.0 web.config

    IIS6.0环境下,要把托管管道模式 改为:经典. <?xml version="1.0" encoding="UTF-8"?> <confi ...

  8. mysql常用函数

    一.数学函数 数学函数主要用于处理数字,包括整型.浮点数等. 注:对大小写不敏感 ABS(x) 返回x的绝对值 SELECT ABS(-1) -- 返回1 CEIL(x),CEILING(x) 返回大 ...

  9. 使用Json Web Token设计Passport系统

    >>Token Auth机制 基于Token的身份验证是无状态的,我们不将用户信息存在服务器或Session中. 相比原始的Cookie+Session方式,更适合分布式系统的用户认证,绕 ...

  10. Redis 外部访问设置

    1.错误原因 Redis搭建好后一般都是使用编程语言进行连接调用,默认Redis的设置是不允许外界访问的,连接Redis只能通过本地(127.0.0.1)来连接,而不能使用网络IP(192.168.1 ...