zoukankan      html  css  js  c++  java
  • 使用JQuery实现手风琴布局

    当鼠标在元素上悬停或移出时,可以通过JQuery的hover方法来给元素绑定两个处理方法,前者用于鼠标悬停,后者用于鼠标移出,因此根据这这特点再设置相应元素的css属性后就可以方便的实现手风琴布局,然而这样的却有个问题,即当鼠标移出时就导致内容被隐藏,示例代码如下:
    <html>
    <head>
    <title>Demo</title>
    <script language="javascript" type="text/javascript" src="jquery-2.1.3.js"></script>
    <style>
    .title
    {
    300px;
    height:25px;
    line-height:25px;
    text-align:left;
    vertical-align:center;
    border:1px solid blue;
     
    }
     
    .content
    {
    300px;
    height:100px;
    display:none;
    border:1px solid blue;
    }
    </style>
    <script type="text/javascript">
    $(function(){
    $(".title").hover(function(){
    $(this).next().css("display", "block");
    }, function(){
    $(this).next().css("display", "none");
    });
    })
    </script>
    </head>
    <body>
    <div class="title">
    title1
    </div>
    <div class="content">
    content1
    </div>
    <div class="title">
    title2
    </div>
    <div class="content">
    content2
    </div>
    <div class="title">
    title3
    </div>
    <div class="content">
    content3
    </div>
    <div class="title">
    title4
    </div>
    <div class="content">
    content4
    </div>
    </body>
    </html>
     
    鉴于使用hover实现手风琴布局的缺点,可以用另一种方式来实现更好的效果,即先定义一个select类样式,有该类样式的div的display属性为block,然后使用JQuery给发生click事件的title绑定事件处理方法,在改方法中首先移去select类,再给该titile的content添加select样式,代码如下:
    <html>
    <head>
    <title>Demo</title>
    <script language="javascript" type="text/javascript" src="jquery-2.1.3.js"></script>
    <style>
    .title
    {
    300px;
    height:25px;
    line-height:25px;
    text-align:left;
    vertical-align:center;
    border:1px solid blue;
     
    }
     
    .content
    {
    300px;
    height:100px;
    display:none;
    border:1px solid blue;
    }
     
    .display
    {
    display:block;
    }
    </style>
    <script type="text/javascript">
    $(function(){
    $(".title").click(function(){
    $(".content").removeClass("display");
    $(this).next().addClass("display");
    })
    })
    </script>
    </head>
    <body>
    <div class="title">
    title1
    </div>
    <div class="content">
    content1
    </div>
    <div class="title">
    title2
    </div>
    <div class="content">
    content2
    </div>
    <div class="title">
    title3
    </div>
    <div class="content">
    content3
    </div>
    <div class="title">
    title4
    </div>
    <div class="content">
    content4
    </div>
    </body>
    </html>
    第二种方式完美的实现了手风琴布局,当然也可以不使用添加类样式的方式,而通过JQuery的hide和show方法来完成同样的功能。
  • 相关阅读:
    JS 和 CSS 的位置对其他资源加载顺序的影响
    How browsers workBehind the scenes of modern web browsers
    Gruntjs入门 (2)
    Superhero.js – 构建大型 JavaScript 应用程序的最佳资源
    利用位反操作来简化 indexOf 判断
    Gruntjs入门 (1)
    js和css的顺序关系
    (翻译)理解JavaScript函数调用和"this"(by Yehuda Katz)
    秒,微秒,毫秒
    您试图从目录中执行 CGI、ISAPI 或其他可执行程序,但该目录不允许执行程序
  • 原文地址:https://www.cnblogs.com/lvniao/p/4638719.html
Copyright © 2011-2022 走看看