js是滚动条滑到固定位置_js实现滚动条滚动到某个位置便自动定位某个tr_javascript技巧...

本文介绍如何使用JavaScript实现滚动条定位到表格的特定行。通过结合animate方法改变scrollTop属性,以及理解offsetTop的含义,可以轻松实现滚动条的自动定位。同时讲解了animate、scrollTop和offsetTop等相关概念。
摘要由CSDN通过智能技术生成

要实现带滚动条的table,定位到某个tr,其实是很简单的,只有几行js代码就可以完成,具体内容如下

js代码

function test(){

var $objTr = $("#location"); //找到要定位的地方 tr

$objTr.css("background-color","lightgray"); //设置要定位地方的css

var objTr = $objTr[0]; //转化为dom对象

$("#dataDiv").animate({scrollTop:objTr.offsetTop},"slow"); //定位tr

}

html

定位

ddddddddddddddddddddddddddddddddddddddddddddsererfd
ddddddddddddddddddddddddddddddddddddddddddddsererfd
ddddddddddddddddddddddddddddddddddddddddddddsererfd
ddddddddddddddddddddddddddddddddddddddddddddsererfd
ddddddddddddddddddddddddddddddddddddddddddddsererfd
ddddddddddddddddddddddddddddddddddddddddddddsererfd
ddddddddddddddddddddddddddddddddddddddddddddsererfd
ddddddddddddddddddddddddddddddddddddddddddddsererfd
ddddddddddddddddddddddddddddddddddddddddddddsererfd
ddddddddddddddddddddddddddddddddddddddddddddsererfd
ddddddddddddddddddddddddddddddddddddddddddddsererfd
ddddddddddddddddddddddddddddddddddddddddddddsererfd
ddddddddddddddddddddddddddddddddddddddddddddsererfd
ddddddddddddddddddddddddddddddddddddddddddddsererfd
ddddddddddddddddddddddddddddddddddddddddddddsererfd
ddddddddddddddddddddddddddddddddddddddddddddsererfd
ddddddddddddddddddddddddddddddddddddddddddddsererfd
ddddddddddddddddddddddddddddddddddddddddddddsererfd
ddddddddddddddddddddddddddddddddddddddddddddsererfd
ddddddddddddddddddddddddddddddddddddddddddddsererfd
ddddddddddddddddddddddddddddddddddddddddddddsererfd
ddddddddddddddddddddddddddddddddddddddddddddsererfd
ddddddddddddddddddddddddddddddddddddddddddddsererfd
ddddddddddddddddddddddddddddddddddddddddddddsererfd
ddddddddddddddddddddddddddddddddddddddddddddsererfd
ddddddddddddddddddddddddddddddddddddddddddddsererfd
ddddddddddddddddddddddddddddddddddddddddddddsererfd
ddddddddddddddddddddddddddddddddddddddddddddsererfd
ddddddddddddddddddddddddddddddddddddddddddddsererfd
ddddddddddddddddddddddddddddddddddddddddddddsererfd
ddddddddddddddddddddddddddddddddddddddddddddsererfd
ddddddddddddddddddddddddddddddddddddddddddddsererfd
ddddddddddddddddddddddddddddddddddddddddddddsererfd
ddddddddddddddddddddddddddddddddddddddddddddsererfd
ddddddddddddddddddddddddddddddddddddddddddddsererfd
ddddddddddddddddddddddddddddddddddddddddddddsererfd
ddddddddddddddddddddddddddddddddddddddddddddsererfd
ddddddddddddddddddddddddddddddddddddddddddddsererfd
ddddddddddddddddddddddddddddddddddddddddddddsererfd
ddddddddddddddddddddddddddddddddddddddddddddsererfd
ddddddddddddddddddddddddddddddddddddddddddddsererfd
ddddddddddddddddddddddddddddddddddddddddddddsererfd
ddddddddddddddddddddddddddddddddddddddddddddsererfd
ddddddddddddddddddddddddddddddddddddddddddddsererfd
ddddddddddddddddddddddddddddddddddddddddddddsererfd
ddddddddddddddddddddddddddddddddddddddddddddsererfd
ddddddddddddddddddddddddddddddddddddddddddddsererfd
ddddddddddddddddddddddddddddddddddddddddddddsererfd

虽说是几行代码,但要彻底弄懂。要熟悉animate的使用,scrollTop,.offsetTop的意思方可得心应手。

1. animate的使用说明:

animate() 方法执行 CSS 属性集的自定义动画。

该方法通过CSS样式将元素从一个状态改变为另一个状态。CSS属性值是逐渐改变的,这样就可以创建动画效果。

只有数字值可创建动画(比如 "margin:30px")。字符串值无法创建动画(比如 "background-color:red")。

2. scrollTop

scrollTop属性

有些情况下,“元素中内容”的高度会超过“元素本身”的高度, scrollTop指的是“元素中的内容”超出“元素上边界”的那部分的高度。

解释:

内层元素的高度值300px > 外层元素的高度值200px,因此“外层元素的内容”(也就是“内层元素”)无法完全显示,而外层元素把overflow设置为auto,因此外层元素的右侧会出现竖直滑动条

初始状态下,“内层元素的上边界”和“外层元素的上边界”重合,没有任何内容超过“外层元素的上边界”,此时scrollTop属性的值为0。

当向下拖动滚动块时,超过“外层元素的上边界”的内容会逐渐增多,scrollTop值就等于这些超出部分的高度。

当拖动滚动块到最底部时,“内层元素的下边界”和“外层元素的下边界”重合,此时,超过“外层元素的上边界”的内容的高度=300px-200px=100px,也就是此时的scrollTop值。

3..offsetTop,offsetLeft等

假设 obj 为某个 HTML 控件。

obj.offsetTop 指 obj 距离上方或上层控件的位置,整型,单位像素。

obj.offsetLeft 指 obj 距离左方或上层控件的位置,整型,单位像素。

obj.offsetWidth 指 obj 控件自身的宽度,整型,单位像素。

obj.offsetHeight 指 obj 控件自身的高度,整型,单位像素。

offsetParent

offsetParent属性返回一个对象的引用,这个对象是距离调用offsetParent的元素最近的(在包含层次中最靠近的),并且是已进行过CSS定位的容器元素。 如果这个容器元素未进行CSS定位,则offsetParent属性的取值为根元素(在标准兼容模式下为html元素;在怪异呈现模式下为body元素)的引用。当容器元素的style.display 被设置为 "none"时(译注:IE和Opera除外),offsetParent属性 返回null。

句法:parentObj = element.offsetParent

变量:parentObj 是一个元素的引用,当前元素的偏移量在其中计算。

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

实现滚动条滚动到某个位置自动定位到某个tr元素,可以使用JavaScript实现。具体步骤如下: 首先,通过document对象的getElementById()方法或querySelector()方法获取到要定位tr元素。 接下来,为窗口的滚动条添加一个滚动事件监听器,使用addEventListener()方法将scroll事件和一个处理函数绑定起来。 在处理函数中,可以通过window对象的scrollY属性获取到滚动条滚动距离。可以使用tr元素相对于浏览器窗口视口的位置来判断滚动条是否滚动到了需要定位位置。 获取tr元素相对于窗口视口的位置可以使用getBoundingClientRect()方法。该方法返回一个包含四个属性top、right、bottom和left的DOMRect对象,表示元素的位置和大小。 当滚动条滚动距离大于或等于tr元素的top属性时,说明滚动条已经滚动到了需要定位位置,可以调用tr元素的scrollIntoView()方法将其滚动到可视区域内。 以下是一个简单示例代码: ```javascript var trElement = document.getElementById("trId"); // 获取要定位tr元素 window.addEventListener("scroll", function() { var trRect = trElement.getBoundingClientRect(); // 获取tr元素的位置信息 if (window.scrollY >= trRect.top) { trElement.scrollIntoView(); // 将tr元素滚动到可视区域内 } }); ``` 需要注意的是,上述代码中的"trId"需要替换成要定位tr元素的具体id属性值。另外,tr元素的父级容器需要设置合适的高度和overflow属性,以使滚动条生效。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值