Я хочу создать кнопку переключения в html с помощью css. Я хочу, чтобы, когда вы нажимаете на него, он оставался нажатым, а когда вы снова нажимаете на него, он выскакивал.
Если нет возможности сделать это, просто используя css. Есть ли способ сделать это с помощью jQuery?
Ответы:
Хорошим семантическим способом было бы использовать флажок, а затем стилизовать его по-разному, если он установлен или нет. Но хороших способов сделать это нет. Вам нужно добавить дополнительный диапазон, дополнительный div и, для действительно красивого вида, добавить некоторый javascript.
Итак, лучшее решение - использовать небольшую функцию jQuery и два фоновых изображения для стилизации двух разных состояний кнопки. Пример с эффектом вверх / вниз, заданным границами:
Очевидно, вы можете добавить фоновые изображения, которые представляют кнопки вверх и вниз, и сделать цвет фона прозрачным.
источник
Пользовательский интерфейс JQuery упрощает создание кнопок-переключателей. Просто положи это
на вашей странице, а затем в вашем теле
onLoad
или в вашей$.ready()
(или в некоторыхinit()
функциях объектных литералов, если вы создаете сайт ajax ..) отбросьте некоторый JQuery, например:Это оно. (не забывайте,
< label for=...>
потому что JQueryUI использует это для тела кнопки переключения ..)Оттуда вы просто работаете с ним, как с любым другим,
input="checkbox
«потому что это то, чем является базовый элемент управления, но пользовательский интерфейс JQuery просто скроет его, чтобы он выглядел как красивая кнопка переключения на экране.источник
вот пример использования
pure css
:источник
В сочетании с этим ответом вы также можете использовать этот стиль, похожий на переключатель мобильных настроек.
HTML
CSS
jQuery
Могло бы быть намного красивее, но дает представление.
Одним из преимуществ является то, что его можно анимировать с помощью jquery и / или CSS3
Fiddler.
источник
Если вам нужна правильная кнопка, вам понадобится javascript. Что-то вроде этого (нужно немного поработать над стилем, но суть вы поняли). Честно говоря, не стал бы использовать jquery для чего-то столь тривиального.
источник
Вы можете просто использовать
toggleClass()
для отслеживания состояния. Затем вы проверяете, есть ли у элемента кнопки класс, например:И я использую
button
элемент для кнопок по смысловым причинам.источник
Вы можете использовать элемент привязки (
<a></a>
) и использовать: active и:: ссылку, чтобы изменить фоновое изображение для включения или выключения. Просто мысль.Изменить: вышеуказанный метод не слишком хорошо работает для переключения. Но вам не нужно использовать jquery. Напишите простую функцию javascript onClick для элемента, которая соответствующим образом изменяет фоновое изображение, чтобы оно выглядело так, как будто кнопка нажата, и устанавливает какой-либо флаг. Затем при следующем щелчке изображение и флаг меняются местами. Вот так
И вот так html
<div id="toggleDiv" onclick="toggle()">Some thing</div>
источник
Я не думаю, что использование JS для создания кнопки - хорошая практика. Что если браузер пользователя отключит JavaScript?
Кроме того, вы можете просто использовать для этого флажок и немного CSS. И легко получить состояние вашего флажка.
Это всего лишь один пример, но вы можете оформить его как хотите.
http://jsfiddle.net/4gjZX/
HTML
CSS
Надеюсь это поможет
источник
Я был бы склонен использовать класс в вашем CSS, который изменяет стиль границы или ширину границы, когда кнопка нажата, поэтому он выглядит как кнопка переключения.
источник
Попробуйте этот бит:
источник
Есть плагин jquery от Swizec , который, помимо прочего, может делать это: https://github.com/Swizec/styled-button
(Старая ссылка была http://swizec.com/code/styledButton/ , я не полностью тестировал замену, просто нашел ее с помощью Google.)
источник
Вы можете использовать «активный» псевдокласс (однако он не будет работать в IE6 для других элементов, кроме ссылок)
источник
Вот один из примеров / вариантов (более подробно описанных) ToggleButton с использованием jQuery с
<label for="input">
реализацией.Сначала мы создадим контейнер для нашего ToggleButton, используя классический HTML
<input>
и<label>
Далее мы определим функцию для переключения нашей кнопки. Наша кнопка на самом деле обычная,
<label>
которую мы будем стилизовать, чтобы представить переключение значений.Функция реализована многоразовым способом. Вы можете использовать его для более чем одной, двух или даже трех созданных вами ToggleButton.
... и, наконец ... чтобы он работал должным образом, мы должны привязать функцию переключения к событию (событию "изменения") нашей импровизированной
<label>
кнопки (это будетclick
событие, потому что мы не изменяемcheckbox
напрямую, поэтому никакихchange
событий можно уволить<label>
).С помощью CSS мы можем определить
backgorund-image
или некоторые из них,border
чтобы представить изменение значения, пока<label>
будем выполнять работу за нас по изменению значения флажка;).Надеюсь, это кому-то поможет.
источник
.addClass()
/.removeClass()
вы можете использовать.toggleClass()
, но описанный метод явно определяет действия дляchecked
/unchecked
values.Пытаться;
И убедитесь в
Помните, когда вы кодируете это, только
somename
иsomeid
можно изменить во входном теге, иначе это не сработает.источник
Поскольку я тоже искал ответ и хотел выполнить его с помощью CSS. Я нашел решение от CSS NINJA. Это хорошее продвижение
<input type="checkbox">
и некоторая демонстрация css Live ! Хотя это не работает в IE 8, вы можете реализовать selectivizr ! и исправить CSS, где используетсяopacity
дляfilter
, чтобы заставить его работать в IE.РЕДАКТИРОВАТЬ 2014:
для новых кнопок переключения я использую решение, найденное в блоге Lea Verou, визуально похожее на флажок iOS
источник