博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Jquery的offset()和position()高度计算不正确解决办法
阅读量:7044 次
发布时间:2019-06-28

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

hot3.png

Jquery的offset()和position()高度计算不正确解决办法

今天是10月25号,程序员节后的第一天,我们现在了还在改BUG,妈蛋。今天遇见一个很无语的问题,就是在页面上获取offset()和position()的top属性时,发现不是自己想要的,很无语。。。

  • 不知道怎么换行。。。

本来页面是用锚点定位的,后来发现在IE11下不好用(万恶的IE。。。)。于是就采用scrollTop解决。一开始思路很好:获取目标元素的position().top,设置父元素滚动条scrollTop这么高,问题就好了。但是实际上有问题,估计跟页面布局有关系。两次获取元素的position().top还不一样,我是没办法了。

  • 这里还是换行。。。

最后,突然灵光一闪,想到可以把目标元素之前所有元素的高度,在相加求和,就是父元素scrollTop的值。按照这样思路试了试,果然可以。代码如下:

$(".testcard div a").on("click", function() {			$(".testcard div a").removeClass("card-com");			$(this).addClass("card-com");			var index = $(this).parents(".testcard").attr("tabIndex");			index = index-1;			$(".tab-option input").eq(index).trigger("click");						var prevEleHeightSum = 0;			var prevEleList = $($(this).attr("ref")).prevAll();			if(prevEleList.length > 0){				$.each(prevEleList,function(index,obj){					prevEleHeightSum += $(obj).**outerHeight**(true);				});			}			$(".question-option:visible").scrollTop(prevEleHeightSum);			return false;		});

prevEleList 就是目标元素的前面同级所有元素(同级的) outerHeight(true);获取元素的高度,包括边框、padding什么的; scrollTop( );设置滚动高度位置; 最后的return false;是因为那个a标签,为了在ie中兼容。

转载于:https://my.oschina.net/u/1444945/blog/775681

你可能感兴趣的文章
nodejs中几个excel模块的简单对比
查看>>
面向对象三大特征
查看>>
我的友情链接
查看>>
我的友情链接
查看>>
我的友情链接
查看>>
Java基础学习总结(14)——Java对象的序列化和反序列化
查看>>
我的友情链接
查看>>
Java基础学习总结(22)——异常处理
查看>>
Ansible学习01-常用模块
查看>>
Java基础学习总结(21)——数组
查看>>
我的友情链接
查看>>
RHEL6.5 部署DNS服务器
查看>>
Maven学习总结(八)——使用Maven构建多模块项目
查看>>
Java基础学习总结(9)——this关键字
查看>>
Redis——订阅
查看>>
iOS iPhone 开发中的文件读写及数据存储
查看>>
Oracle Database XE
查看>>
RAID磁盘阵列笔记
查看>>
使用hadoop进行大规模数据的全局排序
查看>>
润乾报表实现可重复分组报表及改进
查看>>