2013-08-20 3 views
0

Я пытаюсь реализовать карусель с использованием Dart Language с несколькими Div, размещенными в родительском div. Когда нажимается правая кнопка, следующий z-индекс div должен быть выше предыдущего, чтобы он отображался. Я сохранил все имена классов divs в arraylist. Теперь может кто-нибудь помочь получить эту работу? HTMLКарусель, увеличивая z-индекс в Dart Language?

<div class="carousel"> 
    <div class="galleryCars"> 
    .... 
    </div> 
    <div class="galleryCars2"> 
    .... 
    </div> 
    <div class="galleryCars3"> 
    .... 
    </div> 
    <div class="galleryCars4"> 
    .... 
    </div> 
</div> 

DART

import 'dart:html'; 
import 'dart:core'; 
void main(){ 
    query(".rightArrow img").onClick.listen((e) => cssRightArrow()); 
    query(".leftArrow img").onClick.listen((e) => cssLeftArrow()); 
} 
cssRightArrow(){ 
    var carousel = query(".carousel"); 
    var classList = []; 
    carousel.children.forEach(
     (childElement) => childElement.classes.forEach(
      (className) => classList.add(className) 
     )); 

    /*for (var i = 0; i < classList.length; i++) {     
    var zIndexElem = query(".${classList[i]}"); 
    var newIndex = int.parse(zIndexElem.style.zIndex) + 10 ; 
    zIndexElem.style.zIndex = "${newIndex}"; 
    }*/ //Not Working 
} 

ответ

2

Вот рабочий пример с style.display = 'none' вместо zIndex (я не думаю, что zIndex хорошо подходит для этого случая использования.):

import 'dart:html'; 

void main(){ 
    query(".rightArrow img").onClick.listen((e) => cssRightArrow()); 
    query(".leftArrow img").onClick.listen((e) => cssLeftArrow()); 
} 
cssRightArrow(){ 
    final elements = query(".carousel").children; 

    // looking for the one currently displayed 
    final Element current = elements.firstWhere((e) => e.style.display != 'none'); 
    final currentIndex = elements.indexOf(current); 

    // hide current and show next one 
    if (currentIndex + 1 < elements.length) { 
    current.style.display = 'none'; 
    elements[currentIndex + 1].style.display = ''; 
    } 
} 
+0

** окончательный элемент ток = элементы.firstW здесь ((e) => e.style.display! = 'none'); ** Здесь мне нужно сделать еще одну абсолютную позицию стиля. Как мне разместить вызов событий? –

+0

'style.display' (используется для отображения типа) и' style.position' (используется для 'абсолютного' позиционирования) - это два разных свойства' style', которые могут быть установлены независимо. –

+0

Спасибо u. Теперь он отлично работает –

 Смежные вопросы

  • Нет связанных вопросов^_^