2016-09-21 2 views
0

Ich arbeite an Material-Design Radio-Taste und versuchen, seine Wellen Wirkung arbeiten, aber ich habe Probleme mit den richtigen JavaScript-Funktionen.Machen Radiobutton Ripple-Effekt arbeiten mit JS

Basierend auf MDL, aktiviert sich der Effekt auf mousedown (nicht wirklich sicher) und während er noch gedrückt wird, und auf mouseup blendet es aus. Ich habe bereits den Ripple-Container und ich denke, dass ich eine Animation brauchen werde, um sie auszublenden, aber für den Moment bleibe ich bei den Grundlagen, die keine Animationen haben.

CSS

.radio-ripple { 
    position: absolute; 
    top: -11px; 
    left: -9px; 
    height: 40px; 
    width: 40px; 
    box-sizing: border-box; 
    border-radius: 50%; 
    z-index: 2; 
} 
.radio-ripple.is-active { 
    background-color: rgba(0,0,0,0.2); 
} 

Mein vollständiger Code JSFiddle. Mit jQuery wird es viel einfacher.

Ich bin immer noch ein Anfänger in JS/jQuery-Bibliothek, also kam ich hierher, um nach etwas Hilfe zu fragen.

Dank

Antwort

0

ich ein Beispiel gemacht haben:

$(function() { 
 
    $('.radio').mousedown(function(e) { 
 
    $(this).find('span').addClass('is-active').fadeIn('fast'); 
 
    }).mouseup(function(e) { 
 
    $(this).find('span').addClass('is-active').fadeOut('fast'); 
 
    }); 
 
});
.radio { 
 
    position: relative; 
 
} 
 

 
.radio-ripple { 
 
    position: absolute; 
 
    top: -13px; 
 
    left: -9px; 
 
    height: 40px; 
 
    width: 40px; 
 
    box-sizing: border-box; 
 
    border-radius: 50%; 
 
    z-index: -1; 
 
} 
 
.radio-ripple.is-active { 
 
    background-color: #CCC; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div> 
 
    <br/> 
 
    <br/> 
 
    <label class="radio"> 
 
    <input type="radio" name="radioActive" />Has ripple 
 
    <span class="radio-ripple 1"></span> 
 
    </label> 
 
    <br/> 
 
    <br/> 
 
    <br/> 
 
    <label class="radio"> 
 
    <input type="radio" name="radioActive" />Has also a ripple 
 
    <span class="radio-ripple 2"></span> 
 
    </label> 
 
    <br/> 
 
    <br/> 
 
    <br/> 
 
    <label class="radioButton"> 
 
    <input type="radio" name="radioActive" />Ordinary 
 
    </label> 
 
</div>

+0

nein, ich mache meine eigene Version von Material Design Radioknopf es. Ich verwende nicht das MDL-Framework. –

+0

Ich habe das Beispiel geändert, ich hoffe, das wird helfen :) –