相关疑难解决方法(0)

从样式设置为%的元素获取宽度(以像素为单位)?

我有这个元素:

<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实际获取元素的宽度(以像素为单位)?

html javascript css

60
推荐指数
3
解决办法
11万
查看次数

在AngularJS中获取没有JQuery的HTML元素高度

我熟悉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中执行此操作?

谢谢!

css angularjs

47
推荐指数
2
解决办法
9万
查看次数

如何最好地将ClientRect/DomRect转换为普通对象

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)

我的问题是,有更好的方法吗?

javascript dom getboundingclientrect

15
推荐指数
4
解决办法
6150
查看次数

CSS - 使用计算(),以保持要素相同的宽度

是这样的可能在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()或其他方法?

html css calc css3

13
推荐指数
2
解决办法
5万
查看次数

如何在angular2中获得Dom的高度?

<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的高度渲染后得到元素的高度/宽度?

ionic2 angular

12
推荐指数
2
解决办法
2万
查看次数

没有jquery我需要找出鼠标是否在元素上,而不是确定它何时结束(如果它没有移动到触发onmouseover)

没有jquery

基本上我正在寻找的是能够在倒计时结束时查看鼠标是否超过div

如果用户在div上,则执行该div的操作

onmouseover 只有当鼠标超过div的阈值时才会触发,如果鼠标没有移动则不会触发,因此无效

我需要确定鼠标当前是否在特定时间点的div上,如果它已经从起点移动了

我的所有狩猎都只找到了onmousover,如果鼠标恰好在那里开始的话,没有什么可看的

我没有javascript技能来确定div的整体坐标,然后映射鼠标坐标,看它是否适合那里...这是我认为我需要做的

javascript

7
推荐指数
2
解决办法
2万
查看次数

如何计算 HTML 元素内容的可见高度和宽度?

我正在使用 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)

html javascript css puppeteer

5
推荐指数
2
解决办法
7711
查看次数

反复减小div的宽度

<div>每次调用JavaScript函数时,我都需要将特定的宽度缩小50px.

我试过了

document.getElementById("Zivot").style.width = "100px";
Run Code Online (Sandbox Code Playgroud)

但这只是设置宽度,而不是添加或减去它.

html javascript html5 css3

4
推荐指数
1
解决办法
61
查看次数

不同像素密度的 Html Canvas

我希望有人可以帮助解决这个问题,因为我似乎找不到可靠的解决方案。

是否有框架或通用设置可以很好地呈现 html 画布,并且在不同的像素密度下以正确的大小呈现?

我明白为什么这个问题存在。我已经进行了非常彻底的搜索,所以如果之前多次问过这个问题,我很抱歉,但我仍然没有看到一个强大的解决方案。

补充:为了澄清,画布渲染在视网膜屏幕上看起来很模糊,我想有一种方法可以让渲染无论在哪里查看都看起来清晰。Fabric 框架看起来很棒,但他们的演示在我的视网膜屏幕上看起来仍然很模糊。

html javascript retina-display html5-canvas

3
推荐指数
2
解决办法
3304
查看次数

使用 Javascript 将 div 居中

我正在尝试将 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)

html javascript height width

1
推荐指数
1
解决办法
7174
查看次数

为什么 div DOM 对象没有高度和宽度属性

我是初学者编码器。可能很简单,但我试图找到答案并没有成功。我的问题是为什么对象的属性widthheight属性都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获取元素的 …

html javascript css

1
推荐指数
1
解决办法
649
查看次数

如何获取tspan元素的位置和宽度

我正在使用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版). 在此输入图像描述

html javascript svg d3.js

0
推荐指数
1
解决办法
1480
查看次数