Мерцание холста при использовании пользовательского интерфейса-всплывающая подсказка начальной загрузки

#angularjs #canvas #angular-ui-bootstrap

#angularjs #холст #angular-ui-bootstrap

Вопрос:

При наведении курсора мыши на элемент, отображающий всплывающую подсказку, холст мерцает. Проблема только в Google Chrome, версия, которую я использую, такова: Version 49.0.2623.112 (64-bit) на Mac.

Поскольку кто-то столкнулся с такой же проблемой.

Код, показывающий всплывающую подсказку

 <div ng-show="model.nbPlay > 0" class="totals-block">
    <div tooltip-placement="right" uib-tooltip="{{model.nbPlay}} plays">
        <i ng-show="model.isPlayed" class="fa fa-play fa-orange"style="margin-left: 2px;"></i>
        <i ng-show="!model.isPlayed" class="fa fa-play" style="margin-left: 2px;"></i>
        <span class="track-nb-stat">{{model.nbPlay}}</span>
    </div>
</div>
  

HTML с холстом

 <div id="canvas-container-{{model.selector}}" class="waveform-container track-height no-overflow">
    <div id="player-container-{{model.selector}}" class="player-container track-height">
        <div id="jquery-jplayer-{{model.selector}}" class="jp-audio" ></div>
        <div id="jp-seek-bar-{{model.selector}}" class="jp-seek-bar track-height">
            <div id="sc-jp-play-bar-{{model.selector}}" class="jp-play-bar sc-jp-play-bar">
                <canvas id="canvas-bg-{{model.selector}}" class="canvas canvas-context" width="1024" height="75" ng-click="play()"></canvas>
                <canvas id="canvas-mouse-{{model.selector}}" class="cursor-canvas canvas-context" width="1024" height="75"></canvas>
                <canvas id="canvas-progress-{{model.selector}}" class="cursor-canvas canvas-context" width="1024" height="75"></canvas>
                <canvas id="canvas-time-{{model.selector}}" class="time-canvas canvas-context" width="1024" height="75"></canvas>
            </div>
        </div>
    </div>
</div>
  

Javascript, который загружает изображение на холст

 loadWaveForm: function (waveform) {
    if (this.getCanvasBgContext()) {
        var that = this;
        var ctx = this.getCanvasBgContext();
        waveform.onload = function () {
            ctx.clearRect(0, 0, that.getCanvasBg().width, that.getCanvasBg().height);
            ctx.drawImage(waveform, 0, 0);
        }
    }
},
  

Комментарии:

1. Основной вопрос, но если вы удалите метод clearRect, он все еще мерцает?

2. @charliebeckwith да, это все еще происходит