var element = document.querySelector(".star");
element.addEventListener("click", function() {
    if(element.className.indexOf('star-hover') === -1) {
        element.className += ' star-hover';
    }
});
element.addEventListener("mouseout", function() {
    element.className = element.className.replace(/ star-hover/g, '').replace(/ star-expand/g, '');
});
function whichTransitionEvent(el){
    var t;
    var transitions = {
        'transition':'transitionend',
        'OTransition':'oTransitionEnd',
        'MozTransition':'transitionend',
        'WebkitTransition':'webkitTransitionEnd'
    }
    for(t in transitions){
        if( el.style[t] !== undefined ){
            return transitions[t];
        }
    }
}
var transitionEnd = whichTransitionEvent(element);
element.addEventListener(transitionEnd, function() {
    if(element.className.indexOf('star-expand') === -1 && element.className.indexOf('star-hover') >= 0) {
        element.className += ' star-expand';
    }
}); 
<div class="star">★<br /><span>click me</span></div>    
.star {
    font-size: 40px;
    background: #C9C9C9;
    padding: 20px;
    width: 100px;
    text-align: center;
    border-radius: 6px;
    margin: 0 auto;
    cursor: pointer;
    line-height: 20px;
    transition-property: all;
    -moz-transition-property: all;
    -webkit-transition-property: all;
    -o-transition-property: all;
    transition-duration: 1000ms;
    -webkit-transition-duration: 1000ms;
}
.star-hover {
    background: #F00;
    color: #FFF;
}
.star-expand {
    width: 200px;
}
.star span {
    font-size: 16px;
    font-weight: bold;
}