这是我用来隐藏和显示带滑动切换效果的div的代码。
jQuery(document).ready(function() {
jQuery(".option-content").hide();
jQuery(".option-heading").click(function()
{
jQuery(this).next(".option-content").slideToggle(500);
});
});
但是我想添加一些切换箭头来显示切换的div是向上还是向下。
这就是我到目前为止所做的一切,它完成了我希望它做的一半:
jQuery(document).ready(function() {
jQuery(".option-content").hide();
jQuery("#arrow-up").hide();
jQuery(".option-heading").click(function()
{
jQuery(this).next(".option-content").slideToggle(500);
jQuery("#arrow-up").toggle();
jQuery("#arrow-down").toggle();
});
});
这会切换箭头,但有两个问题:
任何想法都会得到满足
答案 0 :(得分:15)
:before
伪装饰箭头图标.toggleClass()
jQuery(function($) { // DOM ready and $ alias in scope
/**
* Option dropdowns. Slide toggle
*/
$(".option-heading").on('click', function() {
$(this).toggleClass('is-active').next(".option-content").stop().slideToggle(500);
});
});
.option-heading:before { content: "\25bc"; }
.option-heading.is-active:before { content: "\25b2"; }
/* Helpers */
.is-hidden { display: none; }
<div class="option-heading">HEADING</div>
<div class="option-content is-hidden">
content<br>content<br>content<br>content<br>content<br>content<br>content
</div>
<script src="//code.jquery.com/jquery-3.3.1.js"></script>
P.S:如果您使用的是一些不同的字体图标(例如,即:icomoon),请将相应的十六进制代码和font-family: 'icomoon';
添加到:before
伪。
答案 1 :(得分:2)
使用课程!
jQuery(document).ready(function() {
jQuery(".option-content").hide().removeClass("shown").addClass("hidden");
jQuery(".option-heading").click(function()
{
jQuery(this).next(".option-content").slideToggle(500)
.removeClass("hidden").addClass("shown");
});
});
然后使用CSS:
.option-content.hidden{ background-image:url(hidden.png); }
.option-content.shown{ background-image:url(shown.png); }
答案 2 :(得分:0)
$('.nav-arrow').on('click', function () {
$(this).parents('.col-md-6').siblings().find('li').removeClass('subnav---open').find('ul').slideUp('fast');
$(this).parent().toggleClass('subnav---open').find('ul').first().slideToggle('fast');
});