Рейтинг темы:
  • 0 Голос(ов) - 0 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
[Плагин] Красивый <select> от JS
#1



Создавал свой текстовый редактор и решил создать к нему красивый тэг <select> на основе JaveScript. Плагин работает с поддержкой jQuery (моя текущая версия 1.9.1). Я подробно расскажу как им пользоваться.

1. Вместо привычного тега <select> мы создадим следующие:

Сюда мы записываем значение нашего select (он скрыт). Обратите внимание! Значение атрибута id имеет значение 'name_value', где name - это имя ID-а нашего select-а, а '_value' - это обязательная приставка для различия и родственности!
<input type="hidden" id="name_value">

А это и есть наш select с именем ID-а 'name'.
<div id="name" class="select"></div>

Классу 'select', который мы так же указали выше, назначим основной стиль тега select.

[SRC="css"]
/* оформляем всех select (это уже есть в архиве) */
.select {
cursor: default;
height: 16px;
font-size: 11px;
font-family: Tahoma;
background-color: #fff;
padding: 0px 5px 0px 5px;
border: 1px solid #fff;
background-image: url(http://127.0.0.1/DEVOLOPERS/editor/arrowSelect.png);
background-repeat: no-repeat;
background-position: 100% 0%;
}

.select:hover { border: 1px solid #316ac5; background-position: 100% 50%; }
.select:active { background-position: 100% 100%; }
[/SRC]


Но если Вы хотите назначить определенный стиль конкретному селекту,
то просто создайте id в стилях с именем id-а вашего select-а, он заменит стиль.
Пример:


[SRC="css"]
#name {
cursor: pointer;
background-color: #00ff00;
...
}
[/SRC]


2. Далее мы должны создать наш select для JS и внесьти в него значение с именами


[SRC="javascript"]
/* создали массив значение=>имя */
var nameOptions = [];
nameOptions['val_1'] = 'Вариант 1';
nameOptions['val_2'] = 'Вариант 2';
nameOptions['val_3'] = 'Вариант 3';
nameOptions['val_4'] = 'Вариант 4';
nameOptions['val_5'] = 'Вариант 5';
nameOptions['val_6'] = 'Вариант 6';
nameOptions['val_7'] = 'Вариант 7';
nameOptions['val_8'] = 'Вариант 8';
nameOptions['val_9'] = 'Вариант 9';
nameOptions['val_10'] = 'Вариант 10';

/* создаем select
1 арг. - значение имя тега по умолчанию для пользователей
2 арг. - имя идентификатора (ID) нашего select'а
3 арг. - имя массива со нашими значениями
4 арг. - ширина тега
5 арг. - длина выкатного поля (поле с вариантами, которое выкатывается при клике)
6 арг. - код для исполнения (альтернатива событию onChange, т. к. его нельзя использовать здесь)
7 арг. - если true - то выбранный вариант будет выделяться (т. е. ему будет назначен стиль, и пользователь будет видеть выбранный вариант).
Если false - то будет происходить просто изменение значения, но какой вариант вы выбрали, он не будет отображать.
*/
tagSelect('Выберите вариант', 'name', nameOptions, 40, 150, "my_function('value')", true);
[/SRC]


3. Рассмотрим оформление "вариантов" и "выбранного варианта" (оно так же уже присутствует в архиве)


[SRC="css"]
/* select_options_field, select_var - это зарезервированные имена! */

/* оформляем поле с вариантами */
#select_options_field {
position: absolute;
border: 1px solid #0000ff;
margin: 3px 0px 0px -6px;
background-color: #fff;
padding: 2px;
/* height: 150px; */
/* width: 100px; */
overflow-y: scroll;
cursor: default;
display: none;
}

/* оформляем "вариант" */
#select_var { padding: 1px 5px 1px 5px; font-size: 14px; }
#select_var:hover { border: 1px solid #316ac5; background-color: #c1d2ee; color: #316ac5; }
#select_var:active { background-color: #98b5e2; }

/* оформляем "выбранный вариант" */
#select_var_pick { padding: 1px 5px 1px 5px; font-size: 14px;background-color: #BBDAEE; }

/*
А теперь внимание! Если Вы хотите оформить конкретные "варианты/выбранный вариант" select-а,
то Вы создаете новый класс с именем основным именем + '_for_{ID}', где ID = идентификатор Вашего селекта
Пример:
.select_options_field_for_{ID} { !important }
.select_var_for_{ID} { !important }
.select_var_for_{ID}:hover { !important }
.select_var_for_{ID}:active { !important }
Так же не забывайте указывать "!important" !!! Иначе изменение стиля не произойдет!
*/
[/SRC]


Ну вроде бы и все! Скрипт проверен в IE. Если есть какие-то вопросы задавайте здесь.

Скриншот (выкат плавный):

[Изображение: 2ULgo.png]
Ответ


Возможно похожие темы ...
Тема Автор Ответы Просмотры Последний пост
  ie <= 7 (<select> жирная некрасивая рамка) Dementor 8 3,670 09-21-2012, 08:55 PM
Последний пост: Dementor

Перейти к форуму:


Пользователи, просматривающие эту тему: 1 Гость(ей)