Frage an click, transitions, css3, hover – CSS3-Übergänge: Gibt es eine On-Click-Option ohne Verwendung von JQuery?

13

Das funktioniert super:

<style type="text/css"> 
    div
    {
    width:100px;
    height:100px;
    background:red;
    transition:width 2s;
    -moz-transition:width 2s; /* Firefox 4 */
    -webkit-transition:width 2s; /* Safari and Chrome */
    -o-transition:width 2s; /* Opera */
    }

    div:hover
    {
    width:300px;
    }
    </style>

Aber kennt jemand eine Möglichkeit, dies mit einem Klick zu tun, anstatt mit der Maus zu schweben? Und ohne JQuery?

Vielen Dank!

Deine Antwort

4   die antwort
16

Sie können so schreiben:

CSS

input{display:none}
.ani
    {
    width:100px;
    height:100px;
    background:red;
    transition:width 2s;
    -moz-transition:width 2s; /* Firefox 4 */
    -webkit-transition:width 2s; /* Safari and Chrome */
    -o-transition:width 2s; /* Opera */
    display:block;
    }
input:checked + .ani{width:300px;}

HTML

<input type="checkbox" id="button">
<label class="ani" for="button"></label>

Überprüfen Sie dieshttp://jsfiddle.net/nMNJE/

Vielen Dank! Das ist ziemlich nah an dem, was ich will! MeltingDog
1

Eigentlich gibt es einen Klick-Selektor ohne javasccript. Mit können Sie verschiedene DOM-Elemente beeinflussen:Ziel Pseudoklasse. Wenn ein Element das Ziel eines Ankerziels ist, erhält es das:Ziel Pseudoelement (um das angeklickte Element zu beeinflussen, stellen Sie die ID genauso ein wie das Ankertag).

<style>
a { color:black; }
a:target { color:red; }
</style>

<a id="elem" href="#elem">Click me</a>

Hier ist eine Geige zum Spielen:https://jsfiddle.net/k86b81jv/

3

Sie haben zwei Möglichkeiten, eine mit Javascript und eine mit der CSS-Pseudoklasse "active". Die JavaScript-Methode wird von älteren Browsern unterstützt und ist das, was ich empfehlen würde. Um die CSS-Methode zu verwenden, ändern Sie einfach div: hover in div: active.

Javascript:

<script type="text/javascript">
function expand(){
    document.getElementById('id').style.width="300px";
}
</script>

CSS:

<style type="text/css"> 
div#id
{
width:100px;
height:100px;
background:red;
transition:width 2s;
-moz-transition:width 2s; /* Firefox 4 */
-webkit-transition:width 2s; /* Safari and Chrome */
-o-transition:width 2s; /* Opera */
}
</style>

HTML:

<div id="id" onClick="expand()">
    Div Content...
</div>
1

Es gibt keinen CSS-Selektor für Klicks ohne sass. Daher ist die Verwendung von jquery wahrscheinlich die beste Wahl

$(document).ready(function(){
$('#DIV_ID').click(function(){
$(this).animate({width:'300px'},200);
});
});

((Vergiss nicht, den Plugin-Link in deinen Header aufzunehmen !!))

<script src="http://code.jquery.com/jquery-1.7.2.min.js"></script>

Verwandte Fragen