selectstyle.moxes.js is jQuery plugin which replaces the <select> tag with stylable div ans span boxes, but continue to act as select box.
<script type="text/javascript" src="selectstyle.moxes.js"></script>
<select name="foo">
<option value="1">First value</option>
<option value="2">Second value</option>
</select>
<script>$('select').selectstyle();</script>
This code generates:
<span class="ssm-holder ssm-open"> // ssm-open if the span is open
<div class="ssm-current ssm-hover"></div> // ssm-hover if the span is open
<div class="ssm-values">
<div rel="1">First value</div>
<div rel="2" class="ssm-selected">Second value</div>
// ssm-selected if selected value
</div>
</span>
Example 1:
HTML:
<select name="example1" id="example1" class="example1" onchange="alert( this.value )">
<option value="1">Value value 1</option>
<option value="2">Value value 2</option>
<option value="3">Value value 3</option>
<option value="4">Value value 4</option>
</select>
<script>$('#example1').selectstyle();</script>
CSS:
.example1 .ssm-current, .example1 .ssm-option {
background: #444;
padding: 4px 8px;
cursor: pointer;
}
.example1 .ssm-option:hover {
color: #fff;
}
Example 2 (Fade effect):
HTML:
<select name="example2" id="example2" class="example2">
<option value="1">Value value 1</option>
<option value="2">Value value 2</option>
<option value="3">Value value 3</option>
<option value="4">Value value 4</option>
</select>
<script>$('#example2').selectstyle({effect: 'fade'});</script>
CSS:
.example2 .ssm-current, .example2 .ssm-option {
background: #444;
padding: 4px 8px;
cursor: pointer;
}
.example2.ssm-open .ssm-current, .example2.ssm-open .ssm-option {
background: rgba( 130, 130, 130, 0.8 );
}
.example2 .ssm-option:hover {
background: rgba( 80, 80, 80, 0.8 );
}
Example 3 (Slide effect):
HTML:
<select name="example3" id="example3" class="example3">
<option value="1">Value 1</option>
<option value="2">Value 2</option>
<option value="3">Value 3</option>
<option value="4">Value 4</option>
</select>
<script>$('#example1').selectstyle({ effect: 'slide' });</script>
CSS:
.example3 .ssm-current, .example3 .ssm-values {
background: #444;
border-radius: 5px;
border: 1px solid #666;
cursor: pointer;
}
.example3.ssm-open .ssm-current, .example3.ssm-open .ssm-values {
background: rgba( 50, 50, 50, 0.8 );
}
.example3 .ssm-current, .example3 .ssm-option {
padding: 4px 8px;
white-space: nowrap;
}
.example3 .ssm-values {
padding-bottom: 4px;
border-width: 0 1px 1px 1px;
border-top-left-radius: 0;
border-top-right-radius: 0;
}
.example3 .ssm-hover {
border-bottom-left-radius: 0;
border-bottom-right-radius: 0;
}
.example3 .ssm-selected, .example3 .ssm-values div:hover {
background: rgba( 90, 90, 90, 0.6 );
}
Example 4 (With images):
HTML:
<select name="example4" id="example4" class="example4">
<option value="1" data-image="/data/uploads/gallery/flags/gb.png">United Kingdom</option>
<option value="2" data-image="/data/uploads/gallery/flags/us.png">United states</option>
<option value="3" data-image="/data/uploads/gallery/flags/bg.png">Bulgaria</option>
</select>
<script>$('#example4').selectstyle({effect: 'slide', width: 'auto'});</script>
CSS:
.example4 .ssm-current, .example4 .ssm-option {
background: #111;
padding: 4px 8px;
line-height: 32px;
}
.example4 .ssm-option, .example4 .ssm-current {
white-space: nowrap;
width: 150px;
cursor: pointer;
}
.example4 img {
vertical-align: middle;
margin-right: 4px;
}
.example4 .ssm-option:hover {
background: #333;
}