zoukankan      html  css  js  c++  java
  • Bootstrap中的 JavaScript 特效 — 下拉菜单和滚动监听插件

    一.下拉菜单

        常规使用中,和组件方法一样,代码如下:

     1 //声明式用法
     2 <div class="dropdown">
     3   <button class="btn btn-primary" data-toggle="dropdown">
     4     下拉菜单
     5     <span class="caret"></span>
     6   </button>
     7   <ul class="dropdown-menu">
     8     <li><a href="#">首页</a></li>
     9     <li><a href="#">产品</a></li>
    10     <li><a href="#">资讯</a></li>
    11     <li><a href="#">关于</a></li>
    12   </ul>
    13 </div>

        声明式用法的关键核心:
          1.外围容器使用class="dropdown"包裹;
          2.内部点击按钮事件绑定data-toggle="dropdown";
          3.菜单元素使用class="dropdown-menu"。

        

        在JavaScript 调用中,没有属性,方法并不好用,下面介绍四个基本事件。
        //下拉菜单方法,但仍然需要data-*
        $('#btn').dropdown();
        $('#btn').dropdown('toggle');

        下拉菜单支持4 种事件,分别对应弹出前、弹出后、关闭前和关闭后。

        

        //事件,其他雷同
        $('#dropdown').on('show.bs.dropdown', function () {
            alert('在调用show 方法时立即触发!');
        });

    二.滚动监听  

        滚动监听插件是用来根据滚动条所处在的位置自动更新导航项目,显示导航项目高亮显示。

     1   //基本示例
     2    <nav class="navbar navbar-default">
     3         <a href="#" class="navbar-brand">web开发</a>
     4         <ul class="nav navbar-nav">
     5             <li><a href="#HTML5">HTML5</a></li>
     6             <li><a href="#bootstrap">bootstrap</a></li>
     7             <li class="dropdown">
     8                 <a href="#" data-toggle="dropdown">JavaScript<span class="caret"></span></a>
     9                 <ul class="dropdown-menu">
    10                     <li><a href="#jquery">jquery</a></li>
    11                     <li><a href="#Yui">Yui</a></li>
    12                     <li><a href="#ExtJS">ExtJS</a></li>
    13                 </ul>
    14             </li>
    15 
    16         </ul>
    17    </nav>
    18     <div data-offset="0" data-spy="scroll" style="padding: 0 10px; height: 200px;overflow: auto; position: relative;">
    19         <h4 id="HTML5">HTML5</h4>
    20         <p>标准通用标记语言下的一个应用HTML 标准自1999 年12 月发布的HTML4.01后,后继的HTML5 和其它标准被束之高阁,为了推动Web 标准化运动的发展,一些</p>
    21         <h4 id="bootstrap">bootstrap</h4>
    22         <p>标准通用标记语言下的一个应用HTML 标准自1999 年12 月发布的HTML4.01后,后继的HTML5 和其它标准被束之高阁,为了推动Web 标准化运动的发展,一</p>
    23         <h4 id="jquery">jquery</h4>
    24         <p>标准通用标记语言下的一个应用HTML 标准自1999 年12 月发布的HTML4.01后,后继的HTML5 和其它标准被束之高阁,为了推动Web 标准化运动的发展,一些</p>
    25         <h4 id="Yui">Yui</h4>
    26         <p>标准通用标记语言下的一个应用HTML 标准自1999 年12 月发布的HTML4.01后,后继的HTML5 和其它标准被束之高阁,为了推动Web 标准化运动的发展,一。</p>
    27         <h4 id="ExtJS">ExtJS</h4>
    28         <p>标准通用标记语言下的一个应用HTML 标准自1999 年12 月发布的HTML4.01后,后继的HTML5 和其它标准被束之高阁,为了推动Web 标准化运动的发展,一。</p>
    29     </div>

           

         PS:在一个菜单和一个容器的时候,data-target 不设置也可以稳定实现滚动监听高亮。但多个导航时,你不关联其中一个,会导致错误,所以,一般要加上。

        

           如果使用JavaScript 脚本方式,可以去掉data-*,使用脚本属性定义:offset、spy和target。具体方法如下:

    1 //使用脚本方式定义属性
    2 $('#content').scrollspy({
    3   offset : 0,
    4   target : '#nav',
    5 });

        滚动监听还有一个切换到新条目的事件

        

    1 //事件绑定在导航上
    2 $('#nav').on('activate.bs.scrollspy', function () {
    3   alert('新条目被激活后触发此事件!');
    4 });

        滚动监听还有一个更新容器DOM 的方法。

    //HTML 部分
    <section class="sec">
      <h4 id="html5">HTML5<a href="#" onclick="removeSec(this)">删除此项</a></h4>
      <p>...</p>
    </section>
    //删除内容时,刷新一下DOM,避免导航监听错位
    function removeSec(e) {
      $(e).parents('.sec').remove();
      $('#content').scrollspy('refresh');
    }
    注意:这个方法必须使用data-*声明式。
  • 相关阅读:
    java中equals和==的区别 (转)
    LoadRunner常见问题整理(转)
    python 遇到 syntaxerror: non-ascii character '/xd6' in file 我 教你解决 (python问题)(转)
    Linux查看系统性能命令
    android权限大全
    StringTokenizer类的使用
    web_reg_find()查询信息为变量
    Loadrunner执行Java脚本
    LoadRunner调用Java程序—性能测试
    Request Connection: Remote Server @ 192.229.145.200:80
  • 原文地址:https://www.cnblogs.com/dengzk/p/5283781.html
Copyright © 2011-2022 走看看