2017-06-29 4 views
0

私は面白い互換性の問題があります。もちろんobject-fit:coverはMS EdgeとIEでは動作しないので、回避策を見つけることを試みてきました。しかし、javascript経由でng-repeatを使って作成した画像にはアクセスできないようです。オブジェクトフィットの代替ソリューション? (AngularJS&ng-repeat)

コントローラからイメージスタイルを編集できますが、querySelector( 'img')は常にnullを返します。

はHERESにHTML:

<div class="js-image" id="danCarousel" style="height: 600px; width: 100%; background-color: grey;"> 
<!-- carousel image --> 
<img ng-show="loaded" class="cimg {{fadeAnimation}}" ng-repeat="slide in slides" 
    ng-if="isCurrentSlideIndex($index)" ng-src="{{slide.src}}" style="position: absolute; 
    height: 100%; width: 100%; object-fit: cover; float: left; "/> 

そして、ここではJavascriptです:

danApp.controller('indexController', function($scope, $document, $timeout, QueueService) { 
$scope.state='index'; 

if('objectFit' in document.documentElement.style === false) { 
    console.log("This browser does not support object-fit"); 

    //get the carousel image container 
    var carouselImages = document.getElementsByClassName('js-image'); 

    for(var i=0; i < carouselImages.length; i++) { 

     console.log(i); 
     //get the image source url 
     var imageSrc = carouselImages[i].querySelector('img').getAttribute("ng-src"); 
     console.log(carouselImages[i].querySelector('img')); 

     //hide the image 
     carouselImages[i].querySelector('img').style.display = "none"; 

     //add background-size: cover 
     carouselImages[i].style.backgroundSize = 'cover'; 

     //add in the background image src here 
     carouselImages[i].style.backgroundImage = 'url(' + imageSrc + ')'; 

     //Add background-position: center center 
     carouselImages[i].style.backgroundPosition = 'center center'; 
    } 

    console.log("Compatability settings added."); 
} 
else { 
    console.log('This browser supports object-fit'); 
} 

誰もがこのための解決策を知っていますか?

答えて

0

ng-classを使用して、コントローラの関数を呼び出して適切なクラス名を返すか、クラスプロパティを追加してng-class経由でスライドさせて参照します。

+0

私はこれを試しましたが、まだquerySelectorがnullを返しています:( –

+0

ng-classを使用している場合はquerySelectorを使用する必要はありません。スライドオブジェクトを関数に渡し、スライドから画像の位置を参照してください。 src。 –

関連する問題