原生JS获取元素集合的子元素宽度实例


Posted in Javascript onDecember 14, 2016

有些时候,在一个网页的ul li中,存在左右两个部分的内容,但是右边元素内容又是不固定,左边元素相对应的不能用固定宽度,所有需要我们动态的获取右边元素宽度,来赋值给左边元素的marginRight值。

HTML结构:

<ul class="itemCon">
  <li class="item">
    <div class="leftMess">
      <div class="leftCon">
        <span>头像</span>
        <p>名字名字名字名字名字名字名字名字名字名字名字名字名字名字名字名字</p>
      </div>
    </div>
    <div class="rightMess">
      <span>工具1</span>
      <span>工具2</span>
      <span>工具3</span>
    </div>
  </li>
  <li class="item">
    <div class="leftMess">
      <div class="leftCon">
        <span>头像</span>
        <p>名字名字名字名字名字名字名字名字名字名字名字名字名字名字名字名字</p>
      </div>
    </div>
    <div class="rightMess">
      <span>工具2</span>
      <span>工具3</span>
    </div>
  </li>
  <li class="item" id="test">
    <div class="leftMess">
      <div class="leftCon">
        <span>头像</span>
        <p>名字名字名字名字名字名字名字名字名字名字名字名字名字名字名字名字</p>
      </div>
    </div>
    <div class="rightMess">
      <span>工具3</span>
    </div>
  </li>
</ul>

配上CSS:

html,body{padding:0;margin:0}
ul,li{list-style:none;padding:0;margin:0}
p{margin:0;padding:0}
.itemCon{width:450px;height:auto; margin:100px auto; background:#ccc; overflow:hidden}
.item{width:100%; float:left;height:60px;border-bottom:solid 1px #f00; position:relative}
.leftMess{ height:60px;}
.leftCon{ float:left; height:60px; overflow:hidden;width:100%}
.leftMess span{ display:inline-block;width:50px;height:50px; border-radius:50%; background:#f00; text-align:center; line-height:50px; margin:5px; float:left}
.leftMess p{ margin-left:60px}
.rightMess{width:auto;height:60px; position:absolute;right:0;top:0}
.rightMess span{width:50px; height:50px; line-height:50px; text-align:center; margin:5px; float:left; background:#f00}

最后JS代码:

<script type="text/javascript">
  var divs = document.getElementsByClassName('item');
  for (var i = 0; i < divs.length; i++) {
    var lastW = divs[i].children[1].offsetWidth;
    divs[i].children[0].style.marginRight=lastW+"px"
  }
</script>

最终效果图:

原生JS获取元素集合的子元素宽度实例

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持三水点靠木!

Javascript 相关文章推荐
JavaScript监测ActiveX控件是否已经安装过的代码
Sep 02 Javascript
JQuery this 和 $(this) 的区别
Aug 23 Javascript
jquery中change()用法实例分析
Feb 06 Javascript
JavaScript中通过prototype属性共享属性和方法的技巧实例
Mar 13 Javascript
jQuery实现默认是闭合的FAQ展开效果菜单
Sep 14 Javascript
JS/jQuery判断DOM节点是否存在的简单方法
Nov 24 Javascript
实现微信小程序的wxml文件和wxss文件在webstrom的支持
Jun 12 Javascript
Vue的实例、生命周期与Vue脚手架(vue-cli)实例详解
Dec 27 Javascript
使用vue打包时vendor文件过大或者是app.js文件很大的问题
Jun 29 Javascript
对angular 监控数据模型变化的事件方法$watch详解
Oct 09 Javascript
layui(1.0.9)文件上传upload,前后端的实例代码
Sep 26 Javascript
JavaScript实现贪吃蛇游戏
Jun 16 Javascript
微信小程序 require机制详解及实例代码
Dec 14 #Javascript
js实现获取鼠标当前的位置
Dec 14 #Javascript
详解vue.js组件化开发实践
Dec 14 #Javascript
JavaScript Ajax实现异步通信
Dec 14 #Javascript
微信小程序 配置文件详细介绍
Dec 14 #Javascript
微信小程序 闭包写法详细介绍
Dec 14 #Javascript
微信小程序 wx.uploadFile无法上传解决办法
Dec 14 #Javascript
You might like
Admin generator, filters and I18n
2011/10/06 PHP
thinkphp5.0自定义验证规则使用方法
2017/11/16 PHP
ThinkPHP5.0框架实现切换数据库的方法分析
2019/10/30 PHP
激活 ActiveX 控件
2006/10/09 Javascript
JavaScript脚本性能的优化方法
2007/02/02 Javascript
解析js中获得父窗口链接getParent方法以及各种打开窗口的方法
2013/06/19 Javascript
计算新浪Weibo消息长度(还可以输入119字)
2013/07/02 Javascript
input:checkbox多选框实现单选效果跟radio一样
2014/06/16 Javascript
浅谈JS闭包中的循环绑定处理程序
2014/11/09 Javascript
自动完成的搜索框javascript实现
2016/02/26 Javascript
Javascript之面向对象--封装
2016/12/02 Javascript
JS中如何实现复选框全选功能
2016/12/19 Javascript
新闻上下滚动jquery 超简洁(必看篇)
2017/01/21 Javascript
JS实现简易刻度时钟示例代码
2017/03/11 Javascript
AngularJS折叠菜单实现方法示例
2017/05/18 Javascript
JQuery常见节点操作实例分析
2019/05/15 jQuery
原生JavaScript实现日历功能代码实例(无引用Jq)
2019/09/23 Javascript
[00:32]DOTA2上海特级锦标赛 Ehome战队宣传片
2016/03/03 DOTA
python发送邮件功能实现代码
2016/07/15 Python
matplotlib.pyplot绘图显示控制方法
2019/01/15 Python
Python实现二叉搜索树BST的方法示例
2019/07/30 Python
查看Python依赖包及其版本号信息的方法
2019/08/13 Python
tensorflow自定义激活函数实例
2020/02/04 Python
python实现PCA降维的示例详解
2020/02/24 Python
Python celery原理及运行流程解析
2020/06/13 Python
解决Keras 自定义层时遇到版本的问题
2020/06/16 Python
使用python编写一个语音朗读闹钟功能的示例代码
2020/07/14 Python
Html5 页面适配iPhoneX(就是那么简单)
2019/09/05 HTML / CSS
在C#中如何实现多态
2014/07/02 面试题
银行实习的自我鉴定
2013/12/10 职场文书
学习新党章思想汇报
2014/01/09 职场文书
优秀班干部事迹材料
2014/01/26 职场文书
乡镇组织委员个人整改措施
2014/09/16 职场文书
小学运动会加油稿
2015/07/22 职场文书
有关保护环境的宣传标语100条
2019/08/07 职场文书
vue3种table表格选项个数的控制方法
2022/04/14 Vue.js