我有这个元素:
<div style="width: 100%; height: 10px;"></div>
Run Code Online (Sandbox Code Playgroud)
我想得到它的宽度(以像素为单位).我刚试过这个:
document.getElementById('banner-contenedor').style.width
Run Code Online (Sandbox Code Playgroud)
回归100%.是否可以使用javascript实际获取元素的宽度(以像素为单位)?
我熟悉AngularJS.我尽力做到"纯洁".出于这个原因,我试图避免包含jQuery.但是,我在挑战HTML元素的高度时遇到了挑战.目前,我正在尝试以下方法:
angular.module('myModule', [])
.directive('myDirective', function() {
return {
restrict: 'A',
link: function(scope, element) {
console.log(element.css('height'));
}
};
})
;
Run Code Online (Sandbox Code Playgroud)
但是,执行此代码时,会将空行写入控制台.我正在尝试显示元素的高度.有没有办法在不使用jQuery的情况下在AngularJS中执行此操作?
谢谢!
someElement.getBoundingClientRect()返回类型(或显然)的特殊对象的结果ClientRectDomRect
它的结构就像 {top: 10, right: 20, bottom: 30, left: 10, width: 10}
不幸的是,这个对象的行为与其他对象不同.
例如,使用Object.keys它返回一个空数组(我认为因为ClientRect属性不可枚举
我找到了一种转换为普通对象的脏方法:
var obj = {}
for (key in rect) {
obj[key] = rect[key]
}
Run Code Online (Sandbox Code Playgroud)
我的问题是,有更好的方法吗?
是这样的可能在CSS?
<table>
<tr>
<td id="elementOne">elementOne</td>
<td id="elementtwo">elementtwo</td>
</tr>
</table>
<div style="width: calc(document.getElementById(elementOne).width)"></div>
Run Code Online (Sandbox Code Playgroud)
因此div总是与宽度相同elementOne.
CSS中是否有这样的功能,使用calc()或其他方法?
<div style="width:100%;height:100%;position:relative;background-color:white" id ="OuterSvg"> </div>
onPageLoaded(){
console.log(document.getElementById("OuterSvg").offsetHeight); //get 0.
}
ngAfterViewInit(){
console.log(document.getElementById("OuterSvg").offsetHeight); //get 0.
}
Run Code Online (Sandbox Code Playgroud)
我尝试过onPageLoaded()和ngAfterViewInit()但也没有工作...那么如何在dom的高度渲染后得到元素的高度/宽度?
没有jquery
基本上我正在寻找的是能够在倒计时结束时查看鼠标是否超过div
如果用户在div上,则执行该div的操作
onmouseover 只有当鼠标超过div的阈值时才会触发,如果鼠标没有移动则不会触发,因此无效
我需要确定鼠标当前是否在特定时间点的div上,如果它已经从起点移动了
我的所有狩猎都只找到了onmousover,如果鼠标恰好在那里开始的话,没有什么可看的
我没有javascript技能来确定div的整体坐标,然后映射鼠标坐标,看它是否适合那里...这是我认为我需要做的
我正在使用 puppeteer 在我构建的应用程序中截取内容的屏幕截图。我的大部分代码都可以正常工作,但在一些情况下结果不符合预期。
我可以成功地指示 puppeteer 抓取具有定义的 css 的元素的屏幕抓取height并在该元素上width使用getBoundingClientRect(),但在没有定义高度/宽度的情况下。
我想知道在技术上是否可以根据内部元素的和来获取元素的height和。widthheightwidth
例如(或者我最可能遇到的情况)我可能有一段内容,其中正文没有设置样式参数,但内部内容将设置高度。它可能不是第一个子元素,但它甚至可能是子元素的子元素。
我已经探索过使用 getgetBoundingClientRect()但offsetHeight没有成功。
有没有一种方法可以让我获得元素的计算高度/宽度?
var body = document.querySelector('body');
console.log(body.clientHeight);
console.log(body.style.height);
console.log(body.getClientRects());
console.log(body.getBoundingClientRect());Run Code Online (Sandbox Code Playgroud)
#container {
height:200px;
width:200px;
background-color:blue;
border:1px solid black;
color: white;
text-align: center;
}Run Code Online (Sandbox Code Playgroud)
<body>
<div id="container">
HELLO
</div>
</body>Run Code Online (Sandbox Code Playgroud)
<div>每次调用JavaScript函数时,我都需要将特定的宽度缩小50px.
我试过了
document.getElementById("Zivot").style.width = "100px";
Run Code Online (Sandbox Code Playgroud)
但这只是设置宽度,而不是添加或减去它.
我希望有人可以帮助解决这个问题,因为我似乎找不到可靠的解决方案。
是否有框架或通用设置可以很好地呈现 html 画布,并且在不同的像素密度下以正确的大小呈现?
我明白为什么这个问题存在。我已经进行了非常彻底的搜索,所以如果之前多次问过这个问题,我很抱歉,但我仍然没有看到一个强大的解决方案。
补充:为了澄清,画布渲染在视网膜屏幕上看起来很模糊,我想有一种方法可以让渲染无论在哪里查看都看起来清晰。Fabric 框架看起来很棒,但他们的演示在我的视网膜屏幕上看起来仍然很模糊。
我正在尝试将 div(屏幕中心)居中。这div不是 的直接子代,body所以我不能使用 css。目前,我使用以下 jQuery 代码将它放在我的页面上:
var dialog = $('#MyDialog');
dialog.css('left', ($('body').width()/2) - (dialog.width()/2));
dialog.css('top', ($('body').height()/2) - (dialog.height()/2);
Run Code Online (Sandbox Code Playgroud)
目标是删除 jQuery,我已经写过这个:
var showDialog = function(){
var body = document.body;
var html = document.documentElement;
var bodyHeight = Math.max( body.scrollHeight, body.offsetHeight, html.clientHeight, html.scrollHeight, html.offsetHeight );
var bodyWidth = Math.max( body.scrollWidth, body.offsetWidth, html.clientWidth, html.scrollWidth, html.offsetWidth );
var dialogWidth = 800;
var dialogHeight = 560;
var dialog = document.getElementById('MyDialog');
dialog.style.left = (bodyWidth/2) - (dialogWidth/2) + 'px';
dialog.style.top = (bodyHeight/2) - (dialogHeight/2) …Run Code Online (Sandbox Code Playgroud) 我是初学者编码器。可能很简单,但我试图找到答案并没有成功。我的问题是为什么对象的属性width和height属性都div返回,undefined而它们显然都是 100px?
在本主题中解释了如何获取.offsetWidth属性。但据我所知,它与.width.
window.onload = function() {
var test = document.getElementById("test");
test.addEventListener("click", select);
function select(e) {
var elementID = e.target.id;
var element = document.getElementById(elementID);
var width = element.width;
console.log(element);
console.log(width);
}
}Run Code Online (Sandbox Code Playgroud)
div#test {
position: absolute;
height: 100px;
width: 100px;
background-color: black;
}Run Code Online (Sandbox Code Playgroud)
<div id="test"></div>Run Code Online (Sandbox Code Playgroud)
我的答案
谢谢大家的回答。他们推动我找到自己的简单解决方案,我希望这对我这样的初学者有所帮助。答案是:divDOM 对象没有.width和.height属性,即使您在 CSS 中分配它们并且它们运行良好。为此,它分别具有.style.width和.style.height。但即使您通过 CSS 分配它们,它们也不会出现, element.style除非您有目的地使用 Java Script。因此,要通过 JS获取元素的 …
我正在使用d3js,其中lib根据数据创建节点和链接.在某些地方有一些特定的要求,在同一行添加多个文本,如网址"www.xyz.com/home/user"(此处为3个字符串"www.xyz.com","/ home","/ user").它们不是单独的节点,所以我找不到d3的位置.它只是一个带有3个<tspan>子元素的<text>元素.
<text id="TaxFilingResource_URL" class="label url" dy="24" dx="30">
<tspan id="TaxFilingResource.URL.1">www.xyz.com</tspan>
<tspan id="TaxFilingResource.URL.2">/home</tspan>
<tspan id="TaxFilingResource.URL.3">/user</tspan>
</text>
Run Code Online (Sandbox Code Playgroud)
并在下面显示如下
www.xyz.com/home/user
Run Code Online (Sandbox Code Playgroud)
我需要获取每个<tspan>元素的位置和宽度.我的代码是
var el = document.getElementById(d.source);
x = el.getStartPositionOfChar('').x (or)
x = el.getClientRects().left;
Run Code Online (Sandbox Code Playgroud)
在g元素内的文本上给出相对位置,但在某些浏览器和mac上它将返回绝对位置.
有没有正确的方法可以在JavaScript中找到适用于所有浏览器的tspan的位置和宽度(IE必须>第9版).
