<div class="c-multiselect c-form ">
<button type="button" class="c-multiselect__button js-toggleMultiSelectBtn" aria-expanded="false" aria-label="Seleziona le compagnie aeree" aria-controls="aria-MultiSelectOptions">
<span>Tutte le compagnie aeree</span>
<img src="../../images/svgs/arrow-down-blue.svg" aria-hidden="true" alt="">
</button>
<div class="c-multiselect__options js-multiselectOptions" role="region" aria-live="polite" id="aria-MultiSelectOptions">
<input type="checkbox" id="alitalia" name="alitalia" class="u-visuallyhidden " role="group" aria-label="alitalia">
<label for="alitalia" class="">
Alitalia
</label> <input type="checkbox" id="ryanair" name="ryanair" class="u-visuallyhidden " role="group" aria-label="ryanair">
<label for="ryanair" class="">
Ryanair
</label> <input type="checkbox" id="emirates" name="emirates" class="u-visuallyhidden " role="group" aria-label="emirates">
<label for="emirates" class="">
Emirates
</label> <input type="checkbox" id="klm" name="kml" class="u-visuallyhidden " role="group" aria-label="klm">
<label for="klm" class="">
KLM
</label> <input type="checkbox" id="delta" name="delta" class="u-visuallyhidden " role="group" aria-label="delta">
<label for="delta" class="">
Delta Airlines
</label> <input type="checkbox" id="lufthansa" name="lufthansa" class="u-visuallyhidden " role="group" aria-label="lufthansa">
<label for="lufthansa" class="">
Lufthansa
</label> <input type="checkbox" id="airdolomiti" name="airdolomiti" class="u-visuallyhidden " role="group" aria-label="airdolomiti">
<label for="airdolomiti" class="">
Air Dolomiti
</label>
</div>
</div>
<div class="c-multiselect c-form {{ modifier }}">
<button type="button" class="c-multiselect__button js-toggleMultiSelectBtn" aria-expanded="false" aria-label="{{ aria-label }}"
aria-controls="aria-MultiSelectOptions">
<span>{{ exposed-text }}</span>
<img src="{{ path '/images/svgs/arrow-down-blue.svg' }}" aria-hidden="true" alt="">
</button>
<div class="c-multiselect__options js-multiselectOptions" role="region" aria-live="polite" id="aria-MultiSelectOptions">
{{#each options}} {{> @checkbox }} {{/each}}
</div>
</div>
{
"exposed-text": "Tutte le compagnie aeree",
"aria-label": "Seleziona le compagnie aeree",
"options": [
{
"id": "alitalia",
"name": "alitalia",
"text": "Alitalia"
},
{
"id": "ryanair",
"name": "ryanair",
"text": "Ryanair"
},
{
"id": "emirates",
"name": "emirates",
"text": "Emirates"
},
{
"id": "klm",
"name": "kml",
"text": "KLM"
},
{
"id": "delta",
"name": "delta",
"text": "Delta Airlines"
},
{
"id": "lufthansa",
"name": "lufthansa",
"text": "Lufthansa"
},
{
"id": "airdolomiti",
"name": "airdolomiti",
"text": "Air Dolomiti"
}
]
}
.c-multiselect {
position: relative;
min-width: remify(280px);
max-width: remify(680px);
color: primary(night, 60);
}
.c-multiselect__button,
.c-multiselect__options {
width: 100%;
}
.c-multiselect__button {
-webkit-appearance: none;
background-color: #fff;
border: 1px solid primary(sky, 20);
color: primary(night, 60);
font-weight: fw(regular);
border-radius: remify(12px);
padding: remify(12px) remify(16px);
display: flex;
align-items: center;
justify-content: space-between;
text-align: left;
}
.c-multiselect__button[aria-expanded="true"] {
img {
transform: rotate(180deg);
}
}
.c-multiselect__options {
display: none;
background-color: #fff;
@include shadow(small);
padding: remify(16px);
position: absolute;
max-height: remify(250px);
overflow: auto;
z-index: $zIndex-multiselect;
&.is-visible {
display: block;
}
&>* {
display: block;
width: 100%;
}
}
(function($){
'use strict';
if(!$.tangible){
$.tangible = new Object();
};
$.tangible.multiSelect = function(el, options){
var base = this;
base.$el = $(el);
base.el = el;
base.init = function(){
base.$btnMultiSelect = $('.js-toggleMultiSelectBtn');
base.$multiSelectOptions = $('.js-multiselectOptions');
// Opens the box of options
base.$btnMultiSelect.click(function(e){
e.preventDefault();
base.$multiSelectOptions.toggleClass('is-visible');
// Switches the state of aria-expanded
var expanded = $(this).attr('aria-expanded') === 'true' || false;
$(this).attr('aria-expanded', !expanded);
});
};
base.init();
};
$.fn.tangible_multiSelect = function(options){
return this.each(function(){
(new $.tangible.multiSelect(this, options));
});
};
})(jQuery);
No notes defined.