day49 jQuery webUI库

孤者浪人 提交于 2019-12-06 08:42:17
day49 jQuery webUI库
 
内容回顾
    1.事件流
        事件捕获阶段
        处于目标阶段
        事件冒泡:
            阻止事件冒泡: event.stopPropagation()
            阻止默认事件: envet.preventDefault()
            简写为: return false;
    2.事件对象
        每个事件的回调函数, 都会默认有一个事件对象event
        event.type:事件类型
        event.target:触发目标的对象
        event.keyCode:键码
    3.事件代理
        自己完成不了的事情, 交给别人去做
        原理: 运用的是冒泡的机制, 给父加事件,子冒泡去执行
        on(事件类型,子标签,回调函数)
    4.事件
        click 单击事件
        dblclick 双击事件
        mouseenter
        mouseleave
        mouseover
        mouseout
        mousedown
        mouseup
        change
        select
        submit
        addEventListener(事件类型,回调函数): 原理是用的这个, 而不是onclick这些
    5.合成事件
        hover()
            mouseenter    
            mouseleave
    6.位置信息:
        width()
        height()
        innerWidth()
        outerWidth()
        offset().top    //获取的是盒子到页面顶部的距离
        scrollTop()
        scrollLeft()
    
      
今日内容
 
webUI库
 
零.解决单双击的问题
 
<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    <button>按钮</button>
    <script src="jquery.js"></script>
    <script>
        $(function () {
            var timer = null;
            $('button').click(function (event) {
                clearTimeout(timer);        //双击的话,清第一次的单击
                timer = setTimeout(function () {
                    console.log('click');   //单击的话: 300ms后执行
                }, 300)
            });
            $('button').dblclick(function () {
                clearTimeout(timer);        //双击的话,清第二次的单击
                console.log('dblclick');
            })
        })
    </script>
</body>
</html>
 
一.css3 动画的库: 
 
<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/animate.css/3.7.2/animate.min.css">
    <title>Document</title>
    <style>
        div{
            width: 200px;
            height: 200px;
            background-color: red;
            color: #fffdef;
            line-height: 200px;
            text-align: center;
            position: absolute;
            top: 1000px;
        }
    </style>
</head>
<body >
    <div>wukong</div>
    <h2 class="animated infinite bounce delay-2s">bajie</h2> //(infinite 无限地)
    <script src="jquery.js"></script>
    <script>
        $(function () {
            // $('div').addClass('animated bounceOutLeft')
            $(document).scroll(function () {
                var scrollTop = $(this).scrollTop();
                console.log(scrollTop);
                if(scrollTop>=800) {
                    $('div').addClass('animated infinite bounce delay-2s');
                }
            })
        });
    </script>
</body>
</html>
 
    jqueryUI    www.jqueryui.org.cn
<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>jQuery UI 排序(Sortable) - 默认功能</title>
  <link rel="stylesheet" href="http://code.jquery.com/ui/1.10.4/themes/smoothness/jquery-ui.css">
  <script src="http://code.jquery.com/jquery-1.9.1.js"></script>
  <script src="http://code.jquery.com/ui/1.10.4/jquery-ui.js"></script>
  <link rel="stylesheet" href="http://jqueryui.com/resources/demos/style.css">
  <style>
  #sortable { list-style-type: none; margin: 0; padding: 0; width: 60%; }
  #sortable li { margin: 0 3px 3px 3px; padding: 0.4em; padding-left: 1.5em; font-size: 1.4em; height: 18px; }
  #sortable li span { position: absolute; margin-left: -1.3em; }
  </style>
  <script>
  $(function() {
    $( "#sortable" ).sortable();
    $( "#sortable" ).disableSelection();
  });
  </script>
</head>
<body>
<ul id="sortable">
  <li class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Item 1</li>
  <li class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Item 2</li>
  <li class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Item 3</li>
  <li class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Item 4</li>
  <li class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Item 5</li>
  <li class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Item 6</li>
  <li class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Item 7</li>
</ul>
</body>
</html>
 
    velocity.js 比jquery动画和css-transitions性能更好的javascript动画库
 
二.移动端响应式
    响应式页面 @media介绍:    (media 媒体)
        css3的@media查询: 使用这个,你可以针对不同的屏幕大小定义不同的样式
<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <!--准备工作一:-->
    <!--做响应式要写上下面这个, user-scalable用户缩放,:当是移动端的时候,是否允许用户缩放-->
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <!--准备工作二:-->
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <style>
        @media screen and (min-width: 800px){
           body{
            background-color: red;
            }
        }
        @media screen and (min-width: 1200px){
           body{
            background-color: green;
            }
        }
        @media screen and (max-width: 0px) and (min-width: 800px){
           body{
            background-color: yellow;
            }
        }
    </style>
</head>
<body>
    <script src="jquery.js"></script>
    <script>
    </script>
</body>
</html>
 
    移动端单位介绍
        px是绝对单位 
        em是相对单位:相对当前盒子
        rem相对单位:相对根(root: html)元素来调整
 
<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, minimal-ui">
        <title>移动端布局</title>
        <style type="text/css">
            *{
                padding: 0;
                margin: 0;
            }
            ul{
                list-style: none;
            }
            .clearfix:after{
                content: '';
                display: block;
                clear: both;
            }
            html{
                width: 100%;
                height: 100%;
                /*font-size: 30px; rem的单位在这 , 默认字体是16px*/
                overflow: hidden;
            }
            body{
                width: 100%;
                height: 100%;
                overflow: auto;
            }
            .head-box{
                width: 100%;
                height: 4rem;
                background-color: red;
                position: absolute;
                top: 0;
                left: 0;
            }
            .list{
                margin-top: 4rem;
                font-size: 1.5rem;
            }
            .list .item{
                float: left;
                width: 5rem;
                height: 5rem;
                border: 1px solid black;
                margin: 0.25rem;
            }
        </style>
    </head>
    <body>
        <header class="head-box">
            <div class="head-top"></div>
            <div class="head-bottom"></div>
        </header>
        <ul class="list clearfix">
            <li class="item">1111111</li>
            <li class="item"></li>
            <li class="item"></li>
            <li class="item"></li>
            <li class="item"></li>
            <li class="item"></li>
            <li class="item"></li>
            <li class="item"></li>
        </ul>
    </body>
    <script src="./js/resize.js"></script> //动态的修改根元素的font-size,需要通过js去控制
</html>
<script>
    //三元运算符
    var a = 1 == 1 ? 'true' : 'false';
    console.log(a);
</script>
 
    resize.js 用来动态计算html: font-size
 
/*获得页面宽度后动态修改html上的fontsize
* 320为iphone5设计稿下的页面宽度,如下设置后页面的页面在iphone5等宽屏幕上html
* 的font-size会变为20px,即 1rem = 100px    1px=0.05rem
* 所以设置元素尺寸的时候,如果测量设计稿 15px  则需设置尺寸为 (0.05*15)rem = 0.75rem
*/
!(function(doc, win) {
    var docEle = doc.documentElement,
        evt = "onorientationchange" in window ? "orientationchange" : "resize",
        fn = function() {
            var width = docEle.clientWidth;
            console.log(width);
            width && (docEle.style.fontSize = 20 * (width / 375) + "px");
        };
    win.addEventListener(evt, fn, false);
    doc.addEventListener("DOMContentLoaded", fn, false);
}(document, window));
 
 
 
三.Bootstrap 全局的css样式
    bootstrap: 简洁,直观,强悍的前端开发框架, 让web开发更迅速,简单    www.bootcss.com
        .container 类用于固定宽度并支持响应式布局的容器。
<div class="container">
  ...
</div>
        .container-fluid 类用于 100% 宽度,占据全部视口(viewport)的容器。
<div class="container-fluid">
  ...
</div>
         栅格系统
             栅格系统用于通过一系列的行(row)与列(column)的组合来创建页面布局,你的内容就可以放入这些创建好的布局中
<!DOCTYPE html>
<html lang="zh-CN">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <!-- 上述3个meta标签*必须*放在最前面,任何其他内容都*必须*跟随其后! -->
    <title>Bootstrap 101 Template</title>
    <!-- Bootstrap -->
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css" rel="stylesheet">
    <!-- HTML5 shim 和 Respond.js 是为了让 IE8 支持 HTML5 元素和媒体查询(media queries)功能 -->
    <!-- 警告:通过 file:// 协议(就是直接将 html 页面拖拽到浏览器中)访问页面时 Respond.js 不起作用 -->
    <!--[if lt IE 9]>
      <script src="https://cdn.jsdelivr.net/npm/html5shiv@3.7.3/dist/html5shiv.min.js"></script>
      <script src="https://cdn.jsdelivr.net/npm/respond.js@1.4.2/dest/respond.min.js"></script>
    <![endif]-->
      <style>
      </style>
  </head>
  <body>
    <div class="container">
        <div class="row">
            <div class="col-lg-3 col-md-4 col-sm-6">
                 jQuery (Bootstrap 的所有 JavaScript 插件都依赖 jQuery,所以必须放在前边)
            </div>
            <div class="col-lg-3 col-md-4 col-sm-6">
                 jQuery (Bootstrap 的所有 JavaScript 插件都依赖 jQuery,所以必须放在前边)
            </div>
            <div class="col-lg-3 col-md-4 col-sm-6">
                 jQuery (Bootstrap 的所有 JavaScript 插件都依赖 jQuery,所以必须放在前边)
            </div>
            <div class="col-lg-3 col-md-4 col-sm-6">
                 jQuery (Bootstrap 的所有 JavaScript 插件都依赖 jQuery,所以必须放在前边)
            </div>
        </div>
    </div>
    <!-- jQuery (Bootstrap 的所有 JavaScript 插件都依赖 jQuery,所以必须放在前边) -->
    <script src="https://cdn.jsdelivr.net/npm/jquery@1.12.4/dist/jquery.min.js"></script>
    <!-- 加载 Bootstrap 的所有 JavaScript 插件。你也可以根据需要只加载单个插件。 -->
    <script src="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/js/bootstrap.min.js"></script>
  </body>
</html>
 
       
三.Bootstrap的组件
    简单的复制粘贴, 根据需求来更改对应代码
 
 
   jquery miniUI 做的比较好
   jquery easyUI 
  
 
 
 
 
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!