3 состояния на кнопке отправки

Мне было интересно, как я могу добавить 3 состояния к кнопке отправки. Под состояниями я подразумеваю, что кнопка меняет изображение при наведении, нажатии и просто статичной/нетронутой. Я бы предпочел, чтобы решение использовало чисто HTML и CSS, но Javascript тоже подойдет. Спасибо!


person Dragan Marjanovic    schedule 11.04.2012    source источник
comment
Когда вы говорите «щелкнули», вы имеете в виду, что цвет изменяется во время действия щелчка (как ответил случай :active ниже) или что после щелчка он меняется и остается в этом цвете?   -  person Mike Guthrie    schedule 11.04.2012


Ответы (4)


Мне проще дать идентификаторы или классы таким вещам, чтобы упростить их. Вы можете сделать что-то подобное в jquery:

Допустим, у кнопки есть идентификатор #derp.

$("#derp").click(function(){
   $(this).toggleClass("pressed");
});

В основном это добавит или удалит «нажатый» класс из элемента в зависимости от его состояния. Просто добавьте CSS для .pressed, и все готово.

#derp {...}
#derp:hover {...}
#derp:active {...}
#derp.pressed {...}
person Ege    schedule 12.04.2012
comment
хм .. Я не уверен, что полностью понимаю, так что же делает приведенный выше код jQuery? Это меняет класс кнопок? или? Извините, я не использовал jQuery. - person Dragan Marjanovic; 12.04.2012
comment
Я изучил jQuery, и теперь это имеет больше смысла. Спасибо. - person Dragan Marjanovic; 12.04.2012
comment
Эй, извините за поздний ответ. Да, так что нет собственного способа сделать это без javascript. Что он делает, так это то, что если этот элемент не имеет нажатого класса, он добавит этот класс при нажатии на элемент. И если это произойдет, он просто удалит класс. Это скорее сокращенное свойство в jquery, это также можно сделать с помощью функций addClass и removeClass, но toggleClass в основном объединяет их обоих специально для таких целей. - person Ege; 13.04.2012
comment
Причина использования переключателя заключается в том, что, поскольку вы хотите, чтобы он выбирался при нажатии, это либо что-то вроде поведения флажка, либо навигация по вкладкам. В обоих случаях требуется его деактивация в какой-то момент, и использование toggleClass позволяет сделать это проще. - person Ege; 13.04.2012
comment
Я хорошо вижу, добавляет ли он весь class=derp к тегу или просто добавляет значение derp к атрибуту класса. Нужно ли мне добавить атрибут класса или это делается автоматически. Еще раз извините за мою новизну и спасибо. - person Dragan Marjanovic; 13.04.2012
comment
да, он добавляет весь тег класса, если он отсутствует, или только класс, если у вас уже есть другой класс, поскольку у вас может быть несколько. Вам не нужно ничего делать. Вот небольшая демонстрация: jsfiddle.net/cQQWY/1 - person Ege; 13.04.2012
comment
Ах, спасибо, это все объясняет. - person Dragan Marjanovic; 13.04.2012


Попробуйте это http://jsfiddle.net/jfeltis/Ufs7u/

person Joe    schedule 11.04.2012
comment
Спасибо, я просто не знаю, как заставить кнопку оставаться в этом положении при нажатии? Спасибо. - person Dragan Marjanovic; 12.04.2012
comment
Вам нужно будет использовать javascript (jQuery будет самым простым решением), чтобы получить желаемый эффект. См. jsfiddle @markvandencorput. - person Joe; 12.04.2012

Нормальное состояние должно быть вам понятно, два других могут стилизоваться с помощью .element:hover и .element:active

person Sven Bieder    schedule 11.04.2012
comment
При нажатии на него должно оставаться новое изображение да. - person Dragan Marjanovic; 12.04.2012
comment
Статус :active отображается только до тех пор, пока сама кнопка нажата. Если вы хотите изменить изображение после клика, вам необходимо реализовать решение javascript. - person Sven Bieder; 12.04.2012