zoukankan      html  css  js  c++  java
  • jq

    【1.jq简介】
    jQuery出生于2006年 是一个美国人约翰写的,它出生的目的是简化js书写,jq的广告语:写的少,做的做。它和js是父子关系;

    【2.什么是DOM】
    dom其实就是我们的document;

    【3.为什么要学习jq】
    因为jq书写简单,容易理解,兼容性好(解决了几乎所有的兼容性问题)。

    【4.jq的书写步骤】
    1.加载jq文件
    2.换一行再写script标签
    3.写jq版的window.onload :  $(function(){ 这里是代码 })
    4.利用“金钱”收买元素 : $('想要获取的元素')
    5.jq的事件不用加on,直接写匿名函数即可 : click(function(){ 代码 })

    【5.关于入口函数】
    window.onload 只能写一个,如果写了多个,只会执行最后一个
    $(function(){})  可以写多个 并且都会执行

    【6.关于对象】
    DOM对象:    利用document获取的是DOM对象   安卓手机:安卓系统、双卡双待、换电池
    jQuery对象: 利用$('') 获取的是jQuery对象  苹果手机:ios系统、单卡单待、不能电池

    结论:对象之间的方法和属性是不能通用的;

    【7.对象之间的转换】
    DOM对象转换为jq对象:用金钱收买它:  $(box) 这样就可以实现转化 转化之后就可以使用jq的方法和属性了;

    jq对象转化为DOM对象:写法1:.get(0)   写法2:[0]  注意:这个0是编号,意思是获取的第几个元素

    【8.用jq控制css】
    书写格式: .css('属性名','属性值');
    注意:控制复合属性的时候,有两种写法 1.完全按照css的书写格式例:background-color
    2.按照驼峰命名法的写法 例:backgroundColor

    多属性的修改:.css({'属性名1':'属性值1','属性名2':'属性值2','属性名3':'属性值3'.......});
    注意:不要学坏 该用单引号括起来的就一定不能省,这样做会让你犯错误的几率降到最低

    获取css属性: .css('要获取的属性名');

    【9.用jq控制标签属性】
    同css的语法,只不过换成attr而已

    【10.修改html内容】
    使用html()  例: html('这里面写成什么,<h1>就会改成什么</h1>'); 注意这里面的标签是给浏览器看的;

    【11.jq动画】
    (1)渐变动画
    hide()   隐藏
    show()   显示
    toggle() 在显示和隐藏之间切换
    注意:如果想实现渐变动画 必须添加时间参数 否则看不到动画效果

    (2)滑动动画
    slideUp()      滑动隐藏
    slideDown()    滑动显示
    slideToggle()  滑动切换
    注意:滑动动画如果不加时间参数 默认也是有动画效果的

    【12.jq的选择器】
    (1)jq的基本选择器
    $('#id')        id选择器
    $('.class')     类选择器
    $('div')        标签选择器
    $('*')          通配符选择器
    $('div,li,a')   多条件选择器
    $('.demo li')   子代选择器
    $('.demo>li')   选择第一级的子代
    $('.demo+li')   紧挨着的下一个
    $('.demo~li')   指定标签后面的所有同级

    (2)jq的过滤选择器
    特点: 冒号开始
    $('div:first')          找第一个
    $('div:last')           找最后一个
    $('div:not(.demo)')     找所有的div但是里面不能有叫demo的
    $('div:eq(2)')          找第三个div
    $('div:gt(2)')          找大于三的div
    $('div:lt(2)')          找小于三的div

    (3)筛选选择器
    父:  $('p').parent()       找父亲
    子:  $('li').children()    找儿子
    兄弟:$('.demo').siblings() 找兄弟(找我的小伙伴)

    【13.jq的动画排队机制】
    在jq当中有一种机制:如果动画被执行了多次,那么一定会按照次数执行完毕,有的时候我们不想要这样的事情发生,解决办法: 在动画之前加上stop() 就可以取消动画排队的机制

    【1.jq中的链式编程】
    在jq中但凡是针对同一目标进行的操作,都可以利用点语法连续来书写,这种形式叫链式编程

    【2.jq中的索引值】
    在jq中元素自带的有一个索引值 我们只需要 .index() 就可以获取了

    【3.控制class】

    addClass()       添加类
    removeClass()    删除类
    hasClass()       判断是否有某一个类(判断的结果是true或者false)
    toggleClass()    切换类 如果有某一个类那么就删除它,如果没有就加上
    注意:这一系列的方法 小括号中都不加“点” ,我们使用attr()也可以设置class,但是既然jq已经给我们准备好了专门class的方法 哪么我们就不要再使用attr去控制class了
    例  addClass('myClass')

    【4.节点操作】
    在选定标签的内部添加
    (1)append()    添加在指定元素的最后
    (2)prepend()   添加在指定元素的最前

    在同级添加
    (1)after()     在同级之后添加
    (2)before()    在同级之前添加

    添加节点的书写步骤
    1.创建节点: var myTag = $('<li>222</li>');
    2.有了节点之后 再通过添加节点的4个方法来进行添加

    删除节点:
    $('ul').remove()   彻底的删除标签(斩草除根)

    清空节点:
    $('ul').empty()    只删除元素内部的标签(斩草留根)

    【5.关于val】
    在jq中我们如果想获取一个标签的value值直接可以使用val() 方法
    注意:textarea标签获取值的时候要用val() 不能用html()

    【6.移动节点】
    insertBefore()   在之前插入

    insterAfter()    在之后插入
    例子:$('ul li').eq(2).insertBefore($('ul li').eq(0));
    解释:把ul下面的第三个li执行了一个剪切操作,粘贴到了第0个li的前面

    【7.替换节点】
    $('div').replaceWith('这里写要替换的标签');

    【1.fade动画】
    fadeOut()     淡出动画
    fadeIn()      淡入动画
    fadeToggle()  切换       例:fadeToggle(时间)
    fadeTo()      改变透明度 例:fadeTo(时间,透明度的值)------fadeTo(1000,0.5)  
    注意:带有动画的操作(hide、show、toggle、slide系列) 一般来说可以写这几个英文单词来控制速度 fast slow normal 在使用的时候要用单引号括起来 才能生效

    【2.animate自定义动画】
    结构:animate({'属性名1':'属性值1','属性名2':'属性值2'......},时间)
    例:animate({'left':'200px','top':'200px'},1000);

    注意:不能写非数值型的属性例如(background是不行的),如果写了两个以上的参数,那么他们的数值是同时在变化的,如果你想让他们分别执行,哪就必须写两个animate动画

    delay(时间) :控制动画运行到此处的时候要暂停一下 例: delay(1000)

    【3.关于animate的stop】
    我们说过slide动画系列 如果添加了两次 :slideDown().slideUp()像这样的动画效果 我们要加上stop的位置必须是在第一个动画之前,因为这是jq给我们预备好的方法,我们只能这样去停止动画,而我们在写animate动画的时候,如果执行了两次自定义的animata,那么每次animate都要加stop

    【4.局部变量和全局变量】
    在js中一对大括号代表着一个独立的空间,在这个空间当中声明的变量相对于这个大括号来讲是全局变量,而相对于其他的大括号来讲,就是一个局部变量。
    在js中有一个关键性的概念:局部变量只能在自己的大括号中被使用,在其他的大扩号中是不能被获取的。

    【5.each函数】
    each函数就是为了替代for循环存在的,一般用在需要把多个元素单独控制的情况下:
    each(function(index,element){})  index代表第几个元素 element代表循环当次那个元素
    $(element)  这样写代表的是当前循环的那个元素 

    【6.事件坐标】
    在我们的事件的function(e)这里面的e代表的是事件被触发时候的坐标信息
    我们可以通过e.pageX和e.pageY 来获取x轴和y轴的坐标值

    【7.鼠标移动事件】
    mousemove()  只要移动了鼠标,哪怕是1px,都会触发。 这个mousemove事件一般是加给浏览器窗口的;例:$(window).mousemove(function(e){ 这里就可以用e来获取坐标值了 })

    【1.渐进增强理论】
    随着浏览器版本的增强,能看到的效果也会越来越好,但是我们还要保证低版本的浏览器能够正常的使用。

    【2.元素偏移】
    scroll 事件 是用来获取滚动条运动的事件
    一般来说这个scroll事件是加给window   格式: $(window).scroll(function(){执行代码})

    scrollTop() 这个是滚动条 滚动的垂直距离 如何获取:$(window).scrollTop();

    【3.知识点】
    1.小知识点:子绝对 父相对 也可以 子绝对 父固定
    2.console.log() 这种检测方式要用浏览器的f12功能里面的 console的功能区查看的,因为我们有时候要测试代码用alert()会被多次执行,会弹出多个对话框,十分的不方便,用console.log(代码) 就会很方便的查看多次运行的事件了

    3.关于在scroll事件当中使用stop的事情: 因为scroll事件是被多次执行的 如果代码里面有动画效果,那么会被多次的执行,就会触发我们的动画排队机制,如果想取消掉,就给动画之前加上stop()

    【4.关于元素距离顶部的距离获取】
    $('.nav').offset().top  这样可以获取nav距离顶端的距离

    【5.关于一道面试题】
    position: static;  这个事定位元素的默认值

    【6.控制scrollTop】
    $('html,body').animate({'scrollTop':'0px'},500);
    这里的选择器必须要写 html和body 为了兼容性。

    【7.获取当前窗口的信息】
    $(window).height()  获取当前窗口的高度
    $(window).width()   获取当前窗口的宽度

  • 相关阅读:
    浅谈SQL Server事务与锁(上篇)
    浅谈缓存技术在ASP.NET中的运用
    浅谈ASP.NET框架
    浅谈Google Chrome浏览器(操作篇)(上)
    浅谈Google Chrome浏览器(理论篇)
    linux安装字体
    【tomcat系列】详解tomcat架构(上篇)
    【tomcat系列】配置tomcat远程访问
    从实战角度超级详解中大型企业微服务化的六大核心关键技术
    Idea Intellij 终生破解版
  • 原文地址:https://www.cnblogs.com/lifushan/p/6493353.html
Copyright © 2011-2022 走看看