2017-08-23 113 views
0

嗯,我已经接近48小时了,现在正试图为明天下午需要启动并运行的某个人完成一个站点。我比我能在这里肯定地咀嚼他们所要求的东西,以及我能用我现在得到的技能(我得到的东西我学会了什么)做什么。如何滑动div,同时滑动一个关闭,你点击?

让我们来看看,如果我可以这样解释:

  1. 有在屏幕上两个横幅广告图片,每个有更多的内容暴露。

  2. 如果用户点击横幅,它应该向上滑动以关闭。它下面的框向下滑动打开更多内容。

  3. 如果另一个横幅被点击,它会经历相同的过程,但已经打开的横幅应该滑动关闭,并且原始横幅滑动打开,使其恢复到原始状态。

到目前为止,我所得到的只是一个点击,如果点击它,就会打开横幅下面的框。如果另一个横幅被点击,则会关闭并显示横幅信息。

不知道问我猜,但认为我会问现在,而进一步因为上帝知道我会卡住。

$(function() { 
 
    $('.pp-post-item').on('click', function() { 
 
    let postFullId = jQuery(this).attr('id'); 
 
    let postNumId = postFullId.slice(13); 
 
    $('.pp-post-container').not('.element-invisible').addClass('element-invisible'); 
 
    $('#pp-post-container-' + postNumId).removeClass('element-invisible'); 
 
    }); 
 
});
.pp-post { 
 
    color: #ffffff; 
 
    background-color: #3f3f3f; 
 
    margin: 0px; 
 
    padding: 0px; 
 
    max-width: 100%; 
 
    position: relative; 
 
} 
 

 
.pp-post-item { 
 
    position: relative; 
 
    width: 100%; 
 
} 
 

 
.pp-post-container { 
 
    overflow: hidden; 
 
} 
 

 

 
/* initially hide divs on page load */ 
 

 
.element-invisible { 
 
    position: absolute !important; 
 
    height: 1px; 
 
    width: 1px; 
 
    overflow: hidden; 
 
    clip: rect(1px 1px 1px 1px); 
 
    /* IE6, IE7 */ 
 
    clip: rect(1px, 1px, 1px, 1px); 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div id="pp-post-1" class="pp-post"> 
 
    <div id="pp-post-item-1" class="pp-post-item"> 
 
    ... 
 
    </div> 
 
</div> 
 
<div id="pp-post-container-1" class="pp-post-container element-invisible"> 
 
    ... 
 
</div> 
 
<div id="pp-post-2" class="pp-post"> 
 
    <div id="pp-post-item-2" class="pp-post-item"> 
 
    ... 
 
    </div> 
 
</div> 
 
<div id="pp-post-container-2" class="pp-post-container element-invisible"> 
 
    ... 
 
</div>

+0

横幅广告是如何定位?两个横幅是水平对齐的? – SilentCoder

+0

他们是全宽,垂直排列。如果我添加和删除这些类将所有我需要的是CSS转换? tyring,但不为我工作。 – gcollins

+0

那么我可以得到它与转换sorta,但我必须明确设置一个高度。问题是我不知道这些内容有多大。 – gcollins

回答

0

您正在寻找这样的解决方案?根据我对你的问题的理解,我创建了这个基础。

$(document).ready(function() { 
 
$('.bottom-layer').hide(); 
 
    
 
    
 
$('#banner-one,#banner-two').click(function(){ 
 
     $(this).find('.top-layer').slideToggle("slow"); 
 
     $(this).find('.bottom-layer').slideToggle("slow"); 
 
}) 
 
    
 
    
 

 

 
});
#banner-container{ 
 
    max-width:600px; 
 
    min-height:300px; 
 
    overflow:hidden; 
 
    background-color:#eee; 
 
    display:inline-block; 
 
} 
 

 
#banner-one{ 
 
    min-width:600px; 
 
    min-height:150px; 
 
    background-color:orange; 
 
    cursor:pointer; 
 

 
    
 
} 
 
#banner-two{ 
 
    min-width:600px; 
 
    min-height:150px; 
 
    background-color:red; 
 
    cursor:pointer; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<div id="banner-container"> 
 
    <div id=banner-one> 
 
     <div class="top-layer">Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Maecenas porttitor congue massa. Fusce posuere, magna sed pulvinar ultricies, purus lectus malesuada libero, sit amet commodo magna eros quis urna.</div> 
 
     <div class="bottom-layer">Inside content</div> 
 
    </div> 
 

 
    <div id=banner-two> 
 
    <div class="top-layer">Top Content</div> 
 
     <div class="bottom-layer">Inside content</div> 
 
    </div> 
 
</div>

0

我的解决办法打开被点击的标题下一个DIV,并关闭所有其他的div。

$(document).ready(function() { 
 
    $('.toggle').on('click', function() { 
 
    if ($(this).hasClass('closed')) { 
 
     $('h3').removeClass('open'); 
 
     $(this).removeClass('closed'); 
 
     $(this).addClass('open'); 
 
     $('.toggle-content').hide(); 
 
     $(this).next('.toggle-content').show(); 
 
    } else { 
 
     $(this).removeClass('open'); 
 
     $(this).addClass('closed'); 
 
     $(this).next('.toggle-content').hide(); 
 
    } 
 
    }); 
 
});
h3 { 
 
    background-color: #eee; 
 
    color: #000; 
 
} 
 

 
.toggle-content { 
 
    display: none; 
 
    /* if you want content divs open by default, change to display: block*/ 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div> 
 
    <h3 class="closed toggle">title 1</h3> 
 
    <div class="toggle-content">Lorem ipsum dolor sit amet, consectetur adipiscing elit. In et urna libero. Nullam scelerisque pellentesque porttitor. Ut aliquam malesuada enim, porttitor sodales nisl faucibus eu. Etiam non ex orci. Vestibulum augue mauris, pharetra cursus urna dapibus, 
 
    ullamcorper fermentum nibh. Nullam tincidunt ante sed arcu mollis volutpat. Sed non fringilla eros. Nullam tortor diam, volutpat at ex aliquam, viverra posuere ante. Integer vehicula lacus nisl, in imperdiet lectus condimentum eu. 
 
    </div> 
 
    <h3 class="closed toggle">title 1</h3> 
 
    <div class="toggle-content"> 
 
    Vestibulum suscipit laoreet est et faucibus. Pellentesque accumsan magna fermentum mauris sagittis, vel lobortis ante euismod. Nam luctus luctus neque non elementum. In hac habitasse platea dictumst. Donec vel augue eu est volutpat tincidunt porttitor 
 
    id justo. Sed sit amet quam dui. Fusce eget congue ipsum, nec finibus ex. Aliquam vestibulum eget diam at consequat. Morbi vitae neque auctor, posuere velit pharetra, sodales risus. Maecenas eget sodales odio. Etiam faucibus urna eu ligula fringilla 
 
    interdum. Donec pulvinar, enim eget cursus dignissim, dui dolor facilisis felis, varius porta libero urna ac odio. In risus ligula, fringilla sit amet mattis dapibus, elementum eget sapien. Sed vulputate neque nec libero efficitur, a tincidunt nunc 
 
    pulvinar. Donec vehicula malesuada turpis, vel pulvinar massa accumsan eu. 
 
    </div> 
 
</div>