前端开发 - JQuery - 上

Posted Alice的小屋

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了前端开发 - JQuery - 上相关的知识,希望对你有一定的参考价值。

一、js的缺点

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>使用js的一些痛处</title>
    <style type="text/css">
        div{ width: 100%; height: 100px;margin: 10px 0 0 0 ;display: none; background-color: red;}

    </style>
</head>
<body>
    <button id="btn">展示</button>
    <div></div>
    <div></div>
    <div></div>

</body>
<!-- http://libs.baidu.com/jquery/2.0.0/jquery.min.js  -->
    <script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>

    <script type="text/javascript">

        $(function(){
            $(#btn).click(function () {
                $(div).css(display,block);
                $(div).html(div展示了);

            })
        });

        // window.onload = function () {
        //     var oBtn = document.getElementsByTagName(‘button‘)[0];
        //     var oDivs = document.getElementsByTagName(‘div‘);
        //
        //     oBtn.onclick = function () {
        //         for(var i=0;i<oDivs.length;i++){
        //             oDivs[i].style.display = ‘block‘;
        //             oDivs[i].innerHTML = ‘div展示了‘;
        //         }
        //     }
        // }

        /* 总结:
        *   痛处:1.书写繁琐,代码量大
        *        2.动画 开启定时器 小心定时器的清除
        *        3.各种操作和处理事件 不好实现 浏览器的兼容;
        *
        *   jquery 的出现就解决了上面出现的问题
        *
        *   jquery的官网  http://jquery.com/
        *
        *   jquery-3.2.1.js        用在开发环境
        *   jquery-3.2.1.min.js    用在生产环境
        * */
    </script>
</html>

二、jquery文件的引入

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>jquery文件的引入</title>

    <!--<script type="text/javascript">-->
        <!--// 如果不写 window.onload  代码的执行顺序是 从上到下-->
        <!--var oDiv = document.getElementById(‘box‘);-->
        <!--console.log(oDiv); //null -->
    <!--</script>-->

</head>
<body>

       <script type="text/javascript">
           // window.onload = function () {
           //     var oDiv = document.getElementById(‘box‘);
           //      console.log(oDiv); //有
           // };
           // window.onload = function () {
           //     alert(‘1111111111111‘)
           // }

        </script>

    <div id="box"></div>


</body>
    <script src="./jquery-3.2.1.js"></script>
    <script type="text/javascript">
        //如果没有引入jquery ; $ is not defined
        // console.log($);

        //jquery 是js的一个库文件,既然是库文件,就会抛出来 一个构造函数或者对象

        // 书写jquery的方式 入口函数 
        $(document).ready(function () {
            alert(111);
        });
        $(document).ready(function () {
            alert(222);
        });
        // 等价
        $(function () {
            alert(333);
        })


        /*总结:
        *   DOM文档加载的步骤
                解析HTML结构。
                加载外部脚本和样式表文件。
                解析并执行脚本代码。
                DOM树构建完成。
                    $(document).ready()
                加载图片等外部文件。
                页面加载完毕。
                    window.onload()

            执行时间不同。
                window.onload必须等到页面内包括图片的所有元素加载完毕后才能执行。
                如果不写 window.onload  代码的执行顺序是 从上到下
                $(document).ready()是DOM结构绘制完毕后就执行,不必等到加载完毕。

            编写个数不同
                window.onload不能同时编写多个,如果有多个window.onload方法,只会执行一个
                $(document).ready()可以同时编写多个,并且都可以得到执行

            简化写法不同
                window.onload没有简化写法
                $(document).ready(function(){})可以简写成$(function(){});

        * */

    </script>
</html>

三、jquery基础选择器

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>jquery基础选择器</title>
    <style type="text/css">
        /*#brother{color: red;}*/
    </style>
</head>
<body>
    <ul>
        <li id="brother">路飞学城1</li>
        <li><a href="https://www.luffycity.com">路飞学城2</a></li>
        <li class="li3">路飞学城3</li>
        <li>路飞学城4</li>
        <li>路飞学城5</li>
    </ul>

</body>
    <script src="jquery-3.2.1.js"></script>
    <script type="text/javascript">

        //使用jquery的时候 要有入口函数 回调函数
        $(document).ready(function () {

            //基础选择器
            //1.id选择器
            console.log($(#brother));
            $(#brother).css(color,red);

            //2.标签选择器
            // $(‘a‘).css(‘color‘,‘yellow‘);  // 设置一个值
            $(a).css({color:green,font-size:24px}); // 设置多个值 使用对象 key:value
            console.log($(li));

            //3.类选择器
            $(.li3).css(background,yellow);

            //4.通配符选择器 使用不频繁
            console.log($(*));

            // $(‘*‘).html(‘‘); // 清空整个界面的dom元素
            $(a).val();
            console.log($(a).val()); //清空a的val值

        })

    </script>

</html>

四、jquery层级选择器

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>jquery层级选择器</title>
    <style type="text/css">
        /*#brother{color: red;}*/
    </style>
</head>
<body>
    <ul>
        <li id="brother">路飞学城1</li>
        <li><a href="https://www.luffycity.com">路飞学城2</a></li>
        <li class="li3">路飞学城3</li>
        <li>路飞学城4</li>
        <li>路飞学城5</li>
    </ul>
    <div id="box">
        <p id="father">天王盖地虎</p>
        <p>我是你老母</p>
        <p>宝塔镇河妖</p>
        <p>蘑菇放香蕉</p>
        <div id="box2">
            <p>小鸡炖磨菇</p>
        </div>
    </div>

</body>
    <script src="jquery-3.2.1.js"></script>
    <script type="text/javascript">

        //使用jquery的时候 要有入口函数 回调函数
        $(document).ready(function () {

            //层级选择器
            //1.后代选择器 div p
            $(#box p).css(color,red);

            //2.子代选择器 div>p
            $(#box>p).css(color,green);

            //3.毗邻选择器 匹配所有的紧接着选中元素的兄弟
            $(#father+p).css(font-size,30px);

            //4.兄弟选择器
            $(#father~p).css(background,gray);

            console.log($(li));
            //5.获取第一个元素
            $(li:first).css(font-size,50px);

            //6.获取最后一个元素
            $(li:last).css(font-size,80px);

            //7.取其他的元素
            $(li:eq(2)).css(background,red);

        })

    </script>

</html>

五、jquery基本过滤选择器

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>jquery基本过滤选择器</title>
</head>
<body>
    <ul>
        <li>哈哈哈,基本过滤选择器</li>
        <li>嘿嘿嘿</li>
        <li>天王盖地虎</li>
        <li>小鸡炖蘑菇</li>
    </ul>
</body>
    <script src="jquery-3.2.1.js"></script>
    <script type="text/javascript">

        $(function () {

            //获取第一个 :first  获取最后一个 :last
            $(li:first).css(background,gray);
            $(li:last).css(background,yellow);

            // 获取奇数
            $(li:odd).css(color,red);
            // 获取偶数
            $(li:even).css(color,green);

            // 选中索引值为1的元素 用的比较多
            $(li:eq(1)).css(font-size,32px);
            //   > 1   大于索引值1
            $(li:gt(1)).css(font-size,60px);
            //   < 1   小于索引值1
            $(li:lt(1)).css(font-size,10px);
        })

    </script>
</html>

六、jquery属性选择器

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>jquery属性选择器</title>
</head>
<body>
    <div id="box">
            <h2 class="title">属性元素器</h2>
            <p class="p1">我是一个段落</p>
            <ul>
                <li id="li1">分手应该体面</li>
                <li class="what" id="li2">分手应该体面</li>
                <li class="what">分手应该体面</li>
                <li class="heihei">分手应该体面</li>

            </ul>

            <form action="" method="post">

                <input name="username" type=‘text‘ value="1" checked="checked"></input>
                <input name="username1111" type=‘text‘ value="1"></input>
                <input name="username2222" type=‘text‘ value="1"></input>
                <input name="username3333" type=‘text‘ value="1"></input>
                <button class="btn-default">按钮1</button>
                <button class="btn-info">按钮1</button>
                <button class="btn-success">按钮1</button>
                <button class="btn-danger">按钮1</button>

            </form>
    </div>
</body>
    <script src="jquery-3.2.1.js"></script>
    <script type="text/javascript">

        $(function () {

             //标签名[属性名] 查找所有含有id属性的该标签名的元素
            $(li[id]).css(color,red);

            //匹配给定的属性 是what值得   //[attr=value] 匹配给定的属性是某个特定值的元素
            $(li[class=what]).css(font-size,30px);

            //没有class 也会发生变化 //[attr!=value] 匹配所有不含有指定的属性,或者属性不等于特定值的元素
            $(li[class!=what]).css(font-size,50px);

             //匹配给定的属性是以某些值开始的元素
            $(input[name^=username]).css(background,gray);

            //匹配给定的属性是以某些值结尾的元素
            $(input[name$=222]).css(background,green);

            //匹配给定的属性是以包含某些值的元素
            $(button[class*=danger]).css(background,orange);

        })

    </script>
</html>

七、jquery筛选选择器

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>jquery筛选选择器</title>
</head>
<body>
    <div id="box">
        <p class="p1">
            <span>我是第一个span标签</span>
            <span>我是第二个span标签</span>
            <span>我是第三个span标签</span>
        </p>
        <button>按钮</button>
    </div>
    <ul>
        <li class="list">2</li>
        <li>3</li>
        <li>4</li>
        <li>5</li>
    </ul>
  
</body>
    <script src="jquery-3.2.1.js"></script>
    <script type="text/javascript">
        $(function () {

            //获取第n 个元素 数值从0 开始
            // $(‘span:eq(0)‘)
            $(span).eq(1).css(color,red);

            //获取一个元素 .first .last   . 语法 包含get set
            $(span).last().css(color,greenyellow); // set
            console.log($(span).last());  // get
            console.log($(span)); // 对象 对象才有方法

            //.parent() 选择父亲元素
            console.log($(span).parent());
            $(span).parent(.p1).css({width:300px,height:400px,background:red});

            //.siblings()选择所有的兄弟元素
            $(.list).siblings(li).css(color,red);

            //.find()
            //查找所有的后代元素
            $(div).find(button).css(background,gray);

        })

    </script>
</html>

八、jquery对象和Dom对象的转换

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>jquery对象和Dom对象得转换</title>
    <style type="text/css">
        #box{ width: 200px; height: 200px;background-color: red;}
    </style>
</head>
<body>
    <div id="box">
        天王盖地虎
    </div>
    <button>隐藏</button>
</body>
    <script src="jquery-3.2.1.js"></script>
    <script type="text/javascript">

        // Dom --》 jquery
        var oDiv = document.getElementById(box);
        console.log(oDiv);
        console.log($(oDiv));

        $(oDiv).click(function () {  // 回调函数
            alert(111)
        });

        // jquery --》 dom
        console.log($(button));
        console.log($(button)[0]);
        console.log($(button).get(0));

        var isShow = true;
        $(button)[0].onclick = function () {
            // alert(222)
            if(isShow){
                $(oDiv).hide();
                // this.innerText = ‘显示‘
                // console.log($(this))
                $(this).text(显示);
                isShow = false;
            } else{
                $(oDiv).show();
                $(this).text(隐藏);
                isShow = true;
            }
        }

    </script>
    <!--
        总结:
            DOM对象转换成jquery对象
                var box = document.getElementById(‘box‘);
                console.log($(box));   .click

            jquery对象转化成DOM对象
                第一种方式:
                $(‘button‘)[0]        .onclick

                第二种方式:
                $(‘button‘).get(0)    .onclick

    -->
</html>

九、jquery效果 show hide

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>jquery效果显示隐藏</title>
    <style type="text/css">
        #box{width: 100px;height: 100px;border: 1px solid red;display: none;}
    </style>

</head>
<body>
    <div id="box">

    </div>
    <button id="btn">隐藏</button>
</body>
    <script src="jquery-3.2.1.js"></script>
    <script type="text/javascript">

        //.css 控制属性
        $(#btn).click(function () {
            $(#box).css(display,block);
        });

        //2.jquery 提供了一些方法 show() hide()
        var isShow = true;
        $(#btn).click(function () {
            if(isShow){
                $(#box).show(slow,function () {
                    // alert(1)
                    $(this).text(盒子出来了);
                    isShow = false;
                    $(#btn).text(显示);
                })
            }else{
                $(#box).hide(2000,function () {
                    $(this).text(‘‘);
                    isShow = true;
                    $(#btn).text(隐藏);

                })
            }
        })

        //3.toggle 开关 如果元素显示则隐藏 反之亦然
        $(#btn).click(function () {
            $(#box).toggle(3000,function () {
                alert(111)
            });
        })


    </script>
</html>

十、jquery效果 slide

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>slide</title>
    <style type="text/css">
        #box{width: 100px;height: 100px;border: 1px solid red;display: none;}
    </style>
</head>
<body>
    <div id="box">

    </div>
    <button id="btn">隐藏</button>
</body>
    <script src="jquery-3.2.1.js"></script>
    <script type="text/javascript">
        $(function () {

            $(#btn).hover(function () {
                $(#box).slideDown(2000);
            },function () {
                $(#box).slideUp(3000);
            })

            $(#btn).click(function () {
                $(#box).slideToggle(slow);
            })

        })

    </script>
</html>

十一、jquery效果 fade 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>fade</title>
    <style type="text/css">
        #box{width: 100px;height: 100px;border: 1px solid red;background-color: yellow;}
    </style>
</head>
<body>
    <div id="box">

    </div>
    <button id="btn">隐藏</button>
</body>
    <script src="jquery-3.2.1.js"></script>
    <script type="text/javascript">
        $(function () {
            $(#btn).click(function () {
                $(#box).fadeOut(2000);
            });

            
            $(#box).mouseover(function () {
                $(#box).fadeOut(2000);
            });
            $(#btn).mouseout(function () {
                // $(‘#box‘).fadeIn(3000);
                $(#box).fadeTo(2000,0.3)
            });
            

            $(#btn).click(function () {
                $(#box).fadeToggle(3000);
            })

        })

    </script>
</html>

十二、jquery效果 animate  

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>动画效果 animate</title>
    <style type="text/css">
        #box{width: 100px;height: 100px;border: 1px solid red;background-color:
                yellow;position: absolute;}

    </style>
</head>
<body>
    <button id="btn">动画吧</button>
    <button id="stop">停止吧</button>
    <div id="box">
        hello luffy
    </div>

</body>
    <script src="jquery-3.2.1.js"></script>
    <script type="text/javascript">
        $(function () {
            $(#btn).click(function () {

                //同时执行
                $(#box).animate({
                    width:200px,
                    height:300px
                })
                
                $(#box).animate({left:100px,top:200px});

                /* 执行完一个在执行一个 */  // jquery 链式调用
                $(#box).animate({left:100px,top:200px}).delay(2000).animate({top:400px});

                $(#box).animate({left:100px,top:200px},5000);

            });

            $(#stop).click(function () {
                $(#box).stop();
            })

        })

    </script>
</html>

十三、右下角弹出小广告  

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>弹出小广告</title>
</head>
<body>
    <div id="box" style="width: 330px;height: 480px; position: absolute;right: 10px;bottom: 0;display: none;">
        <img src="广告.png" alt="" style="width: 100%;height: 100%;">
    </div>    

</body>
    <script src="jquery-3.2.1.js"></script>
    <script type="text/javascript">
        $(function () {
            //jquery 链式调用
            $(#box).slideDown(normal).slideUp(fast).fadeIn(1000).click(function () {
                $(this).fadeOut(1000);
            });

        })

    </script>
</html>

 

以上是关于前端开发 - JQuery - 上的主要内容,如果未能解决你的问题,请参考以下文章

前端jQuery UI可拖拽弹性圆形菜单按钮特效代码

25个可遇不可求的jQuery插件

弄懂 SourceMap,前端开发提效 100%

pbootcms对接微信扫码登录代码核心片段和步骤(前后端)

前端面试题之手写promise

Flutter线上代码覆盖率解决方案——FlutterCodeX