基于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 相关文章推荐
关于取不到由location.href提交而来的上级页面地址的解决办法
Jul 30 Javascript
javascript中encodeURI和decodeURI方法使用介绍
May 06 Javascript
获取非最后一列td值并将title设为该值的方法
Oct 30 Javascript
JS滚轮事件onmousewheel使用介绍
Nov 01 Javascript
浏览器检测JS代码(兼容目前各大主流浏览器)
Feb 21 Javascript
浅谈js的异步执行
Oct 18 Javascript
jquery点击展示与隐藏更多内容
Dec 03 Javascript
详解react-native-fs插件的使用以及遇到的坑
Sep 12 Javascript
Vue实现简单分页器
Dec 29 Javascript
vue+element项目中过滤输入框特殊字符小结
Aug 07 Javascript
vue导航栏部分的动态渲染实例
Nov 01 Javascript
jstree中的checkbox默认选中和隐藏示例代码
Dec 29 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防盗链代码实例
2014/08/27 PHP
php判断输入是否是纯数字,英文,汉字的方法
2015/03/05 PHP
php中smarty区域循环的方法
2015/06/11 PHP
用PHP的socket实现客户端到服务端的通信实例详解
2017/02/04 PHP
PHP使用ajax的post方式下载excel文件简单示例
2019/08/06 PHP
javascript 浏览器检测代码精简版
2010/03/04 Javascript
js实现兼容IE6与IE7的DIV高度
2010/05/13 Javascript
jquery简单瀑布流实现原理及ie8下测试代码
2013/01/23 Javascript
js实现iframe跨页面调用函数的方法
2014/12/13 Javascript
node.js中的fs.truncate方法使用说明
2014/12/15 Javascript
使用JavaScript的AngularJS库编写hello world的方法
2015/06/23 Javascript
基于JavaScript如何制作遮罩层对话框
2016/01/26 Javascript
node.js文件上传处理示例
2016/10/27 Javascript
vue-cli的webpack模板项目配置文件分析
2017/04/01 Javascript
js链表操作(实例讲解)
2017/08/29 Javascript
js装饰设计模式学习心得
2018/02/17 Javascript
新版小程序登录授权的方法
2018/12/12 Javascript
JS实现电话号码的字母组合算法示例
2019/02/26 Javascript
layui实现数据表格点击搜索功能
2020/03/26 Javascript
使用Vant完成通知栏Notify的提示操作
2020/11/11 Javascript
[48:47]VGJ.S vs NB 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
python通过wxPython打开一个音频文件并播放的方法
2015/03/25 Python
python实现俄罗斯方块游戏
2020/03/25 Python
Python txt文件加入字典并查询的方法
2019/01/15 Python
详解Python并发编程之从性能角度来初探并发编程
2019/08/23 Python
python3常用的数据清洗方法(小结)
2019/10/31 Python
一文了解python 3 字符串格式化 F-string 用法
2020/03/04 Python
网页布局中CSS样式无效的十个重要原因详解
2017/08/10 HTML / CSS
说出一些常用的类,包,接口
2014/09/22 面试题
武汉某公司的C#笔试题面试题
2015/12/25 面试题
机械绘图员岗位职责
2013/11/19 职场文书
个人思想理论学习的自我鉴定
2013/11/30 职场文书
自我鉴定怎么写
2013/12/05 职场文书
学校拾金不昧表扬信
2015/01/16 职场文书
解决python存数据库速度太慢的问题
2021/04/23 Python
Go标准容器之Ring的使用说明
2021/05/05 Golang