使用next()向右滑动;

时间:2016-01-08 18:57:11

标签: jquery html css

我想要做的是下次我点击.div最后一个动画并制作其他功能的功能,我仍然不知道该怎么做

$(".div").click(function() {
    /*with this code i make that the next time i open .show, the last one closes */
    $(this).next('.show').slideToggle();
    $(this).parent().siblings().children().next().slideUp();
    /*here i use a flag to slide a div and make some animations*/
    if (!$(this).hasClass("flag")) {
        $(this).animate({
            marginLeft: '-=400px'
        }, 100);
        $(this).addClass("flag");
        $(this).find("h1").animate({
            backgroundColor: 'black'
        }, 500);
        $(this).find("h1").css("color", "white");
        $(this).find("h1").addClass("class1");
    } else {
        $(this).animate({
            marginLeft: '+=400px'
        }, 100);
        $(this).removeClass("flag");
        $(this).find("h1").animate({
            backgroundColor: 'transparent'
        }, 500);
        $(this).find("h1").css("color", "black");
        $(this).find("h1").removeClass("class1");
    };
    return false;
});

1 个答案:

答案 0 :(得分:0)

我建议在切换点击的项目时隐藏所有其他项目。

在下面的演示中,我创建了两个函数:一个用于"切换"和一个隐藏"项目。
通过操纵"打开"来显示/隐藏项目。分类和滑动相关内容 单击某个项目时,将隐藏单击的所有项目,并切换单击的项目。

我使用CSS transition为标题设置了动画,但如果您愿意,可以使用jQuery 实现" slideDown"更难以实现。使用CSS转换的效果,所以我使用了jQuery。

我还将.first().click()链接到点击处理程序选择器的末尾,以便第一个项目自动打开。



var $containers = jQuery('.container');

function toggleItem($item) {
  $item.toggleClass('open');
  $item.find('.content').slideToggle(200);
}

function hideItem($item) {
  $item.removeClass('open');
  $item.find('.content').slideUp(200);
}

jQuery('h1',$containers).on('click', function() {
  
  var $container = jQuery(this).parent();
  
  hideItem($containers.not($container));
  toggleItem($container);
  
}).first().click();

.container {
  font-size:14px;
}
.container .content {
  display: none;
  margin:1em 0;
}
.container h1 {
  font-size:1.5em;
  margin:0;
  padding-left: 0;
  color: black;
  -webkit-transition: padding-left .2s, color .2s, background-color .2s;
  transition: padding-left .2s, color .2s, background-color .2s;
}
.container.open h1 {
  padding-left: 40px;
  color: white;
  background-color: black;
}

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="container">
  <h1>TITLE</h1>
  <div class="content">CONTENT<br />CONTENT<br />CONTENT</div>
</div>
<div class="container">
  <h1>TITLE</h1>
  <div class="content">CONTENT<br />CONTENT<br />CONTENT</div>
</div>
<div class="container">
  <h1>TITLE</h1>
  <div class="content">CONTENT<br />CONTENT<br />CONTENT</div>
</div>
&#13;
&#13;
&#13;