js怎么获取一个元素与屏幕右边的距离_js如何获取div(ul li)离屏幕上下左右边距离(长度)...

在网页中移到元素div(或 ul li),常常需要获取元素div离屏幕上下左右的距离,这样可以知道元素处在屏幕中的位置,以控制元素的移动。

获取元素div的长度或高度,可以用 js 获取元素div的width或height属性得到,但元素没有距离屏幕上下左右的属性,应该如何获取元素div(ul li)离屏幕上下左右边距离(长度)?javascript 有一个用 getBoundingClientRect()方法,这个方法有上下左右四个属性,它们正是离幕上下左右边距离,通过它可以获取到div(ul li)离屏幕上下左右边距离。

js如何获取div(ul li)离屏幕上下左右边距离(长度)实例

html代码:

js如何获取div(ul li)离屏幕上下左右边距离(长度)

CSS代码:

.div{ margin:80px 0px; position:relative; border:1px solid #787878; width:500px; height:30px; line-height:30px;}

javascript代码:

function getDivTopLength(obj) {

var div = document.getElementById(obj);

var topLength = div.getBoundingClientRect().top; //div离屏幕上边距离(长度)

var bottomLength = div.getBoundingClientRect().bottom; //div离屏幕下边距离(长度)

var leftLength = div.getBoundingClientRect().left; //div离屏幕左边距离(长度)

var rightLength = div.getBoundingClientRect().right; //div离屏幕右边距离(长度)

return "topLength=" + topLength + ";bottomLength=" + bottomLength + ";leftLength=" + leftLength + ";rightLength=" + rightLength;

}

document.write(getDivTopLength("divId"));

输出结果:topLength=80;bottomLength=112;leftLength=8;rightLength=510

由于CSS把 div 的位置定义为相对(position:relative),所以 div 在网页中的位置不同,输出结果不一样。

以上举例了求 div 离屏幕上下左右边距离,js getDivTopLength方法把要求元素离屏幕上下左右边距离定义为参数,所以只要把具体元素传递给它就能求出其离屏幕上下左右边距离,因此求 ul li 离屏幕上下左右边距离,只需把相应的 id 传给 getDivTopLength方法就可以求出。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面是使用`ul`和`li`标签完成分页功能的`HTML`和`JavaScript`代码示例: ```html <div id="page-container"> <ul id="pagination"></ul> </div> ``` ```javascript // 分页数据 var data = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]; // 每页显示的条目数 var pageSize = 5; // 计算总页数 var pageCount = Math.ceil(data.length / pageSize); // 获取分页容器和分页列表 var pageContainer = document.getElementById('page-container'); var pagination = document.getElementById('pagination'); // 生成分页列表 for (var i = 1; i <= pageCount; i++) { var li = document.createElement('li'); var a = document.createElement('a'); a.href = 'javascript:void(0)'; a.innerHTML = i; a.onclick = (function (page) { return function () { showPage(page); }; })(i); li.appendChild(a); pagination.appendChild(li); } // 显示指定页的数据 function showPage(page) { var start = (page - 1) * pageSize; var end = start + pageSize; var pageData = data.slice(start, end); console.log(pageData); } ``` 在上面的代码中,我们先定义了一个数组`data`,表示要进行分页的数据。然后我们设置每页显示的条目数为`5`,通过计算数组长度和每页条目数,我们可以得到总页数`pageCount`。接下来,我们获取分页容器和分页列表,然后通过一个循环生成分页列表中的每个页码链接。在生成每个页码链接时,我们给链接添加了一个点击事件,点击链接时会调用`showPage`函数,并传入对应的页码,以便在该函数中显示对应页码的数据。最后,我们实现了`showPage`函数,该函数根据传入的页码计算出该页对应的数据范围,并输出到控制台中。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值