Jak zatrzymać przyciski przed pozostawaniem przygnębionym za pomocą Bootstrap 3
Jak zrobić przycisk w Bootstrap 3 undepress automatycznie po kliknięciu?
Aby odtworzyć mój problem, zrób stronę z kilkoma przyciskami, podaj im odpowiednie klasy bootstrap (i dołącz bootstrap):
<input id="one" type="button" class="btn btn-default" value="one">
<input id="two" type="button" class="btn btn-primary" value="two">
Załaduj stronę i kliknij jeden z przycisków. Staje się wciśnięty i podświetlony, dopóki nie klikniesz gdzie indziej na stronie (używając FF29 i chrome35beta).
Sprawdzanie elementu wejściowego podczas kliknięcia i odblokowania Nie Pokaż wszelkie dodatkowe klasy, które są dołączane i usuwane z niego.
Oto przykład przycisków Bootstrap pozostających w depresji: http://jsfiddle.net/52VtD/5166/
7 answers
W twoim przykładzie przyciski nie pozostają wciśnięte. Pozostają skoncentrowane . Jeśli chcesz zobaczyć różnicę, wykonaj następujące czynności:
- Kliknij i przytrzymaj przycisk.
- Release. Zobaczysz, że po zwolnieniu myszy wygląd przycisku nieznacznie się zmienia, ponieważ nie jest już wciśnięty.
Jeśli nie chcesz, aby Twoje przyciski były skupione po zwolnieniu, możesz poinstruować przeglądarkę, aby usunęła z nich ostrość za każdym razem, gdy zwolnisz przycisk mysz.
Przykład
Ten przykład używa jQuery, ale można osiągnąć ten sam efekt z vanilla JavaScript.
$(".btn").mouseup(function(){
$(this).blur();
})
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-07-02 16:35:34
Lub możesz po prostu użyć znacznika kotwicy, który może być stylizowany dokładnie tak samo, ale ponieważ nie jest to element formularza, Nie zachowuje ostrości:
<a href="#" role="button" class="btn btn-default">one</a>.
Zobacz sekcję Anchor element tutaj: http://getbootstrap.com/css/#buttons
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-05-03 12:58:42
Przycisk pozostaje skupiony. Aby to skutecznie usunąć, możesz dodać ten kod zapytania do swojego projektu.
$(document).ready(function () {
$(".btn").click(function(event) {
// Removes focus of the button.
$(this).blur();
});
});
To również działa dla linków anchor
$(document).ready(function () {
$(".navbar-nav li a").click(function(event) {
// Removes focus of the anchor link.
$(this).blur();
});
});
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-04-12 12:58:44
Moje preferencje:
<button onmousedown="event.preventDefault()" class="btn">Calculate</button>
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-03-19 17:12:38
Lub droga kątowa:
function blurElemDirective() {
return {
restrict: 'E',
link: function (scope, element, attrs) {
element.bind('click', function () {
element.blur();
});
}
};
}
app.directive('button', blurElemDirective);
app.directive('_MORE_ELEMENT_', blurElemDirective);
Zastąp _MORE_ELEMENT_ innymi elementami.
Lub sposób atrybutu:
function blurElemDirective() {
return {
restrict: 'A',
link: function (scope, element, attrs) {
element.bind('click', function () {
element.blur();
});
}
};
}
app.directive('blurMe', blurElemDirective);
Następnie Dodaj atrybut do elementu html: blur-me
<button blur-me></button>
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-04-18 16:21:53
Jest skupiony na przeglądarce, ponieważ jest elementem formularza (input
).
Możesz łatwo usunąć ogniskowanie za pomocą odrobiny css
input:focus {
outline: 0;
}
Oto twój przykład: http://jsfiddle.net/52VtD/5167/
EDIT
Ah, właśnie teraz widziałem, że kolor samego przycisku też się zmienia. Bootstrap zmienia przycisk np. twojegobtn-default
przycisku z tym css:
.btn-default:focus {
color: #333;
background-color: #ebebeb;
border-color: #adadad;
}
Jeśli nie chcesz tego zachowania, po prostu Nadpisz je swoim css.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-05-03 11:14:35
Ma to związek ze Stanami elementu :active
i :focus
. Musisz zmodyfikować style dla tych stanów dla tych przycisków. Na przykład dla domyślnego przycisku:
.btn-default:focus, .btn-default:active, .btn-default.active, .open .dropdown-toggle.btn-default {
color: #333;
background-color: #ccc;
border-color: #fff;
}
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-05-03 11:10:19