getBoundingClientRect
全部标签 我在我的网站上嵌入了亚马逊联属网络原生搜索广告。当我在我的开发笔记本电脑上测试它时,“搜索广告”显示没有任何问题。但是部署到hostingProvider时,遇到runtimeerror,amazonsearchAd不显示。请在这里帮忙。错误:UncaughtTypeError:Cannotreadproperty'getBoundingClientRect'ofnullatObject.v.getAAXUrl(onejs?MarketPlace=US:1)atObject.render(onejs?MarketPlace=US:1)atonejs?MarketPlace=US:1v.
今天我测试了当你使用getBoundingClientRect()时会发生什么在已旋转的SVG元素上。测试:http://phrogz.net/svg/getBoundingClientRect-on-rotated-elements.html结果是:Chrome、Safari、Opera和IE似乎计算元素的本地(未转换的)边界框,然后返回该边界框的客户端rect。这可能导致客户端矩形比看起来合适的大。另一方面,Firefox裁剪客户端矩形以适合元素本身。根据规范,哪种行为是正确的?为了它的值(value),我prefertheFirefoxbehavior,但(不了解规范)认为Fir
我刚刚发现并非常喜欢getBoundingClientRect,因为它包含亚像素精度。这使我能够创建一致的对齐方式,即使用户键入Ctrl+或Ctrl+-。它有属性top,bottom,left,right,&width&高度。在Internet上很容易找到浏览器支持,但对于width和height属性来说却不是那么容易。这似乎是事后添加的。它适用于Firefox、Chrome和IE10,但IE8和IE9呢?我不能方便地测试这些。 最佳答案 在IE9和IE8中:document.body.getBoundingClientRect()
我想获取元素相对于窗口的位置(固定位置)。这是我到目前为止所得到的:(function($){$.fn.fixedPosition=function(){varoffset=this.offset();var$doc=$(document);return{'x':offset.left-$doc.scrollLeft(),'y':offset.top-$doc.scrollTop()};};})(jQuery);$('#thumbnailsimg').click(function(){varpos=$(this).fixedPosition();console.log(pos);});
getBoundingClientRect()返回元素在转换后屏幕上的坐标。如何在转换之前计算这些坐标?即没有转换。我发现的最简单的方法是:element.style.transform='none';//temporarilyresetthetransformvaruntransformedOffset=element.getBoundingClientRect().top;//getthevalueelement.style.transform='';//setitback但这会导致缓慢的布局抖动,如果在许多元素上完成时尤其明显。现场演示:http://jsbin.com/nibi
我想检索应用了CSS3转换的div的大小。-webkit-transform:scale3d(0.3,0.3,1);因此,实际上我已将元素设为其原始大小的30%。但是,当我查询元素的宽度/高度时,它会报告元素在应用转换之前的大小。我知道这实际上是正确的行为,元素实际上不会改变大小,但它的内容会。但是,我在这里问的原因是,如果我右键单击该元素并从弹出菜单中选择“检查元素”(我刚才在Mac上使用Safari),该元素将突出显示并且呈现的大小显示在附加到元素的浏览器工具提示中。因此,这表明浏览器“知道”呈现的大小,但我还没有找到访问此信息的方法。谁能帮帮我? 最佳
我想在javascript(或jquery短代码)中获得我的样式元素的真实X和Y位置。varoffset=obj.offset();ox=offset['left'];oy=offset['top'];px=parseInt(obj.css('padding-left'));//paddingleftpy=parseInt(obj.css('padding-top'));//paddingtopbx=parseInt(obj.css('border-width'));//strokevalueox=ox+px+bx;oy=oy+py+bx;但是这个代码有时不起作用..当scroolto
iPhoneMobileSafari似乎缺少element.getBoundingClientRect。iPhoneMobileSafari上的等效方法是什么?iPad上有这种方法。 最佳答案 编辑1:此代码(webkitConvertPointFromNodeToPage)仅适用于非常旧和过时的手机...参见thesecomments.编辑2:我不建议您使用此代码...我记得更改它以处理带有触摸缩放的IE10的一些问题。我会尽量记住用修复更新代码。是:我认为以下适用于IE6+、FF3+、Safari2+(桌面和移动)、Chrome
someElement.getBoundingClientRect()的结果返回一个类型为ClientRect(或显然是DomRect)的特殊对象)它的结构类似于{top:10,right:20,bottom:30,left:10,width:10}不幸的是,这个对象的行为与其他对象不太一样。例如,在其上使用Object.keys返回一个空数组(我认为是因为ClientRect属性不是可枚举的我发现了一些转换为普通对象的肮脏方法:varobj={}for(keyinrect){obj[key]=rect[key]}我的问题是,有更好的方法吗? 最佳答案
有没有办法获取文本节点的边界矩形?getBoundingClientRect()方法仅在元素上定义,父元素比实际文本节点大。 最佳答案 如果您不需要支持IE8或更早版本,您可以使用Range至selectthetextnode,然后直接从Range中获取边界矩形。示例(应在此页面中工作):vartext=document.querySelector('#question-header.question-hyperlink').childNodes[0];varrange=document.createRange();range.se