zoukankan      html  css  js  c++  java
  • python全栈开发day47-jqurey

    一、昨日内容回顾

    二、今日内容总结

        1.jquery的介绍

           1)、为什么要用jquery?

              # window.onload 事件有事件覆盖的问题,因此只能写一个事件。

              # 代码容错性差

              # 浏览器兼容性问题。

              # 书写很繁琐,代码量多。

              # 代码很乱,各个页面到处都是

              # 动画效果很难实现

              2)、jquery两大特点

                # 链式编程

                # 隐式迭代

           3)、jquery的引入步骤

               (1)引包

               (2)入口函数

               (3) 功能实现代码(事件处理)

                

           4)、jqurey的入口函数的三种写法

                

            // 1. 文档加载完毕,图片不加载的时候,就可以执行这个函数
            $(document).ready(function() {
                alert(1);
            })
            // 2. 写法一的简单写法
            $(function(){
                alert(1);
            })
            // 3. 文档和图片都加载完毕的时候,再执行这个函数
            $(window).ready(function(){
                alert(1);
            })

           5)、jquery和js入口函数的两大不同点

            区别一:书写个数b不同:

                # js的入口函数只能出现一次,出现多次会存在事件覆盖的问题

                # jQurey的入口函数,可以出现任意多次,并不存在事件覆盖问题

            区别二:执行时机不同:

                # js的入口函数是在所有的文件资源加载完毕后,才执行。这些文件资源包括:页面文档、外部的js文档、外部的css文档、图片等。

                # jQuery的入口函数,是在文档加载完成后,就执行。文档加载完成指的是:DOM树加载完成后,就可以操作DOM了,不用等到所有的外部资源都加载完成。

                文档加载的顺序:从上往下,边解析边执行。

           6)、jQuery对象和DOM对象相互转换

                # jQuery对象转换成DOM对象

                $('div')[0]

               # DOM对象转换成jQuery对象

                $(this)

              7)、jqurey内部封装原理

               1、使用闭包函数实现模块化,并创建对象,在原型上添加方法

               2、每次调用完一个方法之后,它的返回值是一个对象(jQuery对象)(链式编程)

               3、给jQuery对象封装了属性和方法,99%的都是方法,jQuery对象是类似为数组的

               4、属性:索引(与DOM对象之间转化)、length方法。

             8)、DOM2级事件分为三个阶段:1.捕获阶段 2.处于目标阶段 3.冒泡阶段 (了解)

              所有的事件方法都会有一个事件对象:event

        2.jquery的选择器

            1)、基本选择器

              

            2)、层级选择器

              

            3)、过滤选择器

                

            4)、属性选择器

                

            5)、筛选选择器

                

        3.jquery的动画效果

            1)、显示隐藏动画 hide、show、toggle             

            2)、滑入滑出动画slideDown、slideUp、slideToggle

    <!DOCTYPE html>
    <html>
    <head>
        <title></title>
        <style type="text/css">
            .box{
                display: none;
                width: 300px;
                height: 300px;
                background-color: red;
            }
        </style>
    </head>
    <body>
        <button class="btn">显示</button>
        <div class="box">
            
        </div>
        <script src="jquery.js"></script>
        <script type="text/javascript">
            var isshow = true
            $(document).ready(function() {
                $('.btn').click(function(){
                    // if(isshow){
                    //     $('div').show(2000,
                    //         function(){
                    //             isshow=false;
                    //             $('.btn').text('隐藏');});
    
                    // }else{
                    //     $('div').hide(2000,function(){
                    //         isshow=true;
                    //         $('.btn').text('显示');
                    //     });
                    //     }    
    
                    $('div').stop().toggle(1000,function(){
                        if($('.btn').text()=='隐藏'){
                            console.log($('.btn').text());
                           $('.btn').text('显示');
                        }else{
                           $('.btn').text('隐藏');
                        }
    
                    })            
                })
    
            })
        </script>
    </body>
    </html>
    例子      
    <!DOCTYPE html>
    <html>
    <head>
        <title></title>
        <style type="text/css">
            .box{
                display: none;
                width: 300px;
                height: 300px;
                background-color: red;
            }
        </style>
    </head>
    <body>
        <button class="btn">显示</button>
        <div class="box">
            
        </div>
        <script src="jquery.js"></script>
        <script type="text/javascript">
            var isshow = true
            $(document).ready(function() {
                $('.btn').click(function(){
    
                    $('div').stop().slideToggle(1000,function(){
                        if($('.btn').text()=='隐藏'){
                            console.log($('.btn').text());
                           $('.btn').text('显示');
                        }else{
                           $('.btn').text('隐藏');
                        }
    
                    })            
                })
    
            })
        </script>
    </body>
    </html>
    View Code

            3)、淡入淡出 fadeIn、fadeOut、fadeToggle

            4)、自定义动画 animate   

               5)、停止动画   

    $(selector).stop(true, false);
    里面的两个参数,有不同的含义。
    
    第一个参数:
    
    true:后续动画不执行。
    
    false:后续动画会执行。
    
    第二个参数:
    
    true:立即执行完成当前动画。
    
    false:立即停止当前动画。
    
    PS:参数如果都不写,默认两个都是false。实际工作中,直接写stop()用的多。
    参数解释
    <!DOCTYPE html>
    <html>
    <head lang="en">
        <meta charset="UTF-8">
        <title></title>
        <style type="text/css">
            * {
                margin: 0;
                padding: 0;
            }
    
            ul {
                list-style: none;
            }
    
            .wrap {
                width: 330px;
                height: 30px;
                margin: 100px auto 0;
                padding-left: 10px;
                background-color: pink;
            }
    
            .wrap li {
                background-color: green;
            }
    
            .wrap > ul > li {
                float: left;
                margin-right: 10px;
                position: relative;
            }
    
            .wrap a {
                display: block;
                height: 30px;
                width: 100px;
                text-decoration: none;
                color: #000;
                line-height: 30px;
                text-align: center;
            }
    
            .wrap li ul {
                position: absolute;
                top: 30px;
                display: none;
            }
        </style>
        <script src="jquery.js"></script>
        <script>
            //入口函数
            $(function() {
                // 需求:鼠标放入一级li中,让他里面的ul显示。移开隐藏。
                    var oF_li = $('.wrap>ul>li');
                    //绑定事件,移动至一级li,下拉显示ul
                    oF_li.mouseenter(function(){
                        $(this).children('ul').stop().slideDown(1000);
                    });
                    //绑定事件,移开一级li,上卷隐藏ul
                    oF_li.mouseout(function(){
                        $(this).children('ul').stop().slideUp(1000);
                    });
            })
        </script>
    
    </head>
    <body>
    <div class="wrap">
        <ul>
            <li>
                <a href="javascript:void(0);">一级菜单1</a>
                <ul>
                    <li><a href="javascript:void(0);">二级菜单2</a></li>
                    <li><a href="javascript:void(0);">二级菜单3</a></li>
                    <li><a href="javascript:void(0);">二级菜单4</a></li>
                </ul>
            </li>
            <li>
                <a href="javascript:void(0);">二级菜单1</a>
                <ul>
                    <li><a href="javascript:void(0);">二级菜单2</a></li>
                    <li><a href="javascript:void(0);">二级菜单3</a></li>
                    <li><a href="javascript:void(0);">二级菜单4</a></li>
                </ul>
            </li>
            <li>
                <a href="javascript:void(0);">三级菜单1</a>
                <ul>
                    <li><a href="javascript:void(0);">三级菜单2</a></li>
                    <li><a href="javascript:void(0);">三级菜单3</a></li>
                    <li><a href="javascript:void(0);">三级菜单4</a></li>
                </ul>
            </li>
        </ul>
    </div>
    </body>
    </html>
    鼠标悬停显示和隐藏下拉菜单

             

    三、预习和扩展

      1.浮动的盒子居中:  

    <!DOCTYPE html>
    <html>
    <head>
        <title></title>
        <style type="text/css">
            .box{
                width: 300px;
                height: 300px;
                background-color: red;
                position: fixed;
                left: 0;
                right: 0;
                top: 0;
                bottom: 0;
                margin: auto;
            }
        </style>
    </head>
    <body>
    <div class="box"></div>
    </body>
    </html>
    View Code

      2.vertical-align:

        1) 只有在行内块设置为middle才会居中

       2) 父级原始不是行内块,设置为inline-block没用,设置为table-cell可以,但是必须在标准流,relative下,而fixed,absolute,float不行。

       3)不行的情况,暂时通过lineheight设置进行解决。

        https://blog.csdn.net/eau93/article/details/38656907

    <!DOCTYPE html>
    <html>
    <head>
        <title></title>
        <style type="text/css">
            *{padding: 0;
                margin: 0;}
            .box{
        /*        position: absolute;*/
                float: left;
                display: table-cell;
    /*            line-height: 100px;*/
                width: 1260px;
                height:100px;
                background-color: #A29F9F;
                vertical-align: middle;
                text-align: center;
                }
            
        </style>
    
    </head>
    <body>
    <div class="box">
    <!--     你好 -->
            <img src="logo_top_red.png">
    
    </div>
    </body>
    </html>
    View Code

       3. attr和prop()获取和设置属性的区别

    • 对于HTML元素本身就带有的固有属性,在处理时,使用prop方法。
    • 对于HTML元素我们自己自定义的DOM属性,在处理时,使用attr方法。

        4.设置border输出小三角CSS

        

           #box{
              height: 0;
               0;
              border-top: 10px solid black;
              border-left: 10px solid green;
              border-right: 10px solid blue;
              border-bottom: 10px solid red;
           }
  • 相关阅读:
    手动去除迅雷7广告
    MIPS学习笔记
    龙芯中断系统
    《ecos增值包》之FAT文件系统篇
    MIPS架构学习笔记
    【3D数学】之向量
    【温故Delphi】之窗口ShowModal
    【Manage It】之项目规划
    【3D数学】之坐标系
    【Manage It】之启动项目
  • 原文地址:https://www.cnblogs.com/wuchenggong/p/9267946.html
Copyright © 2011-2022 走看看