博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Jquery中用offset().top和offsetTop的比较
阅读量:6712 次
发布时间:2019-06-25

本文共 1625 字,大约阅读时间需要 5 分钟。

今天,想测试一个div与顶部的距离,用的是.offsetTop,但是offsetTop获得的值,怎么都打印不出来。折腾了半天,打印的结果都是undefined,虽然网上很多资料都说返回的是数值。虽然这个函数永不了,但是黄显钦找到了一个可以替代offsetTop的函数。那就是jquery的offset().top

 

我们先来了解一下,什么是offset().top和offsetTop?

 

offsetTop

解析一:

假设 obj 为某个 HTML 控件。

obj.offsetTop 指 obj 相对于版面或由 offsetParent 属性指定的父坐标的计算上侧位置,整型,单位像素。

解析二: 

当前对象到其上级层顶部的距离.

不能对其进行赋值.设置对象到页面顶部的距离请用style.top属性.

 

这是从网上找到的两种解析,您看着用,我也没搞懂,主要是打印不出offsetTop来。

 

 

如果需要获取当前元素到document的高度,建议使用jquery的offset().top。下面我们解析一下offset().top。

 offset().top

offset()的top是指元素与document的上边的距离,而不是浏览器当前窗体的上边缘,如图1。

 图1:document高度超过window,浏览器出现滚动条,滚动滚动条,提交按钮的offset不变。

技术分享

 

图2:document中的div有滚动条,提交按钮的offset随div的滚动变化而变化,与document无关

技术分享

 

从上面这两个图,我们就知道jquery的offset.top的用法区别了。

实例一:判断DIV何时出现

js
1

 实例二:

类似豆瓣主页的热门活动,当滚动到那的时候一直在顶部

//返回顶部        $('.toTopShortBtn').hide();        var back = $('.toTopShortBtn a');        back.click(function() {            var timer = setInterval(function(){                $(window).scrollTop($(window).scrollTop()-50);                if($(window).scrollTop() == 0){                    clearInterval(timer);                }            },2);        });        var a = $(".hothuodong").offset().top;        $(window).scroll( function() {            if($(window).scrollTop() > 400){                $('.toTopShortBtn').show();            }else{                $('.toTopShortBtn').hide();            }            var b = $(window).scrollTop();            if (b >= a) {                $(".hothuodong").css('position','fixed');            }else{                $(".hothuodong").css('position','static');            }        });

 

转载于:https://www.cnblogs.com/as3lib/p/6789647.html

你可能感兴趣的文章
淘宝网架构分享总结[转]
查看>>
android异步任务详解 AsynTask
查看>>
java中文乱码解决之道(三)—–编码详情:伟大的创想—Unicode编码
查看>>
shiro安全框架
查看>>
php 返回上一页并刷新
查看>>
14. 星际争霸之php设计模式--状态模式
查看>>
微信公共服务平台开发(.Net 的实现)2-------获得ACCESSTOKEN
查看>>
HDU 1429 胜利大逃亡(续)(bfs)
查看>>
Zookeeper客户端使用
查看>>
IT 名企招聘信息
查看>>
汇编语言--百度百科
查看>>
OpenGL学习之路(三)
查看>>
嵌入式系统 Boot Loader 技术内幕【转】
查看>>
(windows)一台电脑上安装两个Mysql服务
查看>>
教你如何在Kali Linux 环境下设置蜜罐?
查看>>
主域控角色迁移和夺取(转载)
查看>>
HDFS High Availability Using the Quorum Journal Manager
查看>>
Sql日期时间格式转换
查看>>
mesos+marathon+zookeeper的docker管理集群亲手搭建实例(环境Centos6.8)
查看>>
你应了解的4种JS设计模式
查看>>