Ответ 1
$('.expand-one').click(function(){
$('.content-one').slideToggle('slow');
});
Я ищу правильный, простой, маленький код, чтобы сделать следующее:
Нажмите на элемент с классом, который он применил.
DIV.CLASS - что расширяет и отображает скрытый контент. (slideDown - Toggle)
DIV.CLASS - Которая разрушает и скрывает ранее отображаемый контент. (slideUp - Toggle)
Я создал jsFiddle здесь: http://jsfiddle.net/Q4PUw/1/
Чтобы быть неопределенным и легким, мне нужно знать, как заставить DIV CLASS стать скрытым и видимым, как только элемент на той же странице будет применен к нему CLASS, в котором активируется и деактивируется HIDDEN и или VISIBLE Содержимое HTML. И мне нужно, чтобы он был скрыт по умолчанию.
Я посмотрел по всему Интернету и нашел очень сложные скрипты, но ничего простого. Я нашел простых аккордеев... Но те никогда не закрываются, они просто открывают еще один.
Спасибо всем за помощь, и я надеюсь, что смогу ответить на этот же вопрос для множества других людей...
Примечание. Я знаю очень маленький JavaScript и даже jQuery.
$('.expand-one').click(function(){
$('.content-one').slideToggle('slow');
});
Я смотрел на это и хотел разборный div, который уже был для меня. Тогда я понял, что хочу, это один банер jquery-ui.
<div id="collapse">
<h3>Collapse and Expand</h3>
<div>Content</div>
</div>
<script>
$( "#collapse" ).accordion({
collapsible: true,
active: false
});
</script>
Я хотел сделать это с несколькими div, каждый со своим триггером. Основываясь на AlienWebguy, ответьте выше:
HTML
<div>
<p class="expand" id="expand-1">more 1...</p>
</div>
<div class="expandable" id="expandable-1">
<p>1. This is the content that was hidden before, but now is... Well, visible!"</p>
</div>
<div>
<p class="expand" id="expand-2">more 2...</p>
</div>
<div class="expandable" id="expandable-2">
<p>2. This is the content that was hidden before, but now is... Well, visible!"</p>
</div>
Javascript
$('.expand').click(function(){
target_num = $(this).attr('id').split('-')[1];
content_id = '#expandable-'.concat(target_num);
$(content_id).slideToggle('fast');
});
CSS
.expand {
font-weight: bold;
font-style: italic;
font-size: 12px;
cursor: pointer;
}
.expandable {
display:none;
}
div {
margin: 10px;
}
Плохая идея использовать аккордеон. Лучше создать собственный сворачиваемый блок.
Пример:
function InitSpoilBlock(idClicked)
{
$(idClicked).on('click', function(e){
var textArray = ['blind','slide'];//here you can add other effects
var randomEffect = textArray[Math.floor(Math.random()*textArray.length)];
$(e.target).parent().children(".HiderPanel").toggle(randomEffect);
});
}
поэтому, когда вы пишете такой html:
<div class="HiderContainer">
<a href="#" class="Hider">More</a>
<div class="HiderPanel">
Spoiled block of html
</div>
</div>
и после загрузки страницы вы вызываете
InitSpoilBlock('.Hider');
все блоки можно будет свернуть и спрятать со случайной анимацией. Или вы также можете использовать одну точную анимацию.