jQuery-事件以及动画

事件:

1、//方法1

$(window).load(function(){

})

window.onload=function(){

}

//方法2

function one(){

      alert("one");

}

function two(){

      alert("two");

}

//这样的执行结果应该是two,因为onload事件只会保存对一个函数的引用

window.onload = one;

window.onload = two;

修改为以下格式:

window.onlaod=function(){

      one();

      two();

}

在jQuery中,还可以这样,jQuery的onlaod事件是可以执行多个函数的

function one(){

      alert("one");

}

function two(){

      alert("two");

}

$(document).ready(function(){

      one();

})

$(document).ready(function(){

      two();

})

2、

$(document).ready(function(){

      two();

})

可以简写成:

$(function(){

})

$().ready(function(){

})

//$()的默认情况下就是document

3、事件绑定:bind(事件类型 ,可选参数(作为event.data属性值传递给事件对象的额外数据对象,处理函数fn)

bind()方法可以多次调用,this引用的是携带相应行为的DOM元素$(this)

方法1:

$(function(){

      $("#panel h5.head").bind("click",function(){

           if($(this).next().is(":visible")){

                 $(this).next().hide();

           }else{

                 $(this).next().show();

           }

      })

})

方法2:

$(function(){

      $("#panel h5 .head").bind("mouseover",function(){

           $(this).next().show();

      }).bind("mouseout",function(){

           $(this).next().hide();

      })

})

方法3:

$(function(){

      $("#panel h5 .head").mouseover(function(){

           $(this).next().show();

      }).mouseout(function(){

           $(this).next().hide();

      })

})

4、jQuery有两个合成事件:hover()以及toggle()方法

hover(enter,laeve)

$(function(){

      $("#panel h5 .head").hover(function(){

           $(this).next().show();

      }.function(){

           $(this).next().hide();

      })

})

5、toggle()方法

方法1:

$(function(){

      $("#panel h5 .head").toggle(function(){

           $(this).next().show();

      },function(){

           $(this).next().hide();

      })

})

方法2:

//toggle()还有一个作用是切换元素的可见性,如果元素可见,切换后则为隐藏,隐藏切换后则是可见的

$(function(){

      $("#panel h5 .head").toggle(function(){

           $(this).next().toggle();

      },function(){

           $(this).next().toggle();

      })

})

6、事件冒泡:

停止事件冒泡:event.stopPropagation()

阻止事件默认行为:event.preventDefault()

如果想对事件对象停止冒泡以及默认行为,在可以事件处理函数中返回false:

event.stopPropagation()改成  return false

event.preventDefault() 改成 return false

7、在jQuery中不支持事件捕获,如果需要事件捕获,使用原生的js代码

8、event.type 事件类型

event.target    获取触发事件的元素

event.pageY以及event.pageX 是获取到光标相对于页面的y坐标以及x坐标,如果页面有滚动条还要加上滚动条的宽度以及高度

event.which   是在鼠标事件中获取到鼠标的左右中键,分别返回1,2,3,

9、移除事件:unbind(“click”)

$(function(){

      $("#btn").bind("click",myFun1 = function(){

           $("#test").append("<p>wwwww</p>");

      }).bind("click",myFun2 = function(){

           $("#test").append("<p>wwwwssw</p>");

      }).bind("click",myFun3 = function(){

           $("#test").append("<p>wwwwqw</p>");

      })

})

//单独删除某一事件

$("#delTwo").click(function(){

      $("#btn").unbind("click",myFun2);

})

10、one()方法是对于只需要触发一次的,触发一次后就会解除绑定,也就是说只要在用户第一次点击的时候,处理函数才会生效

11、trigger(”click”)   -----eg:用户在进入页面后就会触发click事件,不需要用户去主动点击

$(“#btn”).trigger(“click”) 等价于$(“#btn”).click()

另外还可以通过传递数据参数:

$("#btn").bind("myClick",function(event,message1,message2){

      $("#test").append("<p>"+message1+message2+"</p>");

});

$("#btn").trigger("myClick",["我的自定义","事件"]);

trigger()方法执行事件后会执行浏览器的默认事件,如果不想执行默认事件,需要使用以下方法:

$("input").triggerHandler("focus")---取消聚焦事件

12、还可以一次性为元素绑定多个事件

$(function(){

      $("div").bind("mouseover mouseout",function(){

           $(this).toggleClass("over");

      })

})

13、为事件添加命名空间

$(function(){

      $("div").bind("click .plugin",function(){

           $("body").append("<p>click</p>");

      });

      $("div").bind("mouseover .plugin",function(){

           $("body").append("<p>click</p>");

      });

      $("div").bind("dbclick",function(){

           $("body").append("<p>click</p>");

      });

      $("button").click(function(){

           $("div").unbind(".plugin");

           //会删除含有命名空间.plugin的事件,不会删除dbclick事件

      })

})

14、

$(function(){

      $("div").bind("click .plugin",function(){

           $("body").append("<p>click</p>");

      });

      $("div").bind("click",function(){

           $("body").append("<p>click</p>");

      });

      $("button").click(function(){

           $("div").trigger("click!");

           //点击button按钮只会触发click事件,click后面的感叹号是用来匹配所有不包含在命名空间的click方法

          //当将感叹号去了之后会触发两个click事件,包含在命名空间中的click事件

      })

})

jQuery中的动画:

1、show()以及hide()方法

相当于display = none /block/inline-block

在两个方法中添加参数,slow,fast,normal,获取是一个数值

2、fadeIn()以及fadeOut()方法:只改变元素的透明度

3、slideUp()以及slideDown()方法:只改变元素的高宽,slideUp是由下到上缩短隐藏,slideDown是由上到下显示

4、animate()方法:

animation(params(样式属性),speed,callback)

$("#myImg").click(function(){

      $(this).animate({left:"500px",height:"200px"},300);

})

5、停止元素的动画:stop([clearQuere],[gotoEnd]),两个参数都是一个布尔值

6、判断元素是否处于动画状态:

if(! $(element).is(":animated")){

}

7、延迟动画:delay(10000)

8、toggle(speed,[callBack])

slideToggle(speed,[easing],[callback])—通过高度变化切换匹配元素的可见性

fadeTo(speed,opacity,[callBack])---将元素的不透明度以渐进方式调整到指定值

fadeToggle(speed,[easing],[callBack])---通过透明度变化切换匹配元素的可见性

原文地址:https://www.cnblogs.com/zhanghuiyun/p/5185607.html