一、鼠标事件

鼠标事件是当用户在文档上移动或单击鼠标时而产生的事件;

jquery鼠标移入图片变大 jquery鼠标移动触发_ide

 注意:鼠标事件方法的区别如下

jquery鼠标移入图片变大 jquery鼠标移动触发_jquery鼠标移入图片变大_02

 

<style>
        div {
            width: 200px;
            height: 200px;
            background: pink;
        }

        p {
            background: green;
            font-size: 30px;
        }
    </style>
</head>

<body>

    <div>
        <p>hello</p>
    </div>
    <script src="http://code.jQuery.com/jQuery-2.1.1.min.js"></script>
    <script>
        /* 鼠标事件
        1.鼠标在其被选元素的子元素上来回进入时,触发mouseover()
            不触发mouseenter() 
        2.鼠标在其被选元素的子元素上来回进入时,触发mouseout()
            不触发mouseeleave() */
        //1.click()
        $('div').click(function () {
            alert("我被点击了")
        })
        //mouseover() 当鼠标进入div的时候触发,当鼠标在p和div之间移出移入时仍然触发
        $('div').mouseover(function () {
            console.log("mouseover");
        })

        //mouseenter() 当鼠标进入div的时候触发,当鼠标在p和div之间移出移入时不在触发
        $('div').mouseenter(function () {
            console.log("mouseenter");
        })
        //mouseout()当鼠标进出div的时候触发,当鼠标在p和div之间移出移入时仍然触发
        $('div').mouseout(function () {
            console.log("mouseout");
        })
        //mouseleave()当鼠标进出div的时候触发,当鼠标在p和div之间移出移入时不在触发
        $('div').mouseleave(function () {
            console.log("mouseleave");
        })
    </script>

二、键盘事件

用户每次按下或者释放键盘上的键时都会产生事件,常用键盘事件

触发顺序:1.keydown 2.keypress 3.keyup 

jquery鼠标移入图片变大 jquery鼠标移动触发_css_03

 

<input type="text" name="" id="">
    <script src="http://code.jQuery.com/jQuery-2.1.1.min.js"></script>
    <script>
        /*  用户每次按下或者释放键盘上的键时都会产生事件,常用键盘事件*/
        /*  触发顺序:
            键盘被按下
            keypress触发
            键盘释放了按键 */
        $(function () {
            $('input').keydown(function () {
                console.log("键盘被按下");
            })
            $('input').keyup(function () {
                console.log("键盘释放了按键");
            })
            $('input').keypress(function () {
                console.log("keypress触发");
            })
        })
    </script>

三、浏览器事件

1.调整窗口大小 $(selector).resize( );

<body>
    <ul class="header">
        <li>男生</li>
        <li>女生</li>
    </ul>
    <ul class="box">
        <li>男生小说</li>
        <li>女生小说</li>
    </ul>
    <script src="http://code.jQuery.com/jQuery-2.1.1.min.js"></script>
    <script>
        $('.header li').click(function () {
            var index = $(this).index();

            $(".box li").css("background", "")
            //变量的字符串拼接
            // $(".box li:eq(" + index + ")").css("background", "red")
            //es6模板拼接
            $(`.box li:eq(${index})`).css("background", "red")
        })
    </script>
</body>

2.index()方法,可以返回$(selector)对象的索引值。

<body>
    <ul class="header">
        <li>男生</li>
        <li>女生</li>
    </ul>
    <ul class="box">
        <li>男生小说</li>
        <li>女生小说</li>
    </ul>
    <script src="http://code.jQuery.com/jQuery-2.1.1.min.js"></script>
    <script>
    //点击男生对应男生小说,点击女生对应女生小说;
        $('.header li').click(function () {
            var index = $(this).index();
            $(".box li").css("background", "")
            //变量的字符串拼接
            // $(".box li:eq(" + index + ")").css("background", "red")
            //es6模板拼接
            $(`.box li:eq(${index})`).css("background", "red")
        })
    </script>
</body>

四、绑定事件和移除事件

绑定事件使用 

$(selector).on(type,fn);

其中 type是指事件,如:click,mouseover,mouseout等,还可以是自定义事件

fn是处理函数;

(1)绑定单个事件

<div></div>
<script src="http://code.jQuery.com/jQuery-2.1.1.min.js"></script>
<script>
/* 绑定单个事件 */
   $('div').click(function () {
   $(this).css({
   background: "pink",
   transition: "all 1s"
    })
})
</script>

(2)绑定多个事件:

绑定多个事件是用on ,将事件以对象的形式书写

$('div').on({
        click: function () {
           $(this).css({
           background: "pink",
           transition: "all 1s"
          })
        },
          mouseover: function () {
              $(this).css({
              width: "500px",
              height: "500px",
              transition: "all 1s"
           })
         },
          mouseout: function () {
              $(this).css({
                 width: "300px",
                 height: "300px",
                 background: "red"
               })
           }
     })

(3)利用on给未来元素,做事件委托处理

<div></div>
<script>
$('div').html('<h1>1111</h1>')
$('div').on("click", "h1", function () {
            alert("事件委托啦")
        })
</script>

(4)移除事件

移除事件使用off()方法:off([type])

Type:事件类型,主要包括:blur、focus、click、mouseout等基础事件,此外,还可以是自定义事件

当off()不带参数时,表示移除所绑定的全部事件

$('button').click(function () {
            $("div").off("click")
        })

(5)hover()方法;

hover()方法相当于mouseenter与mouseleave事件的组合

补充:mouseover 和mouseenter 区别是:在进入子元素区域时候,mouseenter 将不在触发。只在进入父元素(绑定了mouseenter )时才触发。

hover(enterFn,leaveFn);

第一个函数表示光标移入时触发

第二个函数表示光标移出时触发

<body>
    <div></div>
    <script src="http://code.jQuery.com/jQuery-2.1.1.min.js"></script>
    <script>
        /* hover()方法;相当于mouseenter与mouseleave事件的组合 */
        $('div').hover(fn, fn2);

        function fn() {
            console.log('1');
        }

        function fn2() {
            console.log('2');
        }
    </script>
</body>

6.toggle()方法

toggle()方法不带参数,与show( )和hide( )方法作用一样

toggle(参数),可以实现添加类去移除类的切换;

五、jQuery动画效果

1.show() 控制元素的显示  $(selector).show([speed],[callback])

2.hide( )控制元素的隐藏  $(selector).hide([speed],[callback])

speed 可选。表示速度,默认为“0”,可能值:毫秒(如1000)、slow、normal、fast

callback可选。show函数执行完之后,要执行的函数

3.改变元素的透明度

fadeIn()和fadeOut()可以通过改变元素的透明度实现淡入淡出效果callback回调函数是在动画结束执行的;

$(selector).fadeIn([speed],[callback])

$(selector).fadeOut([speed],[callback])

4.改变元素的高度

slideDown() 可以使元素逐步延伸显示

slideUp()则使元素逐步缩短直至隐藏

$(selector).slideUp ([speed],[callback])
$(selector).slideDown ([speed],[callback])
$(document).ready(function() {
       $("h2").click(function(){
	   $(".txt").slideUp("slow");
	   $(".txt").slideDown("slow");
       });
 });

5.自定义动画

$(selector). animate({params},speed,callback)

animate()方法包含4个参数:【只有第一个参数是必须的】

第一个参数: 是一组包含作为动画属性和终值的样式属性和以及其值的集合

第二个参数: 表示动画持续的时间,以毫秒为单位,也可以用预定义字符串如:slow、normal、fast等;

第三个参数: 表示要使用的擦除效果的名称,若要使用该参数,则需要插件支持。默认jQuery提供linear、和swing特效;

第四个参数: 表示回调函数,即动画完毕后将要调用的函数

<style>
    div {
            width: 200px;
            height: 200px;
            background-color: pink;
        }
</style>
<body>
<div></div>
    <script>
    function fn() {
            $('div').animate({
                height: "800px",
                width: "800px"
            }, 2000)

            $('div').animate({
                height: "200px",
                width: "200px"
            }, 2000, fn)
        }
        fn();
    </script>
</body>