0

我正在我的投资组合网站上工作,它应该是一个带有图片作为标签的大型手风琴。由于它是一个长页面,因此选项卡不会是链接。我对 jquery 真的很陌生,所以我不知道如何使它与我的 css 一起工作。基本上,应该发生的是,当您单击选项卡时,选项卡图像会随着手风琴拉下描述而转换为标题。我只希望在单击时发生过渡。

可以在这里看到过渡

它显示了转换应该如何工作,但目前它只能由悬停状态触发。谢谢!

html:

 <div class="img-container">
    <img src="images/fashion_spread.jpg">
         <div class="img-hidden">
             <img src="images/fashion_spread_bw.jpg">
         </div>
 </div>

CSS:

.img-container {
    width: 100%;
    height: auto;
    margin-right: auto;
    margin-left:auto;
    float: left;
    display:list-item;
    position: relative;
}

.img-container img {
    width: 100%;
    height: auto;
}

.img-hidden {
    bottom:0;
    position: absolute;
    opacity:0;
    filter: alpha(opacity = 0);
    width: 100%;
    height: 100%;
    z-index:1000;
    transition:opacity 0.5s;
    -moz-transition:opacity 0.5s;
    -webkit-transition:opacity 0.5s;
}

.img-container:hover .img-hidden{
    opacity:1;
    filter: alpha(opacity = 100);
    transition:opacity 0.5s;
    -moz-transition:opacity 0.5s;
    -webkit-transition:opacity 0.5s;
}
4

2 回答 2

1

您可以更改:hover为,:active但这只会在按住鼠标时应用您的效果。我不认为你可以单独使用 CSS 做你想做的事。

由于您在此处标记了 jquery,因此这是一个 jquery 解决方案:

改变这个:

.img-container:hover .img-hidden{

对此:

.img-container.active .img-hidden{

查询:

$(document).ready(function() {

   $('.img-container').on('click',function() {
       $(this).toggleClass('active'); 
    });

});

演示


编辑

根据下面的评论,这是一个完整的工作 html 页面:

    <!DOCTYPE html>
    <html lang="en">
        <head>
            <style type="text/css">
                .img-container {
                    width: 100%;
                    height: auto;
                    margin-right: auto;
                    margin-left:auto;
                    float: left;
                    display:list-item;
                    position: relative;
                  }

                .img-container img {
                    width: 100%;
                    height: auto;
                }

               .img-hidden {
                   bottom:0;
                   position: absolute;
                   opacity:0;
                   filter: alpha(opacity = 0);
                   width: 100%;
                   height: 100%;
                   z-index:1000;
                   transition:opacity 0.5s;
                   -moz-transition:opacity 0.5s;
                   -webkit-transition:opacity 0.5s;
                 }

                .img-container.active .img-hidden{
                    opacity:1;
                    filter: alpha(opacity = 100);
                    transition:opacity 0.5s;
                    -moz-transition:opacity 0.5s;
                    -webkit-transition:opacity 0.5s;
                 }

            </style>

            <script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>

            <script type="text/javascript">

                $(document).ready(function() {

                    $('.img-container').on('click',function() {
                        $(this).toggleClass('active'); 
                    });

                });
            </script>
        </head>
        <body>

            <div class="img-container">
                <img src="images/fashion_spread.jpg">
                <div class="img-hidden">
                    <img src="images/fashion_spread_bw.jpg">
                </div>
            </div>

        </body>
     </html>
于 2014-03-11T20:00:05.320 回答
0

使用 :target 选择器的仅 css 解决方案。

<div class="img-container">
  <a href="#target-hidden">
   <img src="http://i.imgur.com/wEYmgYC.jpg">
   <span id="target-hidden" class="img-hidden">
     <img src="http://i.imgur.com/XRUqimG.jpg">
   </span>
  </a>
</div>

#target-hidden:target {
  opacity:1;
  filter: alpha(opacity = 100);
  transition:opacity 0.5s;
  -moz-transition:opacity 0.5s;
  -webkit-transition:opacity 0.5s;
}

http://jsfiddle.net/Px52Y/10/

于 2014-03-11T20:04:24.517 回答