2016-09-05 21 views
0

イメージがng-repeatで作成されているカルーセルを持っています。これらのimgタグの幅は100%に設定されています。高さ、オート。ウィンドウのサイズを変更したときにこの値が変化するので、imgタグの高さをプログラムで取得するにはどうすればよいですか?試しましたng-repeatで生成されたimgタグの高さを取得

$('#home-carousel img').load(function(){ 
    console.log($(this).height()); 
}) 

ですが、その時点でimgsが存在しないため動作しません。

<div style="position:absolute; top:0px; z-index:-1" id="home-carousel" class="carousel slide" data-ride="carousel"> 

    <!-- Here's where the problem is --> 
    <div class="carousel-inner" role="listbox"> 
    <div ng-repeat="slide in slides track by $index" class="item" ng-class="{active: $index == 0 }"> 
     <img src="{{slide.imgUrl}}"> 
    </div> 
    </div> 

はEDIT:わかりましたので、私は手の込んだせ ここで私が働いているコードです。これは私が達成しようとしているものです: ペイントバケツのイメージは、このイメージでどのように見えるか正確に並んでいるはずです。背景画像の終了位置右の底部に

問題は、ウィンドウのサイズが変更されたとき、画像の幅は、100%であるので、これは何が起こるかです。だから私がしたいのは、カルーセルのimg画像の高さを取得し、それに基づいて塗料バケットを配置することです。

+1

と下右該当しないで、あなたが取得し、高さを使用しますか?コードスニペットでフィドルなどを作成できますか? –

+0

私たちはあなたを助けることができるようにフィドルを提供します – que1326

答えて

0

Angular's ng-srcを見てください。
また、クイック検索の後、私はthisに出くわしました。これは役に立つかもしれません。

+0

ng-srcのチップありがとう。この問題は解決しませんが、srcを使用するよりも優れています。 – digiwebguy

+0

と他のリンクも非常に有用でした。私はイメージが完全に読み込まれているかどうかを検出する方法を常に疑問に思っていました。再度、感謝します – digiwebguy

0

わかりましたので、私はこれを行うことによって、これを解決: はまず、私はそれが最初

<div style="position:absolute; top:0px; z-index:-1" id="home-carousel" class="carousel slide" data-ride="carousel"> 

    <!-- Wrapper for slides --> 
    <div class="carousel-inner" role="listbox"> 
    <div ng-repeat="slide in slides track by $index" class="item" ng-class="{active: $index == 0 }"> 
     <img ng-src="{{slide.imgUrl}}" imageonload="imageLoaded()"><!--here--> 
    </div> 
    </div> 
</div> 

をロードされる際にimgタグの初期高さを得るためにBraden1996のlink @使用ここではjavascriptのだ:

$scope.imageLoaded = function(){ 
    $('.grid-container').css('margin-top',$('#home-carousel').height()-100); 
} 

その後、ウィンドウのサイズを変更するたびに塗料バケットの位置を変更しました。

$(window).resize(function(){ 
    $('.grid-container').css('margin-top',$('#home-carousel').height()-100); 
}) 

NB:-100はそうバケットが背景画像

関連する問題