jQuery中的事件和动画学习笔记

JS和THML之间的交互是通过用户和浏览器操作页面是引发的事件来处理的。当文档或者他的某些元素发生某些变化或者操作时,浏览器会自动生成一个事件。虽然传统的js事件能完成这些交互,但jQuery增加并扩展了基本事件处理机制。

加载DOM

1、jQuery 中用$(document).ready()方法代替传统的window.onload方法。需要注意,两者是有差别的。
window.onload方法是在网页中所有元素(包括元素的所有关联文件)完成加载到浏览器后执行,即js此时才能访问网页中的元素;$(document).ready()在DOM完成就绪时就可以被调用,例如对于一个大型的图库网站,只要DOM记载完毕,不需要等待所有图片下载完毕就能操作,不过图片的高度和宽度这样的属性此时不一定有效。
2、onload事件一次只能确保对一个函数的引用,他会自动用后面的函数覆盖前面的函数。

window.onload = one;
window.onload = two;   //只执行two函数

$(document).ready()方法会在现有的行为上追加新的行为,这些行为会根据注册的顺序依次执行。

$(document).ready(){       //先执行one(),再执行two()
    one();
}
$(document).ready(){
    two();
}       

3、 (document).ready(function()) (function(){})或者$().ready(function(){})。

事件绑定

bind(),接收3个参数,第一个是事件类型,第二个是可选参数,作为event.data属性值传递给事件对象的额外数据对象,第三个是用来绑定的处理函数。

//点击标题,如果内容隐藏则显示,如果内容显示则隐藏
$(function(){
    $("#panel h5.head").bind("click",function(){
        if($(this).next().is(:visible)){
            $(this).next().hide();
        }else{
            $(this).next().show();
        }
    })
});

可以把上面的例子简写成:

$(function(){
    $("#panel h5.head").click(function(){
        if($(this).next().is(:visible)){
            $(this).next().hide();
        }else{
            $(this).next().show();
        }
    })
});

合成事件

1、hover(enter,leave),用于模拟光标悬浮事件。当光标移动到元素上是,触发enter函数,当光标移除这个元素时,触发leave函数。

$(function(){
    $(#panel h5.head).hover(function(){
        $(this).next().ahow();
    },function(){
        $(this).next.hide();
    });
});

2、toggle(fn1,fn2,…fnN),用于模拟鼠标连续单击事件。第一次单击触发第一个函数,第二次触发第二个,依次类推。

$(function(){
    $(#panel h5.head).toggle(function(){
        $(this).next().ahow();
    },function(){
        $(this).next.hide();
    });
});

另外一个作用,切换元素 可见状态,上面的代码还可以写成:

$(function(){
    $(#panel h5.head).toggle(function(){
        $(this).next().toggle();
    },function(){
        $(this).next.toggle();
    });
});

事件对象的属性

1、event.tyep,获取事件的类型

$("a").click(function(event){
    alert(event.type);    //"click"
    return false;   //阻止链接跳转
})

2、event.preventDefault(),阻止默认的事件行为。
3、event.stopPropagation(),阻止事件的冒泡。
4、event.target,获取到触发事件的元素。
5、event.pageX和event.pageY,获取到页面相对于x坐标和y坐标。
6、event.which,在鼠标单击事件中获取鼠标的左中右键;在键盘事件中获取按键。

移除事件

unbind(),第一个参数是事件类型,第二个参数是将要移除的函数。
(1)、如果没有参数,删除所有绑定的事件;
(2)、如果提供了事件类型作为参数,只删除该类型的绑定事件;
(3)、如果把在绑定时传递的处理函数作为第二个参数,则只有这个特定的事件处理程序函数会被删除。
另外,如果只需触发一次,使用one()方法。当处理函数绑定一次后立即删除,即在每个对象上,事件处理函数只会执行一次,用法和bind()类似。


jQuery中的动画

1、show()和hide()方法

为一个元素调用hide()方法,会将该元素的display样式改为none,修改之前会先记住原先display的属性值。show()方法将元素的display属性值设置为先前的显示状态。
可以指定参数slow,normal,fast或直接指定显示的速度(毫秒)。show(“slow”),hide(100)

2、fadeIn()和fadeOut()方法

fadeOut()方法在指定的一段时间内降低元素的不透明度,直到元素完全消失(display:none).fadeIn()方法则相反。

3、slideUp()和slideDown()方法

只会改变元素的高度。如果一个元素的display属性值为none,调用slideDown()将这个元素又上至下延伸显示,slideUp相反,元素将由下到上缩短隐藏。

4、自定义动画方法animate()

animate(params,speed,callback)。
params:一个包含样式属性及值的映射;
speed:速度,可选;
callback:在动画完成时执行的函数,可选。
综合动画,点击后让他向右移动的同时增大他的高度,并将他的不透明度从50%变换到100%,然后再让他从上到下移动,同时让他的宽度变大,当完成这些效果后,让他以淡出的方式隐藏。

$(function(){
    $("#span1").css("opacity","0.5");     
    $("#span1").click(function(){
        $(this).animate({left:"400px",heigth:"200px",opacity:"1"},3000)
            .animate({top:"200px",width:"200px"},300)
            .fadeOut("slow");
    });
});

css()方法并不会加入到动画序列中,而是立即执行。可以使用回调函数对非动画方法实现排队。

$(function(){
    $("#span1").css("opacity","0.5");     
    $("#span1").click(function(){
        $(this).animate({left:"400px",heigth:"200px",opacity:"1"},3000)
            .animate({top:"200px",width:"200px"},300,function(){
                $(this).css("border","5px solid blue");
            })
    });
});

5、停止动画好判断是否处于动画状态

stop([clearQueue],[gotoEnd])。
两个参数都是布尔值,第一个表示是否要清空未执行的动画序列,设置为true把接下来尚未执行完的动画序列都清空;第二个表示是否直接将正在执行的动画跳转到末状态,通常用于后一个动画需要基于前一个动画末状态的情况。
直接使用stop()方法,会立即停止当前正在执行的动画,如果接下来还有动画等待继续执行,则以当前状态开始接下来的动画。
JQuery只能设置正在执行的动画的末状态!

$(element).is(":animated")      //判断元素是否正处于动画状态
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!
提供的源码资源涵盖了小程序应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值