怎么用js或jq点击展开,出现隐藏的DIV,点击收起DIV又隐藏起来?

JavaScript08

怎么用js或jq点击展开,出现隐藏的DIV,点击收起DIV又隐藏起来?,第1张

[ h1 ^]\x0d\x0a||\x0d\x0a|div1 |\x0d\x0a||\x0d\x0a\x0d\x0a如图所示:h1是你说贴出的两个图(展开、收起)\x0d\x0adiv1是你要展开后弹出的层\x0d\x0a\x0d\x0a$("#h1").click(function () {\x0d\x0a$("#div1").toggle("slow",function () {\x0d\x0aif ($(this).attr("style").toLowerCase().indexOf("none") == -1) {\x0d\x0a$("#imgBasicInfo").attr("src", "../../Images/BarUp.gif")\x0d\x0a}\x0d\x0aelse {\x0d\x0a$("#imgBasicInfo").attr("src", "../../Images/BarOpen.gif")\x0d\x0a}\x0d\x0a})\x0d\x0a})\x0d\x0aimgBasicInfo为你要显示的展开、收起的图片动态

在element-ui中采用NavMenu导航菜单作为系统菜单的实现。

官方文档中NavMenu导航菜单有一个Menu Attributes属性collapse,是一个 bollean 类型,用于控制是否水平折叠菜单。

我们可以通过设置collapse属性的值为 true 或 false 来控制菜单的折叠与展开。

解决方案

1.实现一个按钮,

2.在data中定义一个数据collapse

3.实现方法toggleCollapse

4.在el-menu中动态绑定属性值collapse

问题:在左侧菜单的展开与折叠中,文本和图标折叠了,但是菜单的长度并没有折叠,发现原因是菜单的长度给了一个固定的值,而实际上我们需要动态给定长度。如果菜单是展开的,长度是等于文本的长度+图标的长度。如果菜单是折叠的,长度是等于图标的长度。我们可以根据isCollapse的值进行判断,通过它的值为true或者是false,来给定不同的长度:

<script src="jquery-1.8.2.js"></script>

<script>

/*展开和收起用一个div,也可以说它是个按钮,假设它的id=d1

假设需要显示和隐藏的div叫d2

下面这段代码只是粗略的实现了你的要求,主要是给你提供个思路

*/

$(function(){

$('#d1').click(function(){//给d1绑定一个点击事件

           

        /*这个判断的意义是,如果d2是隐藏的,那么让它显示出来,并将d1的文本内容替换成收起,

        如果是显示的,那么就隐藏它并将d1的文本内容替换为展开*/

        if($('#d2').is(':hidden'))

        {

          $('#d2').slideDown('slow')  

          $(this).text('收起')

        }else{

          $('#d2').slideUp('slow')

          $(this).text('展开')  

            }

               

    /*这是一个很简单的事件处理,如果还需要跟上图片的变换,就在判断的对应位置写入图片或者背景变换的代码,*/

})

})

</script>

<div id='d1'>展开</div>

<div id='d2' style=" display:none">内容</div>