У меня есть компонент, который отображает выбор изображений, и у меня есть CSS для «маски наведения», который затем покрывает изображение, отображая некоторую информацию об этом изображении, когда пользователь наводит Это.Ember: изменение размера окна в компоненте
Размеры маски наведения должны совпадать с размерами изображения при первом загрузке приложения и при изменении размера окна.
Вот основной наценка
<div class="call-out-item">
<img src="......">
<div class="hover-mask">Some info about this image</div>
</div>
Вот CSS:
.call-out-item {
position:relative;
display:none;
}
.call-out-item .hover-mask {
position:absolute;
top:0;
left:0;
}
.call-out-item:hover .hover-mask {
opacity: .95;
background: rgba(33,153,232,0.8);
cursor:pointer;
}
Вот мой код компонента (не уверен в правильном использовании Ember.run.next()
!// other component code here
const {$} = Ember;
init() {
this._super(...arguments);
this.handleResize = function() {
let itemWidth = $(".call-out-item img").width();
let itemHeight = parseInt(itemWidth/1.5);
$(".hover-mask").css({"width":itemWidth,"height":itemHeight});
}.bind(this);
Ember.run.next(this, this.handleResize);
$(window).on('resize', Ember.run.bind(this, this.handleResize));
},
// etc etc
Я получаю переменные результаты с помощью этого кода в Chrome и Firefox, поэтому должно быть что-то не так!
вместо 'Ember.run.next', вам должен переопределить элемент 'didInsertElement' вместо' init'. Ember документы [ссылка] (https://www.emberjs.com/api/ember/2.15/classes/Ember.Component/events/didInsertElement?anchor=didInsertElement): «Перекрыть [didInsertElement], чтобы сделать любой набор для которого требуется элемент в документе " – Jimmy