English 中文(简体)
我怎么能够迫使WebKit重新编辑/复制,宣传风格的变化?
原标题:How can I force WebKit to redraw/repaint to propagate style changes?

我有几句 tri语,以改变风格:

sel = document.getElementById( my_id );
sel.className = sel.className.replace(/item-[1-9]-selected/, item-1-selected );
return false;

该公司与最新版本的FF、OME和IEE公司合作,但 latest和Sato公司的最新版本没有成功。

它影响到两名兄弟的后代。 第一个比较新版本,但第二个版本没有。 第二个要素中的一名儿童也关注并包含<a> 标签,在<<>onclick属性中包含上述代码。

在 Chrome“开发工具”窗口中,如果I nudge(如uncheck &eck)anyvide of any <>/em> 元件,则第二套纤维更新以纠正风格。

是否有工作要做,容易和有方案地“判断”网上Kit做正确的事?

最佳回答

我发现了一些复杂的建议和许多简单的建议,它们没有做任何工作,但通过Vasil Dinkov对其中一项建议的评论提供了简单的解决办法,即强迫进行重raw/重rep,只做罚款:

sel.style.display= none ;
sel.offsetHeight; // no need to store this anywhere, the reference is enough
sel.style.display=  ;

如果有人用“锁定”以外的风格行事,我就请其他人发表意见。

感谢、感谢!

问题回答

我们最近碰到这一点,并发现,将受影响内容提升到composite、translateZ,在CSS中将这一问题固定下来,无需额外的 Java。

.willnotrender { 
   transform: translateZ(0); 
}

由于这些绘画问题主要出现在Webkit/Blink,而这一办法主要针对的是Webkit/Blink,因此在某些情况下比较可取。 特别是,由于接受的回答几乎肯定会产生 /reflow和 repaint,not 仅是一次复临。

Webkit和Blink一直在努力提高性能,这些冰川是旨在减少不必要流动和油漆的优化的不幸副作用。 安保部将改变,否则,今后将是最有可能的解决办法。

实现一个综合层次还有其他办法,但这是最常见的办法。

北方解决办法对我来说不可行。 我确实存在一些棘手的问题,即:网点总会引出一些内容;投入案文在版面上经过更新,直到模棱两可;而改变类别Name不会导致重选。

我意外地发现,我的解决办法是,在文字之后,给身体添加一个空洞的风格。

<body>
...
<script>doSomethingThatWebkitWillMessUp();</script>
<style></style>
...

这决定了这一点。 怎么说? 希望对人们有益。

由于显示+被抵消的触发点对我来说是徒劳的,我在此找到解决办法:

http://mir.aculo.us/2009/09/25/force-redraw-dom-technique-for-webkit-browsers/

i.e.

element.style.webkitTransform =  scale(1) ;

我正遭受同样的问题。 在我直言的一步职职能中,Danorton的行乞显示器确实为我工作,但我对表现感到关切,我还寻找其他选择。

在我的情况下,原封不动的要素属于绝对立场要素,而当时并没有z-index。 将z和再油漆添加到这一元素中,改变了 Chrome和 re的表现,因为预期——和大体;动画变得平稳。

我怀疑这是灵丹妙药,我想它取决于why。 Chrome选择不重覆.,但我把这一具体解决办法放在这里,希望有人帮助。

Cheers, Rob

<>strong>tl;dr >> Try Plus a z-index to the content or a soil.

以下著作: 只必须在纯粹的中央安全局内确定一次。 而且,它比一项联合调查职能更为可靠。 业绩似乎不受影响。

@-webkit-keyframes androidBugfix {from { padding: 0; } to { padding: 0; }}
body { -webkit-animation: androidBugfix infinite 1s; }

出于某种原因,我无法得到达诺顿的工作答案,我可以看到,应该做的是做些什么,我把它 t住了一点:

$( #foo ).css( display ,  none ).height();
$( #foo ).css( display ,  block );

它为我工作。

今天我 st倒了:http://ajaxian.com/archives/forcing-a-ui-red-from-javascript”>Element.redraw()用于原型。

使用:

Element.addMethods({
  redraw: function(element){
    element = $(element);
    var n = document.createTextNode(   );
    element.appendChild(n);
    (function(){n.parentNode.removeChild(n)}).defer();
    return element;
  }
});

然而,我有时注意到,你必须直接要求重新思考问题。 有时,重新调整父母一方就没有解决儿童面临的问题。

http://www.phpied.com/rendering-repaint-reflowrelayout-reet/>。 投标:重整、再流通/延期、改型

我有这个问题,在另一个编目中插入了几个编目:绝对,插入的编目没有位置。 当我改为<条码>时:相对的,该编码有效。 (实际上难以确定问题)

在我的情况中,安插在ng-repeat上的内容。

我认为,这在2014年仍然是一个问题。 我在重新设置一个固定职位封顶箱时,在滚动时,就没有这个问题了,封顶会打上屏幕。 在尝试了上述所有事项之后,我注意到,许多事情要么是缓慢的,要么是因为造成了非常短暂的多功能的电离层流,等等,造成一些不自然的情绪roll升......

我最后定出一个固定职位,满载pointer-events:无,并对这个要素适用达诺顿的回答,这似乎迫使整个屏幕上重新布局,而不干扰OM。

传真:

<div id="redraw-fix"></div>

CSS:

div#redraw-fix {
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 25;
    pointer-events: none;
    display: block;
}

JS:

sel = document.getElementById( redraw-fix );
sel.style.display= none ;
sel.offsetHeight; // no need to store this anywhere, the reference is enough
sel.style.display= block ;

我使用<代码>transform: 翻译Z(0);方法,但在有些情况下还不够。

I m 不要增加和取消一类人,这样一来试图找到办法解决这一问题,最后用一部新的黑板来运作良好:

@keyframes redraw{
    0% {opacity: 1;}
    100% {opacity: .99;}
}

// ios redraw fix
animation: redraw 1s linear infinite;

这不是这个问题需要另一个答案,但我发现,光凭一线改变肤色就迫使我重新回到自己的特定局势。

//Assuming black is the starting color, we tweak it by a single bit
elem.style.color =  #000001 ;

//Change back to black
setTimeout(function() {
    elem.style.color =  #000000 ;
}, 0);

事实证明,在目前活动周期之外,将第二行作改动的关键是<条码>>准时<>。

我的唯一解决办法与“ so积的2012年”答案相似:

$( body ).css( display ,  table ).height();
$( body ).css( display ,  block );

I have a lot of problem blocks on page, so I change display property of root element. And I use display: table; instead of display: none;, because none will reset scrolling offset.

既然每个人都似乎有自己的问题和解决办法,我就认为我还要做一些事情。 在Antoine 4.1和目前的“ Chrome”一带,试图在四舍五入的地块内 d一vas:藏匿,除非我给母 d添加一个成分(如果它不会造成任何伤害)。

var parelt = document.getElementById("parentid");
var remElt = document.getElementById("removeMe");
var addElt = document.createElement("div");
addElt.innerHTML = " "; // Won t work if empty
addElt.id="removeMe";
if (remElt) {
    parelt.replaceChild(addElt, remElt);
} else {
    parelt.appendChild(addElt);
}

没有插头或实际更新,在自己之后进行清理。 没有一个全球或阶层范围很广的变量,仅是地方变量。 似乎在移动式Sosa/iPad或台式浏览器上伤害任何东西。

我正准备在几个屏幕上进行ionic html5 ,上面有absolute 的定位元件,在IOS装置中进行滚动或缩小时(iPhone 4,5,6, 6+)i有 re。

除了解决我的问题外,他们当中没有一个是可行的。

我使用了这些绝对职位要素的类别<代码>。

.fixRepaint{
    transform: translateZ(0);
}

这使我的问题固定下来,这可能有助于某个人。

This answer is for those, who is struggling with @danorton s solution using Angular 10. This solution

sel.style.display= none ;
sel.offsetHeight;
sel.style.display=  ;

works for me only with "buildOptimizer": false in angular.json file. Looks like optimizer breaks this somehow.

这是对联邦统计局的罚款。

sel.style.display= none ;
sel.offsetHeight; // no need to store this anywhere, the reference is enough
sel.style.display= block ;

但是,在吉克里,特别是在你只能使用(文件)美元的时候。 由于任何特殊原因,下列物体随时可得且不能对物体的载荷进行约束:

You need to get the OUTER(MOST) container of the objects/divs and then remove all its contents into a variable, then re-add it. It will make ALL changes done within the outer container visible.

$(document).ready(function(){
    applyStyling(object);
    var node = $("div#body div.centerContainer form div.centerHorizontal").parent().parent();
    var content = node.html();
    node.html("");
    node.html(content);
}

我发现,这种方法在与过渡部门合作时是有用的。

$element[0].style.display =  table ; 
$element[0].offsetWidth; // force reflow
$element.one($.support.transition.end, function () { 
    $element[0].style.display =  block ; 
});

在我的案件中,“显示/抵消”黑板至少当适用于正在燃烧的元素时,就没有工作。

i 滚动菜单在页面内容上开放/关闭。 在菜单关闭后,工艺品被放在网页内容上(只放在网上浏览器上)。 “显示/输出”舱的唯一工作方式是,如果它适用于看来是新生的体。

然而,我确实找到了另一种解决办法:

  1. before the element starts animating, add a class that defines "-webkit-backface-visibility: hidden;" on the element (you could also use inline style, i d guess)
  2. when it s done animating, remove the class (or style)

这仍然很粗略(它使用CSS3财产来强迫硬件制造),但至少只影响有关内容,并为我工作,在PC和Mac的聋.和神.。

以上建议对我很有帮助。 但如下。

必须积极改变案文。 “等级”一词。 创立了一个内端“font”,其背后特性。 用javascript(以下)管理内容

Search

文字内容:

    var searchText = "Search";
    var editSearchText = "Edit Search";
    var currentSearchText = searchText;

    function doSearch() {
        if (currentSearchText == searchText) {
            $( #pSearch ).panel( close );
            currentSearchText = editSearchText;
        } else if (currentSearchText == editSearchText) {
            $( #pSearch ).panel( open );
            currentSearchText = searchText;
        }
        $( #searchtxt ).text(currentSearchText);
    }

我与特别安全小组有一个问题,即在某些情形下改变方向时, Chrome正在消失。 下面的法典照搬了它,但是我们已经建立的。

body {
  font-family: tahoma, sans-serif;
  font-size: 12px;
  margin: 10px;
}
article {
  display: flex;
}
aside {
  flex: 0 1 10px;
  margin-right: 10px;
  min-width: 10px;
  position: relative;
}
svg {
  bottom: 0;
  left: 0;
  position: absolute;
  right: 0;
  top: 0;
}
.backgroundStop1 {
  stop-color: #5bb79e;
}
.backgroundStop2 {
  stop-color: #ddcb3f;
}
.backgroundStop3 {
  stop-color: #cf6b19;
}
<article>
  <aside>
    <svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" height="100%" width="100%">
      <defs>
        <linearGradient id="IndicatorColourPattern" x1="0" x2="0" y1="0" y2="1">
          <stop class="backgroundStop1" offset="0%"></stop>
          <stop class="backgroundStop2" offset="50%"></stop>
          <stop class="backgroundStop3" offset="100%"></stop>
        </linearGradient>
      </defs>
      <rect x="0" y="0" rx="5" ry="5" width="100%" height="100%" fill="url(#IndicatorColourPattern)"></rect>
    </svg>
  </aside>
  <section>
    <p>Donec et eros nibh. Nullam porta, elit ut sagittis pulvinar, lacus augue lobortis mauris, sed sollicitudin elit orci non massa. Proin condimentum in nibh sed vestibulum. Donec accumsan fringilla est, porttitor vestibulum dolor ornare id. Sed elementum
      urna sollicitudin commodo ultricies. Curabitur tristique orci et ligula interdum, eu condimentum metus eleifend. Nam libero augue, pharetra at maximus in, pellentesque imperdiet orci.</p>
    <p>Fusce commodo ullamcorper ullamcorper. Etiam eget pellentesque quam, id sodales erat. Vestibulum risus magna, efficitur sed nisl et, rutrum consectetur odio. Sed at lorem non ligula consequat tempus vel nec risus.</p>
  </section>
</article>

日复一日半,在 p和 pro晚,对这里提出的hacky解决办法表示不满意之后,我发现,这个问题的起因是,这个问题似乎在记忆中,却引出新的内容。 解决办法是使特别志愿人员小组的线人身份识别成为独一无二的,尽管它只是每页使用一次。

这可以实现许多不同的方式,但对于我们来说,我们使用的是独木舟。 扩大范围的功能:

《普通指令》:

scope.indicatorColourPatternId = _.uniqueId( IndicatorColourPattern );

传真 最新情况:

第5行:<linear Gradient ng-attr-id=”{{indicatorColourPatternI>×1=“0” y1=“0” y2=”1>

第11条

我希望,这一答案能够拯救其他人一个值得面对面的日子。

我发现,仅仅在迫使其复职的内容中增加内容风格,每当你想要重新思考时,就应当具有不同的价值,而不需要花钱。

.selector {
    content:  1 
}

I tried morewry answer but it does not work for me. I had trouble to have the same clientWidth with safari comparing to others browsers and this code solved the problem:

var get_safe_value = function(elm,callback){
    var sty = elm.style
    sty.transform = "translateZ(1px)";
    var ret = callback(elm)//you can get here the value you want
    sty.transform = "";
    return ret
}
// for safari to have the good clientWidth
var $fBody = document.body //the element you need to fix
var clientW = get_safe_value($fBody,function(elm){return $fBody.clientWidth})

It is really strange because if I try again to get the clientWidth after get_safe_value, I obtain a bad value with safari, the getter has to be between sty.transform = "translateZ(1px)"; and sty.transform = "";

最终发挥作用的其他解决办法是

var $fBody = document.body //the element you need to fix
$fBody.style.display =  none ;
var temp = $.body.offsetHeight;
$fBody.style.display = ""
temp = $.body.offsetHeight;

var clientW = $fBody.clientWidth

问题在于,你失去重点,失去了发展。

该法典将重新招标。

 document.body.style.display =  flex ;
 setTimeout(() => (document.body.style.display =   ), 0);

把CSS改为pl(0.9999),显然是在最新一代的神学院工作。

function redraw(node){
     // Adjust the 200 as fastest as you can
     // or, change the setTimeout to requestAnimationFrame as soon as the element
     // is drawn
     setTimeout(() => (node.style.transform = "scale(0.9999)"), 200);
}

I also faced the same issue working with Angular 10. I tried many solutions but nothing seems to be working. The fix which worked for me is handling it through JS. I just removed the element from DOM and added again using ngIf.

<>光>:

<div *ngIf="showElement">
  Contents of your element
</div>

www.un.org/Depts/DGACM/index_french.htm

this.showElement = false;
setTimeout(() => {
  this.showElement = true;
}, 10);




相关问题
CSS working only in Firefox

I am trying to create a search text-field like on the Apple website. The HTML looks like this: <div class="frm-search"> <div> <input class="btn" type="image" src="http://www....

jquery ui dialog opens only once

I have a button that opens a dialog when clicked. The dialog displays a div that was hidden After I close the dialog by clicking the X icon, the dialog can t be opened again.

Drop down background url in Safari Issue

selectBox.selectCSS { background: url(/Images/replacementSelectBackground.png) top left no-repeat height:auto; } I have an issue in Safari only where the image is not rendering on top ...

CSS specific for Safari

How do you target specifically safari in css with styles?

Aligning textarea in a form

Ive used the following css code to align my form elements: form { position:relative; } form input { position:absolute; left:11em; } However, the textarea element is not aligned correctly with the ...

Firefox background image horizontal centering oddity

I am building some basic HTML code for a CMS. One of the page-related options in the CMS is "background image" and "stretch page width / height to background image width / height." so that with large ...

CSS problem with page footer

I have defined my page footer in the css file as: #footer { position: absolute; height: 50px; text-align: center; background: #66CCCC; bottom: 0px; left: 0px; width: 100%; height: ...

热门标签