基于jquery的仿百度的鼠标移入图片抖动效果


Posted in Javascript onSeptember 17, 2010

1。查看源文件,在查看后很纳闷的发现,此页并没有包含那些奖品信息。这样就断定代码在另一个页面中。于是想当然的以为是用的框架连接的地址。结果没查到,却看到了一个这样的信息:

<div id ="task-intro-box"><!--活动说明--></div> 
<div id ="task-awards"><!--活动奖励--></div> 
<div id ="task-rule"><!--活动规则--></div>

可以看到此页面是用task-awards为ID的div当容器的,所以,单击页面上的JS文件,查找task-awards

2。终于皇天不负有心人,在base.js中查到了这段代码,可以看到被映射到了awards.html地址,加之下面的widget/ 路径.所以此页面的完整路径就被找出来了

function getWidgets(){ 
var modules = { 
"task-intro-box":"intro.html" 
,"task-awards":"awards.html" 
,"task-gongao":"gongao.html" 
,"task-rule":"rule.html" 
,"faq":"faq.html" 
,"task-gongao":"gongao.html" 
}; 
$.each(modules,function(key,val){ 
if(G(key) ){ 
$.get("widget/"+val ,function(data){ 
$(data).appendTo($("#"+key)); 
}); 
} 
}); 
}

3。查看awards.html 页面的源文件.可以看到这段图片效果的调用
$("ul.awards img").each(function(k,img){ 
new JumpObj(img,10); 
$(img).hover(function(){this.parentNode.parentNode.className="hover"}); 
$(img.parentNode).click(function(){return false;});//阻止被点击 
}) 
$("ul.awards li").hover(function(){this.className="hover"}).mouseout(function(){this.className=""});

4.然后我们只要查找JumpObj这个js方法的代码就可以啦.同样在base.js中查到了此方法:

 

function JumpObj(elem, range, startFunc, endFunc) { 
//图片鼠标移上去的动画效果,感谢aoao的支持 
var curMax = range = range || 6; 
startFunc = startFunc || function(){}; 
endFunc = endFunc || function(){}; 
var drct = 0; 
var step = 1; 
init(); 
function init() { elem.style.position = 'relative';active() } 
function active() { elem.onmouseover = function(e) {if(!drct)jump()} } 
function deactive() { elem.onmouseover = null } 
function jump() { 
var t = parseInt(elem.style.top); 
if (!drct) motionStart(); 
else { 
var nextTop = t - step * drct; 
if (nextTop >= -curMax && nextTop <= 0) elem.style.top = nextTop + 'px'; 
else if(nextTop < -curMax) drct = -1; 
else { 
var nextMax = curMax / 2; 
if (nextMax < 1) {motionOver();return;} 
curMax = nextMax; 
drct = 1; 
} 
} 
setTimeout(function(){jump()}, 200 / (curMax+3) + drct * 3); 
} 
function motionStart() { 
startFunc.apply(this); 
elem.style.top='0'; 
drct = 1; 
} 
function motionOver() { 
endFunc.apply(this); 
curMax = range; 
drct = 0; 
elem.style.top = '0'; 
} 
this.jump = jump; 
this.active = active; 
this.deactive = deactive; 
}

5。这样就大工告成啦. 以后再使用的时候,按下列步骤就可以了

<1>导入jquery 包,和base.js文件(存放JumpObj方法)

<2>在页面加载的时候注册鼠标移入事件,调用JumpObj方法

源码打包下载

Javascript 相关文章推荐
对YUI扩展的Gird组件 Part-2
Mar 10 Javascript
javascript错误的认识不用关心内存管理
Dec 15 Javascript
jquery animate实现鼠标放上去显示离开隐藏效果
Jul 21 Javascript
jQuery实现3D文字特效的方法
Mar 10 Javascript
JS模拟按钮点击功能的方法
Dec 22 Javascript
Vuex模块化实现待办事项的状态管理
Mar 15 Javascript
详解EasyUi控件中的Datagrid
Aug 23 Javascript
js定时器实现倒计时效果
Nov 05 Javascript
JavaScript中判断为整数的多种方式及保留两位小数的方法
Sep 09 Javascript
vue 解决form表单提交但不跳转页面的问题
Oct 30 Javascript
Node.js 深度调试方法解析
Jul 28 Javascript
微信小程序实现加入购物车滑动轨迹
Nov 18 Javascript
js下用eval生成JSON对象
Sep 17 #Javascript
JS实现在Repeater控件中创建可隐藏区域的代码
Sep 16 #Javascript
Bookmarklet实现启动jQuery(模仿 云输入法)
Sep 15 #Javascript
基于jQuery的淡入淡出可自动切换的幻灯插件打包下载
Sep 15 #Javascript
基于JQuery的简单实现折叠菜单代码
Sep 15 #Javascript
jQuery获取css z-index在各种浏览器中的返回值
Sep 15 #Javascript
JavaScript具有类似Lambda表达式编程能力的代码(改进版)
Sep 14 #Javascript
You might like
PHP无刷新上传文件实现代码
2011/09/19 PHP
关于PHP语言构造器介绍
2013/07/08 PHP
php程序总是提示验证码输入有误解决方案
2015/01/07 PHP
php简单生成随机数的方法
2015/07/30 PHP
jquery根据name属性查找的小例子
2013/11/21 Javascript
jQuery仿gmail实现fixed布局的方法
2015/05/27 Javascript
Nodejs的express使用教程
2015/11/23 NodeJs
JavaScript判断对象是否为数组
2015/12/22 Javascript
jQuery实现调整表格单列顺序完整实例
2016/06/20 Javascript
详解vue-cli与webpack结合如何处理静态资源
2017/09/19 Javascript
node 命令方式启动修改端口的方法
2018/05/12 Javascript
vue.js路由mode配置之去掉url上默认的#方法
2019/11/01 Javascript
vue 项目中当访问路由不存在的时候默认访问404页面操作
2020/08/31 Javascript
js实现特别简单的钟表效果
2020/09/14 Javascript
Python实现Pig Latin小游戏实例代码
2018/02/02 Python
python将txt文件读取为字典的示例
2018/12/22 Python
使用python对多个txt文件中的数据进行筛选的方法
2019/07/10 Python
Pandas分组与排序的实现
2019/07/23 Python
使用python将最新的测试报告以附件的形式发到指定邮箱
2019/09/20 Python
Tensorflow 卷积的梯度反向传播过程
2020/02/10 Python
django执行原始查询sql,并返回Dict字典例子
2020/04/01 Python
关于Python错误重试方法总结
2021/01/03 Python
css3动画 小球滚动 js控制动画暂停
2019/11/29 HTML / CSS
Html5调用手机摄像头并实现人脸识别的实现
2018/12/21 HTML / CSS
严选全球尖货,立足香港:Bonpont宝盆
2018/07/24 全球购物
mysql_pconnect()和mysql_connect()有什么区别
2012/05/25 面试题
Servlet的实例是在生命周期什么时候创建的?配置servlet最重要的是什么?
2012/05/30 面试题
关于是否需要写商业计划书
2014/02/07 职场文书
部队党性分析材料
2014/02/16 职场文书
化妆师职业生涯规划书
2014/02/16 职场文书
五一劳动节活动记录
2014/03/23 职场文书
党员承诺书范文
2014/05/19 职场文书
银行金融服务方案
2014/06/11 职场文书
夫妻房产协议书的格式
2014/10/11 职场文书
使用jpa之动态插入与修改(重写save)
2021/11/23 Java/Android
Python用any()函数检查字符串中的字母以及如何使用all()函数
2022/04/14 Python