zoukankan      html  css  js  c++  java
  • jQuery

    JS入口函数与JQ入口函数的区别?

    jq的入口函数(两种)

    第一种:

    $(document).ready(function(){

            console.log('a');

          });

    第二种:

    $(function(){

            console.log($('div'));

           });

    js的入口函数

    window.onload=function(){

            alert(1);

           });

    区别:

    ①js的入口函数比jq的入口函数慢一些,js要等页面所有内容加载完成之后执行,jq等页面结构(节点)加载完成之后就会执行;

    ②js的入口函数后面的会执行前面的,而jq的入口函数则不会覆盖。

    JS与JQ的转化?

    var oDiv = document.getElementById("div1");   //js元素

    js--->jq  //给获取的元素增加$即可

    var $div = $("#div1");

    jq--->js    //jq是类数组,所以有下标有长度,可以通过下标的方式拿到js

    var $js = S("#div1")[0];

    JQuery中$的含义?

    $就是一个函数,$(),有三种用法,参数不同功能不同。

    ①参数是一个function,也就是入口函数;

        $(function(){

         });

    console.log(typeof $);

    ②$(obj)把js对象转化为jq对象的写法;

    ③$("字符串")用来找对象的--->$("div ul li")

    选择器

    子代、后代、交集、并集、id 、class、tagname

    过滤选择器和筛选选择器

    过滤选择器:在获取元素字符串之间添加

    $("li:eq(0)").css("background","red");

    筛选选择器:是方法,在获取元素字符串之外使用

    $("li").eq(0).css("background","yellow");

    $('ul').children().css('background','green');

    children()    :找子代

    find()           :找后代

    parent()       :找父元素

    siblings()     :找兄弟

    next()          :下一个兄弟

    prev()          :上一个兄弟

    eq()             :通过指定下标获取元素

    JQ中单个样式和多个样式的设置

    $(function(){

    //even   代表下标为偶数的,odd 代表下标为奇数的

     

    //css(属性,值), 设置单个属性

    // $('li:even').css('background','red');

    // $('li:odd').css('background','yellow');

    // $('li:lt(4)').css('background','green');

    // $('li:gt(6)').css('background','yellow');

    //css({属性:值,属性:值}) 设置多个属性,用对象的方式

    $('li').css({

    'background':'red',

    'fontSize':'40px',

    });

    //css(属性名)  获取属性

    console.log($('li').css('background'));

    index()获取元素下标

    $(function(){

        $('li').click(function(){

            alert($(this).index());

        });

    });

    三组基本动画:

    //   show()/hide()/toggle()

    // fadeIn()/fadeOut()/fadeToggle();

    // slideDown()/slideUp()/slideToggle();

    show(),可以传参,如果不传递参数,代表没有动画执行。

    // 传参可以传数值,比如1000 代表1秒钟执行完动画,还可以传递字符串,比如:normal(正常),fast(快速),slow(减速)

    自定义动画

    animate()四个参数

    第一个参数:动画执行的方式,比如:{left:100};

    第二个参数:speed;

    第三个参数:执行的效果,比如:linear,swing;

    第四个参数:回调函数;

    $('#ipt1').click(function () {

        $('div').show().animate({ left: 300 }, 3000, 'linear', function () {

        console.log('向右移动完成');

        });

    });

    停止动画

    stop()  clearQueue---是否清楚动画队列   true

                jumpToEnd---是否跳转到当前动画的最终结果

    小例子:

    <script>

        $('#ipt1').click(function(){

            $('div').slideDown(1000).slideUp(1000);

        });

        $('#ipt2').click(function(){

            $('div').stop(true,true);

        });

    </script>

    创建元素

    // $('#box').append('<ul><li></li></ul>');

    把一个现有的标签添加的指定的标签中

    // $('p').appendTo($("#box"));

    创建p标签并添加到div中

    $('<p></p>').text( $('textarea').val()).appendTo($('div'));

    val(); 获取输入框的值

    $('textarea').val());

    append /appendTo     添加的标签为父子关系

    //创建一个div,同时把div插入到box中

    //  $('body').append('<div></div>');

    //  $('div:eq(1)').appendTo($('#box'));

     after /before   添加的标签为兄弟关系

    // $('p').before('<span></span>');

    // $('p').after('<ul></ul>');

    remove() 清除元素

    // $('ul li:eq(2)').remove();

    empty()   清空内容

    // $('ul li:eq(2)').empty();

    // $('ul li:eq(2)').text('');

    // $('ul li:eq(2)').html('');

    获取元素位置

    width();height(); 如果不传参数,则是获取元素宽度,给参数,则是设置元素的宽度/高度

    // $('div').width();

    // console.log($('div').width(500));

    innerWidth()   元素的width+padding

    outerWidth() 元素的width+padding+border

    outerWidth(true) 元素的width+padding+border+margin

    scrollLeft()    卷去的宽度

    offset() 元素相对于document的偏移    

    position() 如果有父元素,则是相对于父元素的偏移

    事件代理/委托:要给某个元素注册事件,但执行者不是代理方而是最终元素

    //delegate() 代理、委托

    // 第一个参数:事件最终的执行者,

    // 第二参数:触发事件

    // 第三个参数:要做什么事情  

    $('#box').delegate('p','click',function(){

        alert('呵呵');

    })

    //on()    一共是4个参数

    // 1:事件类型

    // 2.选择器(给谁注册事件)

    // 3.data(事件对象event)

    // 4.fn  (要做的事情)

    $('#box').on('click','p',function(e){

    //阻止冒泡传播

    // e.stopPropagation();

    alert('下雨了吗');

    })

    $('input').click(function(){

    $('<p>我是新增加的p标签</p>').appendTo($('#box'));

    })

    jq中on()的解绑

    //off(); 解绑on方法的绑定事件

    $('#box p').on('click', function () {

    console.log('哈哈');

    $('#box p').on('mouseover', function () {

    console.log('123');

    })

    $('#box p').off('mouseover');

    })

    jq中delay()延迟方法

            $('input').on('click',function(){

                    // $('div').css('display','block');

                    $('div').fadeIn(1000).delay(3000).fadeOut(2000);

                });

    jq中each()遍历

           //循环添加背景图片

        $('li').each(function(index,element){

            //  console.log(index);//索引值

            //  console.log(element);//每个元素

            $(element).css('background','url(imgs/'+(index+1)+'.jpg)')

            $(element).css('backgroundSize','100%')

        });

    jq中解决$冲突    $noConflict()

    jq懒加载

    <body>

    <div></div>

    <img class="lazy" data-original="./images/01.jpg" alt="">

    </body>

    <script src="./jquery-1.12.4.js"></script>

    <script src="./jquery.lazyload.js"></script>

    <script>

        $ (".lazy").lazyload ();

    </script>

    jq中设置多个类名和属性

    jq方法设置多个类名  addClass   保留之前的样式,增加新样式

    $('ul li').eq(7).addClass('a');//增加类名

    $('ul li').eq(7).removeClass('a');//删除类名

    $('ul li').eq(7).hasClass('a');//有没有类名

    console.log($('ul li').eq(9).hasClass('d'));//返回值为布尔类型

    // toggleClass   切换类名

    attr(属性,值)  设置单个属性

    //attr({

           // 属性:值,

           // 属性:值,

       // })

       // attr(属性);  获取属性值

    $('img').attr('title','我是通过attr改变的');

    $('img').attr({

    'alt':'老鼠',

    'title':'attr改变',

    });

    //prop()    用法与attr是一样的,只是prop用来设置布尔值类型的属性    

    // input的几个属性  type:checked, disabled selected

    $('#ipt').prop('chicked','true');

    console.log($('#ipt2').prop('checked'));

  • 相关阅读:
    JQuery缓冲加载图片插件lazyload.js的使用方法
    CSS3阴影 box-shadow的使用和技巧总结
    HTML符号大全
    TouchSlide
    响应式图片的3种解决方案
    ECMAScript arguments 对象
    call() 方法 和 apply()方法详解
    字体图标 iconfont cssfont
    响应式样式
    1-微信小程序创建项目
  • 原文地址:https://www.cnblogs.com/yee-123/p/11381067.html
Copyright © 2011-2022 走看看