jQuery

JQuery简介

jQuery是一个快速、小型的、特性很多的JS库,它把很多事儿都变得简单。jQuery是免费的、开源的。

jQuery有3条版本线:1.X、2.X、3.X。

jQuery 2.x has the same API as jQuery 1.x, but does not support Internet Explorer 6, 7, or 8.
jQuery2.X和1.X的功能完全一致,API完全一致,但是2.X不兼容IE6、7、8。

JQuery常用方法

选择器
$("#id")
$(".class")
$("p")
$("*")
// $ 是1个函数
// $("p") 是1个函数调用
// 返回的结果  jQuery 的内部【对象】
// 所有的p元素
// css 是设置样式
// {"color": "red"} 是 css 的参数
            
   $("p").css({color: "red"});
<p id="p1" class="c1"> p1 </p>
 $("#p1").css("color", "red");
<div class="div2"> div2 
            <p class="p2">
                哈哈
            </p>
</div>
        
<script>

 $(".div2 .p2").css("color", "red");

</script>
完成加载
// 代表在 DOM元素都加载完成之后,执行
//      $(document).ready(function() {
//           $("div").css("color", "red");
//      })
        $(function() {
            $("div").css("color", "red");
        })
        // 代表 DOM元素、图片资源都加载完成
//      $(window).ready(function() {
//           $("div").css("color", "red");
//      })
        
//      window.onload = function() {
//           $("div").css("color", "red");
//      } 

元素CSS属性获取
<div id="div1" class="c1" style="width: 100px; height: 100px;background: red;">
</div>
        
<div id="div1" class="c1" style="width: 200px; height: 100px;background: red;">
</div>
// DOM加载完成之后
$(function() {
    
    //  css 函数; 这里返回值就是宽度值
    //   $(".c1") 是 jQuery 的对象
    var a = $(".c1").css("background");
    console.log( a  );
    // a = $(".c1").style.width;
    // 不可以      $(".c1") 不是1个原生js对象
    
    // oDiv 是1个原生的js对象
//  var oDiv = document.getElementById("div1");
//  console.log(a);
})
        
动画方法

引入jQuery的插件,支持动画效果

【注意】 所有的 jQuery插件必须在 引入jQuery 之后引入

1$("div:odd").animate(json,1000,function(){
2   $(this).css("background-color","red")
});

jQuery中提供了非常牛逼的动画队列功能,相同元素的animate()方法会累积

1$("div").animate({"width":600},1000);
2$("div").animate({"height":200},1000);

不同元素的动画是同时进行的

1$("div:eq(0)").animate({"width":600},1000);
2$("div:eq(1)").animate({"height":600},1000);

JQuery中的插件

滚动事件
//  onscroll 原生中的滚动事件
// scroll 是页面滚动事件
$(document).scroll(function() {
    
    // 2. jquery 获取滚动条的高度
    var iTop = $("body").scrollTop();
    
    console.log(iTop);
    
    
    // 获取滚动条的高度
    //  1. 原生方法
//  var iTop = document.body.scrollTop;  // Firefox
//  var iTop = document.documentElement.scrollTop;  // IE
//  
//  iTop = document.body.scrollTop || document.documentElement.scrollTop || 0;
//  
//  console.log(iTop)
})
// 事件名  不需要添加 on前缀
$("#div1").click(function() {
    console.log("点击了物体1")
})
mouseenter  mouseover 都是移入的事件
 不会事件冒泡    会事件冒泡
$("#div1").mouseenter(function() {
    console.log("移入了物体1")
})
eq()方法

来看下面的结构,两个div中各自有4个p,让其中一个p变红:

1   <div class="box1">
2       <p></p>
3       <p class="teshu"></p>
4       <p class="teshu"></p>
5       <p></p>
6   </div>
7   <div class="box2">
8       <p class="teshu"></p>
9       <p class="teshu">我想红!我想当明星!</p>
10      <p></p>
11      <p></p>
    </div>

选择box2里面的1号下标的p:

1$(".box2 p").eq(1)
2$("p").eq(5)
3$(".teshu").eq(3)
$(".box2 .teshu").eq(1)
each()

each()表示遍历节点,也叫作迭代符合条件的节点。
each()语句就好比派出一个侦察兵,挨家挨户去敲门,敲开门之后做什么事情,写在function(){}里面,这里面的$(this)表示敲开门的这家。

1$("p").each(function(i){
2   $(this).animate({"width":50 * i},1000);
});
index()方法

$(this).index()是一个很常见的写法,表示触发这个事件的元素,在自己亲兄弟中的排名:

1$(".teshu").click(function(){
2   alert($(this).index());
})

点击box1里面的p,让对应的box2里面的p变红:

1//事件监听要给box1中的所有p标签,
2$(".box1 p").click(function(){
3   //有变化的是box2中对应的p
4   $(".box2 p").eq($(this).index()).css("background-color","red");
});
get()方法

get()方法和eq()方法基本一致,都仰赖$()的序列。
eq()返回的是jQuery对象,而get()返回的是原生JS对象。jQuery对象后面要跟着jQuery方法,原生对象后面要跟着原生属性、方法:

1$("p").eq(2).html("哈哈哈哈哈哈");

等价于:

1$("p").get(2).innerHTML = "哈哈哈哈哈哈";

等价于:

1$("p").eq(2)[0].innerHTML = "哈哈哈哈哈哈";

动画相关方法

内置show()、hide()、toggle()方法
1$("div").show();       //让一个本身是display:none;元素显示
2$("div").hide();       //隐藏元素display:none;
3$("div").toggle();     //切换显示状态。
                        //自行带有判断,如果可见,就隐藏;否则显示。
slideDown()、slideUp()、slideToggle()方法
slideDown : 下滑展开
slideUp:上滑收回
slideToggle : 滑动切换
fadeIn()、fadeOut()、fadeTo()、fadeToggle()方法
fadeIn()淡入
fadeOut()淡出
fadeTo() 淡到那个数
fadeToggle() 淡出入切换
stop()

停止当前的animate动画,但是不清除队列,立即执行后面的animate动画:

$("div").stop();   //等价于$(“div”).stop(false,false);

停止当前的animate动画,并且清除队列,盒子留在了此时的位置:

$("div").stop(true);   //等价于$(“div”).stop(true,false);

瞬间完成当前的animate动画,并且清除队列:

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

瞬间完成当前的animate动画,但是不清楚队列,立即执行后面的动画:

$("div").stop(false,true);

公式:

stop(是否清除队列,是否瞬间完成当前动画)

如果没有写true或者false,默认是false

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,271评论 5 466
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,725评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,252评论 0 328
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,634评论 1 270
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,549评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 47,985评论 1 275
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,471评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,128评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,257评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,233评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,235评论 1 328
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,940评论 3 316
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,528评论 3 302
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,623评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,858评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,245评论 2 344
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,790评论 2 339

推荐阅读更多精彩内容

  • $(”p”).addClass(css中定义的样式类型); 给某个元素添加样式 $(”img”).attr({sr...
    专注寒冰三千岁阅读 501评论 0 4
  • JQuery 1、JQuery特点 (1)轻量级(2)链式语法(3)简单(4)写的更少,做的更多 2、本地调用: ...
    Lizzy95阅读 257评论 0 1
  • 原文链接 http://blog.poetries.top/2016/10/20/review-jQuery 关注...
    程序员poetry阅读 16,632评论 18 503
  • Attribute: $("p").addClass(css中定义的样式类型); 给某个元素添加样式 $("img...
    扑克脸_457e阅读 554评论 0 1
  • 为甚嚒要学习jQuery? 因为JS中有很多痛点: window.onload事件只能出现一次,如果出现多次,后面...
    magic_pill阅读 808评论 0 13