jQuery Toggle Div水平隐藏文本完全撬开

问题描述 投票:-1回答:1

我想创建一个隐藏在另一个div下面的div,直到它通过按钮水平切换。隐藏的div应包含也隐藏的文本,但在切换div时也会显示。

此示例显示了它应该是什么样子。但是,当我向其中一个div添加一些文本时,文本显示。我希望它只在函数执行并且整个div被切换时才显示:

<style>
.map {height: 100px; width: 300px; position: absolute; background:green;}
.t1  {height: 100px; width: 0; position: absolute; background:red;}
.t2  {height: 100px; width: 0; position: absolute; background:blue;}
</style>


<html>
<div id="test">Map Details</div>
<div id="test2">Map Details 2</div>
<div id="close">Close</div>


<div class="map">Im a map</div>


<div class="t1 common"></div>

<div class="t2 common"></div>
</html>

<script>
$(document).ready(function () {
    var visible=true;
    $("#test").on('click', function() { 
        $('.t1').animate({width: visible ? 300 : 0}, "slow");
         visible=!visible;  }); 
     $("#test2").on('click', function() { 
        $('.t2').animate({width: visible ? 300 : 0}, "slow");
         visible=!visible;         
    });
    $("#close").on('click', function() { 
        $('.common').animate({width: visible ? 0: 0}, "slow");
         visible=!visible;         
    });
});
</script>
javascript jquery toggle
1个回答
1
投票

将动画的回调参数用于动画后执行的动画,并通过将文本包装在span中来切换文本

function f1(){
    if (visible)$('span').show();
    else $('span').hide();
}
//...
$('.t1').animate(
   {width: visible ? 300 : 0},
   "slow",f1);

http://jsfiddle.net/aLz6qh7t/7/

© www.soinside.com 2019 - 2024. All rights reserved.