jQuery

一、jQuery的简介:

  1. jQuery是一个快速、简洁的JavaScript框架。John Resig是jQuery的第一创始人。
  2. jQuery的核心特性:
    具有独特的链式语法和短小清晰的多功能接口;具有高效灵活的css选择器,并且可对CSS选择器进行扩展;拥有便捷的插件扩展机制和丰富的插件。

二、JQuery常用方法:

1、选择器:

1. 标签选择器
    $("tagName");    // 引号里面是标签名,例:div

2. 类(class)选择器
    $(".className");   // 引号里面是类名。

3. id 选择器
    $("#idName");    // 引号里面是id名。

4. 通配符
    $("*");    // 引号里面是*,表示所有元素。

5. 交集选择器
    $("#idName.className");         // 引号里是标签名 /类名 /id名等中间用 . 连接。

6. 后代选择器
    $("#idName .className");   // 两个元素有空格,引号里是标签名/类名/id名等。

2、元素CSS属性获取

// 获取
$("#div1").css("width")    

// 设置
$("#div1").css("width", 200)
$("#div1").css("width", "200px")
$("#div1").css({"width": 200})   
整个页面加载完成
document.onload = 函数

// 只是加载DOM结构
$(document).ready(函数)
$(函数)   【重点】

// 所有资源都加载完毕
$(window).ready(函数)

3、序与迭代

eq()方法 
  $("p").eq(0)
index()方法   
  $(this).index()
each()  方法
   
    $(".box2 p").each(function(i) {
        // i 就是遍历的下标
        // this  代表的是当前的dom元素对象
        if (i > 0 && i < 3) {
            $(this).css({"color": "red"})
        }
      })
length属性 
   $("p").length
is() 方法  
   $("p").is(":animated") 当前元素是否在执行动画
get()方法    //      jQuery 对象 --> js元素对象\DOM对象
    // 得到js元素对象
    var a = $("p").get(0)
        a.xxx = "1024";
    var b = $("p").get(0)
        console.log(b.xxx);
    //  1024   只有1个p,原生对象只有1个

4、动画相关方法

1. animate

$("p").animate(JS对象, 动画时间, 回调函数/动画类型)

2.内置方法:
show()展示、hide()隐藏、toggle()如果元素可见,则隐藏这些元素,如果元素隐藏,则显示这些元素。
3.其他方法:
slideDown()       //   以滑动方式显示隐藏的 <p> 元素:
      $(".btn").click(function(){
        $("p").slideDown();
      });

slideUp()         //   以滑动方式显示显示的 <p> 元素:
slideToggle()     //   通过使用滑动效果,在显示和隐藏状态之间切换 <p> 元素:
fadeIn()          //   使用淡入效果来显示一个隐藏的 <p> 元素:
  $(".btn").click(function(){
      $("p").fadeIn();
    });
fadeOut()         //    使用淡出效果来隐藏一个 <p> 元素。
fadeTo()          //     将被选元素的不透明度逐渐地改变为指定的值。
语法:
$(selector).fadeTo(speed,opacity,callback)

fadeToggle()     //   用于切换所有匹配的元素,并带有淡入/淡出的过渡动画效果。

 stop()          //    停止当前正在运行的动画。
 finish()        //     完成当前正在运行的动画。
 delay()         //      对不同的 <div> 元素设置延迟:
      $("button").click(function(){                                         
           $("#div1").delay("slow").fadeIn();  
           $("#div2").delay("fast").fadeIn();
    });
 is(":animated")  //    判断元素是否处于动画状态。

5、 JQuery中的插件

  1. 滚轮事件
<script>
var y = 0;
// mousewheel 鼠标滚轮事件
$(document).mousewheel(function(e) {
    // e  是事件对象,只要发生这个事件,系统会自动传递过来
    // 如果物体正在运动,截流
    if ($("#big").is(":animated")) {
        return ;
    }
    // e.deltaY:   正: 往上滚,    负: 往下滚
    // console.log(e.deltaY);
    if (e.deltaY > 0) {
        y--;
    } else {
        y++;
    }
    // 判断
    if (y < 0) {
        y = 0;
    }
    if (y > 4) {
        y = 4;
    }
    // 更新页面
    //     获取页面高度
    var h = $("body").innerHeight();
    $("#big").animate({"top": -y*h}, 1000);
})  
</script>
  1. 轮播图
<script>

//  【练习】 用 jQuery 实现改变图片位置
// 轮播图思路:
//   1. 改变 m_unit 的 left 值,实现移动效果

// 获取图片的宽度
var w = $("#m_unit ul li").innerWidth();

// 点击右边的按钮
$("#rightBtn").click(function() {
    move();
});

setInterval(move, 1000);

// 保存轮播图的下标
var i = 0;

// 切换图片
function move() {
    
    // 函数截流
    // 判断图片是否正在动,如果是返回true,否则返回false
    if ($("#m_unit").is(":animated")) {
        // 立刻终止函数
        return ; 
    }
    
    // 指向下一张轮播图
    i++;
    
    //  -w 说明往左边移动 1张图片的宽度 
    //  i-1  ==> i
    $("#m_unit").animate({"left": -i*w}, 500, function() {
        
        // 0, 1, 2, 3, 4, 5
        //    第5张【动画结束】之后,改变指向下标 i, 
        if (i >= 5) {
            i = 0;  // 变成0
            $("#m_unit").css({"left": 0}); // 图片瞬间切换到第0张
        }
        
        // 移除所有li的 current样式
        $(".circles ol li").removeClass("current");
        
        // eq(i) 代表匹配下标为 i 的jQuery对象
        $(".circles ol li").eq(i).addClass("current");
    });
    
}
</script>

3.百叶窗

/*
         思路:
                1. 给 li 绑定 mouseover (或者 mouseenter)
                2. 改变 li 的 left 值
                            前面的
                            后面的
         
mouseout 事件,具有 事件冒泡的特性

切换 li, 相当于 移出了某个li   ===>  会传播给外层的 div

1. 阻止li的 mouseout
2. 添加不会冒泡的事件  mouseenter mouseleave

 */     
        $("li").mouseleave(function() {
            $("li").stop(true);
            
            $(".no0").animate({"left": 0});
            $(".no1").animate({"left": 120});
            $(".no2").animate({"left": 240});
            $(".no3").animate({"left": 360});
            $(".no4").animate({"left": 480});
        })
        
        // 1. 给所有的li都添加 鼠标移入的事件(mouseenter不会冒泡的)
        $("li").mouseenter(function() {
            $("li").stop(true);
            
            // 2. 找出变化值
            //    (1) 当前是哪个li, li 的下标 i
            //    (2)  <= i 的就是  往左边偏
            //                   0,60,120,180,240
            //          > i  的就是  往右边偏
            //                   0,560,620,680,740
            var i = $(this).index();
            
            var left = [0,60,120,180,240]; // 左边偏的值
            var right = [ 0,560,620,680,740]; // 右边偏的值
            
            // 遍历所有的li
            $("li").each(function(j) {  // j 是遍历的下标
                if (j <= i) { // j <= i 的就是  往左边偏 的元素
                    $(this).animate({"left": left[j]});
                } else {  // j > i 的就是  往右边偏 的元素
                    $(this).animate({"left": right[j]});
                }
            });
            
        })  
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,718评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,683评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,207评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,755评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,862评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,050评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,136评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,882评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,330评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,651评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,789评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,477评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,135评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,864评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,099评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,598评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,697评论 2 351

推荐阅读更多精彩内容