2015-07-09 7 views
18

Я прочитал список компонентов и прочитал предоставленный CSS, но я не вижу упоминания о выбранных блоках - просто регулярные входы; текст, радио, флажок, текстовое поле и т. д.Как отформатировать поле выбора с помощью Material Design Lite?

Как вы используете Material Design Lite с помощью блока выбора? Использование классов для регулярного ввода текста доставит вас на полпути, но это, конечно, неверно.

+0

Обсуждаются проблемы GitHub: https://github.com/google/material-design-lite/issues/854 –

+0

Спасибо. Похоже, они полностью пропустили это. – Chase

+0

Не пропущено, просто не хватает времени, чтобы сделать это для запуска. – Garbee

ответ

12

сейчас, что я сделал меню в JavaScript. Мне все равно нужно было сделать это в JavaScript для моих целей, поэтому было не просто использовать меню вместо выпадающего списка. Надеюсь, вы найдете ее полезной!

<div id="insert-here"></div> 

<script> 
var onSelect = function(){ 
    this.button.innerHTML = this.innerHTML; 
} 

var insertPoint = 'insert-here'; 
var numberOfDropdowns = 0; 
function makeDropdown(options){ 
    // create the button 
    var button = document.createElement('BUTTON'); 
    button.id = numberOfDropdowns; // this is how Material Design associates option/button 
    button.setAttribute('class', 'mdl-button mdl-js-button'); 
    button.innerHTML = 'Default'; 
    document.getElementById(insertPoint).appendChild(button); 

    // add the options to the button (unordered list) 
    var ul = document.createElement('UL'); 
    ul.setAttribute('class', 'mdl-menu mdl-js-menu mdl-js-ripple-effect'); 
    ul.setAttribute('for', numberOfDropdowns); // associate button 
    for(var index in options) { 
    // add each item to the list 
    var li = document.createElement('LI'); 
     li.setAttribute('class', 'mdl-menu__item'); 
     li.innerHTML = options[index]; 
     li.button = button; 
     li.onclick = onSelect; 
     ul.appendChild(li); 
    } 
    document.getElementById(insertPoint).appendChild(ul); 
    // and finally add the list to the HTML 
    numberOfDropdowns++; 
} 

var optionsA = ["a", "b", "c", "d"]; 
makeDropdown(optionsA); 
var optionsB = ["e", "f", "g", "h"]; 
makeDropdown(optionsB); 
</script> 

jsFiddle ссылка: https://jsfiddle.net/zatxzx6b/3/embedded/result/

-1

Пока команда Google работает над этим, мне нужно, чтобы быстро создать и простое решение этой проблемы и написал функцию JavaScript/JQuery:

Material Design Lite--Select

2

Project Polymer от Google и его лучший вариант для различных компонентов, отсутствующих в Material Design lite. Вы можете найти подробную информацию о том, как получить полимерные элементы здесь https://elements.polymer-project.org/guides/using-elements

В частности, вы можете найти выберите выпадающий веб-компонент здесь - https://elements.polymer-project.org/elements/paper-dropdown-menu?view=demo:demo/index.html

+5

Спасибо за подсказку, но это временная раковина для установки/использования Polymer. Если вы не можете установить его, просто включив js и/или css, тогда я не заинтересован ... –

+0

Я бы не назвал полимер «лучшим вариантом» для вещей, не включенных в MDL. Полимер представляет много накладных расходов для простого стиля и добавления поведения к '