jQuery

jQuery简述

实现同一功能,不同写法:

js写法:document.getElementbyId("id")

jquery写法:$("#id")

jquery与js:

jQuery是Javascript的一个框架,不仅是兼容CSS3,同时兼容各种浏览器

jQuery对象

jQuery 对象就是通过jQuery包装DOM对象后产生的对象。jQuery 对象是 jQuery 独有的。如果一个对象是 jQuery 对象, 那么它就可以使用 jQuery 里的方法。
虽然jQuery对象是包装DOM对象后产生的,但是jQuery无法使用DOM对象的任何方法,同理DOM对象也不能使用jQuery里的方法.乱使用会报错

jquery基本语法: $(selector).action()

var $variable = jQuery 对象  //声明jQuery对象约定俗成在对像前增加$
	
var variable = DOM 对象 //js对象
	
$variable[0]  //表示将jQuery对象转换为DOM对象
$("#id").html();

$("#id")[0].innerHTML;  //转换为DOM对象就可以调用DOM方法

选择器和筛选器

选择器

1.基本选择器

$("*")
$("#id")
$(".class")
$("element")
$(".class,p,div")  //多元素选择,逗号分隔

2.层级选择器

$(".out div")  //后代选择
$(".out>div")  //子代选择
$(".out+div")  //毗邻选择,向下紧挨的p被选择
$(".out~div")  //兄弟选择

3.基本筛选器

$("li:first")  //index第一个元素
$("li:last")  //index最后一个元素
$("li:eq(n)")  //index第n个元素
$("li:even")  //选取每个带有偶数 index 值的元素
$("li:odd")  //选取每个带有基数 index 值的元素
$("li:gt(n)")  //选取每个index大于n的元素
$("li:lt(n)")  //选取每个index小于n的元素

4.属性选择器

$("[id = 'sb']")  //固有属性
$("[alex = 'sb'][class = 'mb']")  //自定义属性,多属性选取

5.表单选择器

$("[type='text']") 
$(":text")  //适用于input标签

筛选器

1.过滤选择器

$("li").eq(2)
$("li").first()
$("ul li").hasclass("test")  //无序列表ul下的li,有class为test的元素

2.查找选择器

$("div").children(".test")  //div子代元素带有class为test的元素
$("div").find(".test") //div后代元素带有class为test的元素

.find() 和 .children() 方法类似,不过后者只沿着 DOM 树向下遍历单一层级。

$(".test").next()  //筛选每个匹配元素之后紧邻的同辈元素
$(".text").nextAll()  //筛选每个匹配元素之后全部同辈元素
#(".test").nextUntil(".test")  //查找跟随calss为test的同胞元素,直到下一个calss为test的元素

$("div").prev()  //筛选每个匹配元素之前紧邻的同辈元素
$("div").prevAll()  
$("div").prevUntil() 

$(".test").parent()  //class为test的元素的父元素
$(".test").parents()  //获得当前匹配元素集合中每个元素的祖先元素
$(".test").parentUntil()  //获得当前匹配元素集合中每个元素的祖先元素,直到。。。

$("div").siblings()  //获得匹配集合中每个元素的同胞

操作元素

属性操作

属性:

$().attr();  //操作自定义属性
$().removeAttr();
$().prop();  //操作固有属性,prop("属性名")表述取值,prop("属性名",属性值)表述赋值
$().removeProp();

BC67FA38-5212-4DAC-AD35-DDD8A303E7

class:

$().addClass(class|fn)
$().removeClass([class|fn])

HTML代码/文本/值

$("").html([val|fn])
$("").text([val|fn])
$("").val([val|fn|arr])   //input标签的text、checkbox、button,必须是固有属性,才能取value

css

$().css("color","red")

文档操作(节点插入)

创建标签

$("<p>")

内部插入

append  //插入标签
appendto  //插入到标签
prepend
prependto

外部插入

after  //同级后插入
before  //同级前插入

替换

replaceWith

删除

empty //清空标签内容
remove //删除标签

克隆

clone()

EA1AC230-B5D4-4755-A04C-0AB1D44C8C3D

css操作

CSS : 设置HTML的CSS样式

	$().css(name|pro|[,val|fn])

位置
偏移量:$("").offset([coordinates])

var $p_offset = $(".p1").offset();  //偏移量对象
var $left = $p_offset.left; //获取距左边距离px
var $top = $p_offset.top;  //获取剧顶部距离px

$(".p1").offset({left: 100, top: 200});  //重新设置偏移对象的left,top偏移距离

position偏移:$("").position()

<div class="t1"></div>
<div class="box1" style="position: relative">
    <div class="box2">

    </div>
</div>
<p class="p2"></p>

<script src="jquery-3.2.1.js"></script>
<script>
    var $p_position = $(".box2").position();  //相对于父元素的偏移量

    var $left = $p_position.left;
    var $top = $p_position.top;

    $(".p2").text("the left:" + $left + "the top:" + $top);

</script>

滚动条px位置:

$("").scrollTop([val])、
$("").scrollLeft([val])
//返回页面顶部
<script>
    $(".top").click(function () {
        $(window).scrollTop(0);
    })
//    //js
//    document.onscroll = function () {
//        if ($(window).scrollTop()>200){
//            $(".top").show();
//        }else {
//            $(".top").hide();
//        }
//    }

    //jquery
    $(window).scroll(function () {
        if ($(window).scrollTop()>200){
            $(".top").show();
        }else {
            $(".top").hide();
        }
    })
</script>

尺寸

$("").height([val|fn])  //内容高
$("").width([val|fn])  //内容宽
$("").innerHeight()  //内容+padding
$("").innerWidth()  //内容+padding
$("").outerHeight([soptions]) //内容+padding+broder 
$("").outerWidth([options]) //内容+padding+broder

outerHeight(true)  //内容+padding+broder+margin

jquery循环

//方式1
arr = [123,456,"hello"]
obj = ["name":"alex","age":22]
$.each(arr,function(i,j){
	//i索引
	//j值
})
$.each(obj,function(i,j){
	//i键
	//j值
})

//方式2
$("ul li").each(function(){
	if ($(this).hasClass("item")){
		//遍历得到li中class为item的元素
	}
})

动画效果

显示/隐藏

show
hide
toggle

滑动效果

slideDown
slideUp
slideToggle

淡入淡出

fadeIn
fadeOut
fadeToggle
fadeTo

回调函数

当某一个动作执行完成之后,自动触发的函数

$("#show").click(function(){
	$("img").show(1000,function(){
		alert("回调函数");
	});
});

0092F74A-81CA-43E3-9E6B-BC84E5300

事件

事件处理

on(events,[selector],[data],fn)
.on方法为动态添加的元素也能绑上指定事件
$('ul li').on('click', function(){console.log('click');})

事件切换

hover([over,]over)
over:鼠标移到元素上要触发的函数
out:鼠标移出元素要触发的函数

载入

ready(fn)  //类似js中的window.onload = function(){},当DOM载入就绪可以查询及操纵时绑定一个要执行的函数
$(document).ready(function(){})
//简写
$(function(){})

插件机制

$.extend(object)      //为JQuery 添加一个静态方法。
$.fn.extend(object)   //为JQuery实例添加一个方法。

轮播图

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        .rotation {
            margin: 20px auto;
            width: 730px;
            height: 336px;
            border: 1px solid black;
            position: relative;
        }

        .image-box {
            list-style: none;
        }

        .image-box li {
            position: absolute;
            top: 0;
            left: 0;
            display: none;
        }

        .point-bar {
            list-style: none;
            position: absolute;
            bottom: 0;
            left: 200px;
            background-color: hsla(0, 0%, 100%, .3);
            border-radius: 12px;
        }

        .point-bar li {
            display: inline-block;
            width: 12px;
            height: 12px;
            border-radius: 100%;
            background-color: #fff;
            margin-right: 14px;
        }

        .buttons .btn {
            position: absolute;
            margin-top: -50px;
            top: 50%;
            width: 40px;
            height: 100px;
            background-color: #b4b4b4;
            opacity: 0.5;
            color: white;
            line-height: 100px;
            text-align: center;
            display: none;
        }

        .left {
            left: 0;
        }

        .right {
            right: 0;
        }

        .point-bar .active {
            background-color: #cc0000;
            opacity: 0.8;
        }

    </style>
</head>
<body>
<div class="rotation">
    <ul class="image-box">
        <li style="display: inline-block"><a><img
                src="http://p4.music.126.net/MD1Rxeu4O21KQ9SBgx0EBQ==/18880813672319248.jpg">
        </a></li>
        <li><a><img
                src="http://p3.music.126.net/JK8RyycpXfk4-lm7Q_4t-g==/18760966906664678.jpg"></a></li>
        <li><a><img
                src="http://p3.music.126.net/PISYq4PazfIgC9W0mylJag==/19082024300201561.jpg"></a></li>
        <li><a><img
                src="http://p4.music.126.net/eo5HXwCHTAJLB4lbyw2b3A==/19082024300201562.jpg"></a></li>
        <li><a><img
                src="http://p4.music.126.net/J0DSsHZ77hvYToqX2iWEQA==/18992963858350072.jpg"></a></li>
        <li><a><img
                src="http://p4.music.126.net/sjeFlnGonRNfSrx6vehk-w==/18614731860189474.jpg"></a></li>
        <li><a><img
                src="http://p3.music.126.net/whwudcQ5KYYUwR-VVLj22Q==/18866520021161174.jpg"></a></li>
        <li><a><img
                src="http://p4.music.126.net/1EZqWQYmxlzRU3iAJo-_Qw==/18660911348461171.jpg"></a></li>
    </ul>
    <ul class="point-bar">
        <li class="active"></li>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
    </ul>
    <div class="buttons">
        <div class="left btn"> <</div>
        <div class="right btn"> ></div>
    </div>
</div>
</body>
<script src="jquery-3.2.1.js"></script>
<script>
    var i = 0;
    var l = $(".image-box li").length;
    function go_on() {
        i++;
        $(".image-box li").eq(i).fadeIn(200).siblings().fadeOut(200);
        $(".point-bar li").eq(i).addClass("active").siblings().removeClass("active");
        if (i == l - 1) {
            i = -1;
        }
//        console.log(i);
    }
    var timer = setInterval(go_on, 1000);

    function go_back() {
        i--;
        $(".image-box li").eq(i).fadeIn(200).siblings().fadeOut(200);
        $(".point-bar li").eq(i).addClass("active").siblings().removeClass("active");
        if (i == -1) {
            i = l-1;
        }
//        console.log(i);
    }

    $(".rotation").hover(function () {
        $(".buttons .btn").show();
        clearInterval(timer);
    }, function () {
        $(".buttons .btn").hide();
        timer = setInterval(go_on, 1000);
    });

    $(".point-bar li").mouseover(function () {
        i = $(this).index();
        $(".image-box li").eq(i).fadeIn(200).siblings().fadeOut(200);
        $(".point-bar li").eq(i).addClass("active").siblings().removeClass("active");
    })

    $(".right").click(go_on);

    $(".left").click(go_back);

</script>
</html>
posted @ 2017-06-02 23:42  六神酱  阅读(180)  评论(0编辑  收藏  举报