JQ基础知识

01.HTML级别的事件:
    <button οnclick=fn()><button>  在html代码上 也就是button上面绑定了一个事件
    on只是一个前缀 click是事件  点击事件
    function (){}   function 是我们的声明函数的关键词  ()是我们的参数列表 
    fn()实际上就是我们定义的  事件处理程序  监听器
    函数是fn  fn() 这表示函数调用 
    当点击事件发生的时候,浏览器会帮我们调用外面的函数声明  位于函数体里面的函数fn就执行了
02.DOM0级别的事件绑定:
    btn.οnclick=function(){} btn是事件源 click是事件  function(){}是我们的监听器
    function 是btn对象上的一个方法
    由于我们DOM0级别的事件是基于属性赋值的 所以我们的每一次重新的赋值 就会将其原本的值覆盖掉
03.DOMO2级别的事件绑定:
    addEventListener("参数1","参数2")在事件池里面 添加一个事件
    参数1 是我们触发的事件  参数2是我们的回调函数  或者说 是我们的监听器
    removeEventListener("参数1","参数2") 在事件池里移除一个事件
    这里移除事件的参数2不能用function(){} 要使用外面定义好的函数 否则会出现问题 (就是将你解绑的事件 或者说 监听器 写一致)
04.client系列:
    clientWidth 指的是 内部的宽 也就是我们设定的width+左右的内边距
    clientHeight 得到的是 我们内部的高 也就是我们设定的height+上下内边距
    clientTop指的是 我们上边框的粗细 当然没有单位 默认单位都是px
    clientLeft指的是  我们左边边框的粗细 
    用于判断pc端还是移动端,上来先得到一屏得宽度 然后根据这个宽度来判断用户是通过手机端访问 还是移动端访问
    注意:不能进行设置  只能获取到值    得到的是一个数值,没有单位
           得到的一定是一个整数,不是小数       不管你的内容是否溢出 得到的是可视区的大小
05.offset系列:
    offsetTop是我们得偏移量 就是我们这个元素 相对于参考点上面得距离
    offsetLeft是我们得偏移量 就是我们这个元素 相对于参考点左面得距离
    offsetParent得到是参考系   参考它的父级
    offsetWidth就是内容width宽+左右两边得Padding+左右两边得border
06.scroll系列:
    scrollHeight真正内容的高度   clientHeight可视区的高度
    scollTop 卷上去的距离
    只要有滑动条 并且你滚动 不论是朝上还是朝下 朝左还是朝右 只要滚动 就会触发的事件
    上面卷起来的长度 就是我们的scollTop
07.定时器
    setTimeout 一次性定时器      setInterval 循环定时器
    clearTimeout()  关闭一次性定时器  括号里面填你的函数名    clearInterval()   关闭循环定时器

01-tab选项卡
    先找到所需要的节点
    通过循环给到每一个span添加指针悬浮事件
    先取消所有的类,再给到鼠标指针所选中的
    处理下面的ul li 还是先隐藏,再把所需要的显示出来
    (onmouseover   鼠标指针移动到指定元素所发生的)


02-导航条吸顶
    拿到需要用到的节点 要拿到导航条到顶部的距离offestTop
    添加滚动事件 onscroll
    定义一个变量表示对顶部的一个偏移量
    当这个偏移量大于等于导航条到顶部的一个距离时,通过css的绝对定位将其固定,让它等于fixed的值


03-图片延时加载
    data-src=""是我们的自定义属性 如果你要用自定义属性的话 需要使用data-开头 ,src表示的是二次请求的地址
    拿到img,     卷上去的高度,      满屏可视区的高度         卷上去的高度+一屏的高度(ot)
    通过for of 拿到图片上面的偏移量 
    当卷上去的高度+一屏的高度>=ot+100 时    这个100就是说你的图片已经出来100了
    我们返回所需要的属性值data-src


04-滚动新闻列表
    先拿到 div 和ul的节点 要获取ul的真实内容高度
    对 ul进行定位 
    为了让我们的内容能够不断循环   
    我们通过ul.innerHTML+=ul.innerHTML;实现不停循环
    添加定时器  
    setInterval(function(){       
                                        },50)   
    定义一个top
    let top=Math.abs(parseInt(ul.style.top))
    Math.abs为绝对值   parseInt返回一个整数   ul.style.top表示滚动上去的值
    if top的值大于ul的真实的高度值 我们让top的值=0,也就是说让ul下来重新滚动
    else 让top的值parseInt(ul.style.top)-2+"px"   -2+“px”是向上移动的像素
    

05-弹幕效果
    拿到按钮
    添加按钮点击事件 先定义一个定时器timer为null
    拿到输入框的值value
    定义一个出来的弹幕标签span  把word内容写进去 innerHTML
    给sapn一个绝对定位     
    定义冲出来的位置     
    将span挂载到dom树上
    添加定时器 设置多少秒所移动的距离
    同时要做一个判断,判断span是否移动到了屏幕外
     if(parseInt(span.style.left)<-1*span.offsetLeft)
    span.offsetLeft表示span到屏幕的距离
    当冲出屏幕外会变成负值,让其*-1是负负得正,这样条件才能成立
    当超出后移除span removeChild(span);
    然后清空定时器避免影响到下一个弹幕
    (Math.floor 就是去掉一个数字小数点后面)
    

06-拖拽
    定义鼠标起始X轴坐标,鼠标起使Y轴坐标,新移动到的X,Y轴坐标,盒子起使X,Y轴坐标,盒子新移动到的X轴Y轴坐标,X轴和Y轴移动的距离
     let mouseX,mouseY,newMouseX,newMouseY,divX,divY,newDivX,newDivY,disX,disY;
    添加鼠標按下事件 onmousedown
    定义鼠标按下时的坐标
    mouseX=e.clientX;
    mouseY=e.clientY;
    (e.clientX 和 e.clientY 就是鼠标当前的坐标)
    鼠标按下的时候 还要获取盒子左上角的坐标 offsetTop offsetLeft
    divX=box.offsetLeft; 
    divY=box.offsetTop; 
    添加鼠标在目标元素中移动事件  onmousemove
    newMouseX=e.clientX
    newMouseY=e.clientY
    (鼠标移动的距离 X轴移动的距离 就是我newMouseX-mouseX
       鼠标移动的距离 Y轴移动的距离 就是我newMouseY-mouseY)
    disX=newMouseX-mouseX;
    disY=newMouseY-mouseY;
    现在已经计算好距离了 下来只需要让我的盒子跟着动
    newDivX=divX+disX;
    newDivY=divY+disY;
     box.style.left=newDivX+"px";
    box.style.top=newDivY+"px";
    定义弹起事件 onmouseup
    当我们鼠标弹起的时候 需要清空  鼠标移动的事件 
    box.οnmοusemοve=null;
    


    <BOM>
01-window
    window.open    是打开一个页面  参数就是你要打开的地址
    win.close就是关闭你刚才的打开的页面   win就是你拿到的返回值
    setTimeout(要执行的代码, 等待的毫秒数)  在指定的毫秒数后调用函数或计算表达式    


02-location
    获取地址栏信息
    console.log(window.location.href);
    location是一个对象 对象是属性的无序集合
    
    设置地址栏信息 
    window.location.href=""
    
刷新
    reload就是普通刷新
    window.location.reload(true)  强制刷新
    
替换地址栏信息
    window.location.replace("")
    

03-navigator
    console.log(window.navigator.userAgent);
    我们使用这个值来判断网页是在哪个浏览器运行的
    if(/chrome/i.test(agent))
    Chrome表示当前是谷歌浏览器
    firefox   火狐浏览器
    msie       低版本的IE浏览器
    ActiveXObject   高版本的IE浏览器
    

04-history
    console.log(window.history.length);  查看你这个选项卡 当前这个窗口 他的历史总共有几个页面
    window.history.back(); 返回到上一个页面
    window.history.forward();进入到历史中的下一个页面
    window.location包含有关当前 URL 的信息  可通过href带往新地址
    window.history.go(1);进入到历史中的下一个页面

 (1)$(function(){})这就是入口函数

(2)基础选择器:
        标签选择器:$("p")选中所有的p标签
        id选择器:  $("#demo1")选中id是demo1的标签
        类选择器:   $(".demo2")选中类名是demo2的标签
        交集选择器: $("p.demo3")选中的就是类名为demo3的p标签
        分组选择器: $("h1,h2,h3")选中的是我们所有的h1,h2,h3标签
        后代选择器: $(".demo4 p")选中的是我们类名为demo4的内容中的p标签
        通配符选择器:$("*")选中我们页面上所有标签
        儿子选择器: $(".demo5>p")选中的是我们类名为demo5的儿子p标签
        兄弟选择器: $(".demo5+h1")选中的是我们类名为test5的后面一个兄弟h1 如果后面的兄弟不是h1 那么他就不起作用
        N兄弟选择器:$(".demo6~p")选中的是我们类名为demo6的后面的所有的p标签

jquery对象.css("你要修改的属性","属性值") ,jquery中的选择器和css里面的相似。

(3)子元素过滤选择器:
:root 选中根标签 也就是html标签
    :nth-child(2) 选中元素的第二个节点 
    :first-child  选中元素下的第一个节点和:nth-child(1)一样
    :last-child 选中每一元素的最后一个节点
    :nth-last-child(2) 这表示选中倒数第二个节点
    :only-child 选中每个元素中只有一个的节点
    :nth-child(2n) 和 :nth-child(even) 一样  选中每个元素中偶数的节点 从1开始算
    :nth-child(2n+1) 和 :nth-child(odd) 一样  选中每个元素中奇数的节点 从1开始算

 :nth-of-type(2) 针对的是同类型的标签 选中每个元素中第二个节点
    :last-of-type 选中某一个类型标签的最后一个
    :nth-last-of-type(2)选中的就是某一类标签的倒数第二个
    :only-of-type选中每个元素中唯一的一个元素
    :nth-of-type(2n-1)和:nth-of-type(odd)是一样的  表示选中每个元素排行为奇数的节点, 索引从1开始
    :nth-of-type(2n)和:nth-of-type(even)是一样的  表示选中每个元素排行为偶数的节点

(4)基础选择过滤器
 li:eq(0) 表示选中第一个li  eq里面加的是 索引 默认是0开始
    li:first 表示选中第一个li
    li:last 表示选中最后一个li
    li:even 表示选中偶数个的li  注意:我们这里起使坐标是0
    li:odd 表示选中奇数个的li
    li:gt(2)表示索引大于2的
    li:lt(2)表示索引小于2的
    :header 表示选中所有的标题标题标签
    li:not(:eq(1)) 选中除了第二个li(索引为1的li)之外的所有li

(5)属性选择器
[attribute] h1[title] 就是选中具有title这个属性的h1标签
    [attribute=value] h1[title=world] 这就是选中title属性值为world的标签
    [attribute!=value] h1[title!=world] 这就是选中title属性值不为world的标签
    [attribute^=value] h1[title^=hello] 这就是选中title属性值以hello开头的
    [attribute$=value] h1[title$=hello] 这就是选中title属性值以jq结尾的
    [attribute*=value] h1[title*=wangcai]这就是选中title属性值有wangcai的属性
    [attribute][id]  h1[title][id]这表示选中既有title属性的 又有id属性的

(6)内容过滤器
    :contains(text)   $("li:contains(Jquery)")选中内容包含Jquery的li
    li:has(a) 这表示 内容有a标签的
    li:empty 这是选中内容为空的li标签
    li:not(:empty) 这是选中内容不为空的li标签
    li:parent 这是匹配子元素或者文本元素的

(7)可见性选择器
 :visible 选中看得到得元素
 :hidden 选中隐藏得元素
.hide()目标元素隐藏
.val()可以拿到Input中得value值

(8)动画
show()显示目标元素
hide()隐藏目标元素
slideDown()通过使用滑动效果  显示目标元素
slideToggle()通过使用滑动效果  在显示和隐藏状态之间进行切换

animate() 用来改变css里面的样式,其改变的过程是一个渐变的过程 ,所以看起来是动画效果
animate(),()里面第一个参数 是要改变的属性和属性值 第二个参数 是改变的时间
    例如:$(this).parent().animate({right:0},500)

attr()是以前的setAttribute和getAttribute的结合体

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值