置顶事件

//css代码

<style>

html,body {width: 100%;margin: 0;padding: 0;}

.container {width: 100%;margin: 0;padding: 0;padding-bottom: 800px;}

header {background: lightblue;width: 100%;height: 80px;position: fixed;top: 0;left: 0;}

.mark {height: 20px;position: fixed;width: 80%;top: 80px;/* line-height: 40px; *//*background: #fff;*//*color:red;*/margin-left: 10%;background: lightseagreen;}

.content {width: 80%;margin: 140px auto 0;background: lightsalmon;}

.itemContainer{list-style-type: none;margin: 0;padding: 0;}

.kx-time {background: lightseagreen;height: 40px;line-height: 40px;}

</style>

<script srrc=""js/jquery.min.js""></script>

//html代码

<div class="container">

<header></header>

<div class="mark"></div>

<div class="content"></div>

<ul>

<p class="kx-time">task01</p>

<li class="aaa" attr="task01">

<div>

Lorem ipsum dolor sit amet, consectetur adipisicing elit. Cupiditate ex facilis nostrum rerum. Aliquam asperiores debitis

laborum laudantium, magni nemo nihil nisi perferendis porro rem repellendus rerum tempore velit voluptas? Lorem ipsum

dolor sit amet, consectetur adipisicing elit. A, consequuntur error expedita explicabo incidunt maiores placeat praesentium

quasi quidem vero! Accusantium deleniti enim molestias nesciunt provident quibusdam repudiandae sit, ut. Lorem ipsum

dolor sit amet, consectetur adipisicing elit. Accusantium, aperiam, cum debitis dolorem dolores magni neque obcaecati

optio repellat rerum sed velit. Consequatur nemo omnis quam qui reprehenderit unde voluptate.

</div>

<li>

</ul>

</div>

<script>

$(window).load(function () {

//获取第一个标题元素距离页面顶端的距离 

var top = $(".kx-time:first").offset().top;

var headerHeight = $("header").height();

//移动页面,使第一个title元素到mark的位置,并将title中的文字给mark 

window.scrollTo(0, top - headerHeight);

$(".mark").html($(".kx-time:first").html());

/** 

* 滚动事件 

*/

var titles = $(".kx-time");

var obj = {};

for (var i = 0; i < titles.length; i++) {

obj["top" + i] = $(titles[i]).offset().top - headerHeight;

}

$(window).scroll(function () {

//如果页面向上拉伸的距离大于等于哪个title距离顶部的距离,就将哪个title中的文字给mark 

for (var i = 0; i < titles.length; i++) {

if ($(window).scrollTop() >= obj["top" + i]) {

// console.log(111)

$(".mark").html($(".kx-time").eq(i).html());

$(".mark").css("height", "40px");

// console.log(22222)

} else if ($(window).scrollTop() >= obj["top" + (titles.length - 1)] &&

$(window).scrollTop() <= obj["top" + (titles.length - 1)] + parseFloat($(".kx-time").eq(titles.length - 1).next('div').height())) {

$(".mark").html($(".kx-time").eq(titles.length -1 ).html());

$(".mark").css("height", "40px");

} else if ($(window).scrollTop() <= obj.top0) {

$(".mark").html("");

$(".mark").css("height", "0");

} else if ($(window).scrollTop() >= obj["top" + (titles.length - 1)] + parseFloat($(".kx-time").eq(titles.length - 1).next('div').height())) {

$(".mark").html("");

$(".mark").css("height", "40px");

}

}

});

});

</script>

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. tab列表折叠效果 html: 能源系统事业部 岗位名称: 工作地点 岗位名...
    lilyping阅读 1,934评论 0 1
  • 事件源对象 event.srcElement.tagName event.srcElement.type 捕获释放...
    孤魂草阅读 942评论 0 0
  • 第2章 基本语法 2.1 概述 基本句法和变量 语句 JavaScript程序的执行单位为行(line),也就是一...
    悟名先生阅读 4,267评论 0 13
  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 12,792评论 0 33
  • 作业: 1.写一两段话(如回忆一个场景),其中包含有触觉和身体感觉。 月末时常有暴雨,我在店里吃面。天气闷闷的,屋...
    迷鹿人阅读 310评论 1 0