为了账号安全,请及时绑定邮箱和手机立即绑定

怎么用原生JS获取两个元素属性的差?

怎么用原生JS获取两个元素属性的差?

kolog 2017-08-10 15:10:22
比如高度差,TOP值的差,margin的差。。。
查看完整描述

1 回答

已采纳
?
骑驴的帅小伙

TA贡献16条经验 获得超7个赞

自己写个方法吧......

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style type="text/css">
        * {
            margin: 0;
            padding: 0;
        }
        
        .div1 {
            width: 100px;
            height: 100px;
            background: red;
            position: absolute;
            top: 10px;
            left: 10px;
        }
        
        .div2 {
            width: 100px;
            height: 200px;
            background: blue;
            position: absolute;
            top: 20px;
            left: 200px;
        }
    </style>
</head>

<body>
    <div class="div1"></div>
    <div class="div2"></div>
    
    <script>
        var div1 = document.querySelector('.div1');
        var div2 = document.querySelector('.div2');
        
        // 计算差值  传入参数(元素1, 元素2, 要计算的属性)
        function dis(element1, element2, attr) {
        return css(element1, attr) - css(element2, attr) + 'px';
        }
        
        // 获取元素属性 (没处理兼容性)
        function css(element, attr) {
        return parseInt(getComputedStyle(element)[attr]);
        }
        
        console.log(dis(div2, div1, 'height'));
    </script>
</body>
</html>


查看完整回答
1 反对 回复 2017-08-11
?
业余奶茶品鉴师

TA贡献260条经验 获得超388个赞

这个代码就可以。这个js 

document.getElementById('divId').clientHeight

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<style>
#div1 {
width: 100px;
height: 400px;
background: pink;
}
#div2 {
width: 100px;
height: 200px;
background: yellow;
}
</style>
</head>
<body>
<div id="div1"></div>
<div id="div2"></div>
</body>
<script>
var div1 = document.getElementById('div1');
var div2 = document.getElementById('div2');
var h1 = div1.clientHeight;
var h2 = div2.clientHeight;
console.log('高度差= ' + (h1 - h2))
</script>
</html>


查看完整回答
1 反对 回复 2017-08-10
?
橋本奈奈未

TA贡献436条经验 获得超108个赞

获取各元素的属性值相减,

如果想获取css的属性值使用getComputedStyle()和getPropertyValue()方法;

查看完整回答
反对 回复 2017-08-10
?
骑驴的帅小伙

TA贡献16条经验 获得超7个赞

应该没有直接获取差值的方法,用元素1的offsetHeight 减去 元素2的offsetHeight吧……

查看完整回答
反对 回复 2017-08-10
  • 1 回答
  • 1 关注
  • 2828 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信