python能做页面加载动画吗_python 之 前端开发( jQuery事件、动画效果、.each()、 .data())...

11.58 事件

11.581 事件绑定方法与解绑

绑定事件:

//绑定方式一:

$('.box1').click(function() {

alert('绑定方式一')

});

​//绑定方式二:

$('.box1').on("click",function() {

alert('绑定方式一')

});

​//绑定方式三:

$('.box1').bind('click',{'a':'b'} function(e) {

alert('绑定方式二');

console.log(e.data);

});

$('.box1').bind('mouseover mouseout', function () { //绑定多个事件做同一件事

console.log('绑定多个事件做同一件事')

});

$('.box1').bind({'mouseup': function() {

console.log('mouseover');

},'mousedown': function() {

console.log('mouseout');

}

});

解绑事件:

//移除事件,unbind没有参数则代表移除所有事件

setTimeout(function() {

$('.box1').unbind('mouseover');

},3000);

setTimeout(function() {

$('.box1').unbind();

},10000)

.off("click",function(){

xxxxx

})

11.582 绑定事件示例

点击事件:click

//click与dblclick只应该存在一个,大多数都是单击事件

$('.box1').click(function(event)//console.log(event.type); // event.type事件的类型为:click

console.log(event.target); //event.target指的是点击的那个元素

})

$('.box1').dblclick(function(event) {

console.log(event.target);//event.target指的是点击的那个元素

})

鼠标:mousedown、mouseup、mousemove、mouseover、mouseout、mouseenter、mouseleave

$('.box1').mousedown(function(event) {

console.log('按照鼠标左键不松手');

});

$('.box1').mouseup(function(event) {

console.log('按照鼠标左键松手');

});

$('.box1').mousemove(function(event) {

console.log('移动鼠标', event.pageX, event.pageY);

});

$('.box1').mouseover(function(event) {

console.log('元素以及该元素的子元素在鼠标移入时都会触发,当前的div是:', event.target.innerText);

});

$('.box1').mouseout(function(event) {

console.log('元素以及该元素的子元素在鼠标离开时都会触发,当前的div是:', event.target.innerText);

});

$('.box1').mouseenter(function(event) {

console.log('元素以在鼠标移入时都会触发(与子元素无关),当前的div是:', event.target.innerText);

});

$('.box1').mouseleave(function(event) {

console.log('元素以在鼠标移入时都会触发(与子元素无关),当前的div是:', event.target.innerText);

});

对于input框:focus、blur、input

input能够实时检测 textarea,input:text,input:password,input:search这几个元素的内容变化,但IE9以下版本不支持,需要使用IE特有的onpropertychange事件替代,使用jQuery库的话直接使用on同时绑定这两个事件即可

$('#inp').on("focus", function() {

console.log('鼠标聚焦');

});

$('#inp').on("blur", function() {

console.log('鼠标失去焦点');

});//当input框的值发生变化时,实时触发

$("#inp").on("input", function() {

console.log($(this).val());

})

$("#i1").on("input propertychange", function() {

alert($(this).val());

})

按键:keydown、keyup

$('#inp').keydown(function(e) {

console.log(e.keyCode);

});

$(window).on("keydown", function (e) { //获取用户按下那个按键

console.log(e.keyCode);if (e.keyCode === 16){

flag= true;

}

});

$('#inp').keyup(function (event) { //绑定一个按键抬起的事件

console.log('键盘按键弹起');

});

$(window).on("keyup", function(e) {

console.log(e.keyCode);if (e.keyCode === 16){

flag= false;

}

});

change:

//表单事件change

$('#inp').change(function() {

console.log(this.value); //失去焦点时就会得到值

});

$('input[name=sex]').change(function(event) {

console.log(this.value);

});

$('#select').change(function() {

console.log(this.value);

});

选中checkbox框:select

//表单事件select,CheckBox框被选中时触发

$('#inp1').select(function() {

console.log(this.value);

});

$('#inp2').select(function() {

console.log(this.value);

});

提交事件:submit

//表单事件submit

$('#form').submit(function(event) {

console.log($('input[name=user]').val());

console.log($('input[name=pwd]').val());

event.preventDefault();

});

hover:不能使用on绑定hover事件

//hover事件

$(".father").hover( //鼠标移到.father上时让.son添加一个.show

function() {

$(this).find(".son").addClass("show");

},function () { //鼠标移出.father上时让.son移除一个.show

$(this).find(".son").removeClass("show");

})

11.583 事件冒泡应用之事件委托

添加的事件不能用于动态增加事件,例如之前我们在做表格的增删改时,每新增一行内容都需要重新绑定事件,基于事件委托就可以解决该问题

事件委托是通过事件冒泡的原理,利用父标签去捕获子标签的事件

$('ul').on('mouseover','li',function(e) {

$(e.target).css('background-color','#ddd').siblings().css('background-color','white');//e.stopPropagation();

return false;

})

$("table").on("click", ".delete", function() {//删除按钮绑定的事件

})

11.584 页面加载完成执行

$(document).ready(function(){

在这里写你的JS代码...

})

简写:

$(function(){

你在这里写你的代码

})

与window.onload()函数的区别:window.onload()函数有覆盖现象,必须等待着图片资源加载完成之后才能调用,且只能使用一次;jQuery的这个入口函数没有函数覆盖现象,文档加载完成之后就可以调用(建议使用此函数),可以使用多次

11.59 动画效果

1、show() 显示隐藏的匹配元素 语法:show(speed,callback)

参数:

speed:三种预定速度之一的字符串('slow','normal','fast')或表示动画时长的毫秒值(如:1000毫秒==1秒)

callback:在动画完成时执行的函数,每个元素执行一次2、hide

hide(speed,callback)跟show使用方法类似,表示隐藏显示的元素。可以通过show()和hide()方法,来动态控制元素的显示隐藏3、toggle

如果元素是可见的,切换为隐藏的;如果元素是隐藏的,切换为可见的。

​1、slideDown 通过高度变化(向下增大)来到动态地显示所有匹配的元素,在显示完成后触发一个回调函数用法和参数跟上面类似2、slideUp 通过高度变化(向上减小)来动态地隐藏所有匹配的元素,在隐藏完成后可选地触发一个回调函数。用法和参数跟上面类似3、slideToggle 通过高度变化来切换所有匹配元素的可见性,并在切换完成后可选地触发一个回调函数跟toggle用法类似

​1、fadeIn/fadeOut 通过不透明度的变化来实现所有匹配元素的淡入/淡出效果,并在动画完成后可选地触发一个回调函数。这个动画只调整元素的不透明度,也就是说所有匹配的元素的高度和宽度不会发生变化2、fadeTo 把所有匹配元素的不透明度以渐进方式调整到指定的不透明度,并在动画完成后可选地触发一个回调函数。这个动画只调整元素的不透明度,也就是说所有匹配的元素的高度和宽度不会发生变化。3、fadeToggle 通过不透明度的变化来开关所有匹配元素的淡入和淡出效果,并在动画完成后可选地触发一个回调函数,这个动画只调整元素的不透明度,也就是说所有匹配的元素的高度和宽度不会发生变化。实现淡入淡出的效果就是使用此方

animate、stop、delay

1、animate 概念:用于创建自定义动画的函数 语法:animate(params,[speed],[fn])

参数:

params:一组包含作为动画属性和终值的样式属性和及其值的集合

speed:三种预定速度之一的字符串("slow","normal", or "fast")或表示动画时长的毫秒数值(如:1000)

fn:在动画完成时执行的函数,每个元素执行一次。

​2、stop 概念:停止所有在指定元素上正在运行的动画 语法:stop([clearQueue],[jumpToEnd])

参数:

clearQueue:如果设置成true,则清空队列。可以立即结束动画。

gotoEnd:让当前正在执行的动画立即完成,并且重设show和hide的原始样式,调用回调函数等

​3、delay 概念:用来做延迟的操作 语法:delay(1000),一秒之后做后面的操作

11.510 .each()

//为每一个li标签添加class="c1"

$("li").each(function(){

$(this).addClass("c1");

});

​//使用内置$.each()进行迭代

var arry=[11,22,33,44];

$.each(arry,function(k,v){

console.log(k,v);

});

注意: jQuery的方法返回一个jQuery对象,遍历jQuery集合中的元素 - 被称为隐式迭代的过程。当这种情况发生时,它通常不需要显式地循环的 .each()方法

也就是说,上面的例子没有必要使用each()方法,直接像下面这样写就可以了:

$("li").addClass("c1"); //对所有标签做统一操作

终止each循环

return false;

11.511 .data()

.data(key, value):在匹配的元素上存储任意相关数据/保存一些状态。

$("div").data("k",100); //给所有div标签都保存一个名为k,值为100

.data(key):返回匹配的元素集合中的第一个元素的给定名称的数据存储的值

$("div").data("k"); //返回第一个div标签中保存的"k"的值 100

.removeData(key):移除存放在元素上的数据,不加key参数表示移除所有保存的数据

$("div").removeData("k"); //移除元素上存放k对应的数据

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值