2017-02-04 4 views
3

Я понимаю, что состояние :active в некоторой степени, но я не знаю, как преобразовать мой box1, нажав (не удерживая). Вместо этого, чтобы преобразовать, мне нужно щелкнуть и удерживать окно на всю продолжительность преобразования.Нажмите и удерживайте нажатой кнопку мыши или щелкнув мышью

https://jsfiddle.net/kzmhtkog/4/

.wrap { 
 
    width: 100%; 
 
    height:400px; 
 
    overflow:hidden; 
 
} 
 

 
#box1 { 
 
    background-color:red; 
 
    text-align:left; 
 
    cursor: pointer; 
 
    -webkit-transition: width 1s; 
 
    transition: width 1s; 
 
} 
 

 
#box1:active { 
 
    width: 100%; 
 
    background-color: red; 
 

 
} 
 

 
.floatleft { 
 
    float:left; 
 
    width: 33.33%; 
 
    background-color: black; 
 
    height: 400px; 
 
}
<div class="wrap"> 
 
    <div class="floatleft" id="box1"> 
 
    </div> 
 
</div>

+0

Так на кнопку вы хотите коробку идти ширину 100%? Должен ли он вернуться к нормальному состоянию, если вы нажмете еще раз? – caramba

+0

Да, это было бы отлично – Stack

+1

Здесь есть решение ': focus': http://stackoverflow.com/a/17207437/2008111, но затем вы не можете закрыть окно снова. Поэтому вам действительно нужно будет использовать javascript, но вам не нужно использовать jQuery. – caramba

ответ

1

Вы должны использовать JQuery или JavaScript.

$('#box1').click(function() { 
 
    $(this).toggleClass('active'); 
 
});
.wrap {       
 
    width: 100%;     
 
    height:400px;     
 
    overflow:hidden;    
 
}        
 
           
 
#box1 {       
 
    background-color:red;   
 
    text-align:left;    
 
    cursor: pointer;    
 
    -webkit-transition: width 1s; 
 
    transition: width 1s;   
 
}        
 
           
 
#box1.active {     
 
    width: 100%;     
 
    background-color: red;   
 
           
 
}        
 
           
 
.floatleft {      
 
    float:left;     
 
    width: 33.33%;     
 
    background-color: black;  
 
    height: 400px;     
 
}       
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="wrap">     
 
    <div class="floatleft" id="box1"> 
 
    </div>        
 
</div>

+0

Знаете ли вы, что для него эквивалентный javascript? Новый для программирования и не уверен, с чего начать. – Stack

+0

Это не так "красиво". Вы можете начать с проверки собственных событий javascript: https://developer.mozilla.org/en-US/docs/Web/Events/click – Tallboy

Смежные вопросы