基于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 相关文章推荐
JavaScript中instanceof与typeof运算符的用法及区别详细解析
Nov 19 Javascript
JS 弹出层 定位至屏幕居中示例
May 21 Javascript
JavaScript中常用的六种互动方法示例
Mar 13 Javascript
JS实现定时自动关闭DIV层提示框的方法
May 11 Javascript
详解js图片轮播效果实现原理
Dec 17 Javascript
JS实现图片高斯模糊切换效果的焦点图实例
Jan 21 Javascript
React操作真实DOM实现动态吸底部的示例
Oct 23 Javascript
vue+swiper实现组件化开发的实例代码
Oct 26 Javascript
Javascript格式化并高亮xml字符串的方法及注意事项
Aug 13 Javascript
编写更好的JavaScript条件式和匹配条件的技巧(小结)
Jun 27 Javascript
JavaScript 防抖和节流遇见的奇怪问题及解决
Nov 20 Javascript
一篇文章告诉你如何实现Vue前端分页和后端分页
Feb 18 Vue.js
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语言流程控制中的主动与被动
2012/11/05 PHP
基于PHP一些十分严重的缺陷详解
2013/06/03 PHP
php使用GeoIP库实例
2014/06/27 PHP
对联广告js flash激活
2006/10/19 Javascript
用jQuery实现检测浏览器及版本的脚本代码
2008/01/22 Javascript
JS中Iframe之间传值的方法
2013/03/11 Javascript
使用jquery的ajax需要注意的地方dataType的设置
2013/08/12 Javascript
深入理解JavaScript中的传值与传引用
2013/12/09 Javascript
js通过iframe加载外部网页的实现代码
2015/04/05 Javascript
BootStrap中Tab页签切换实例代码
2016/05/30 Javascript
node.js版本管理工具n无效的原理和解决方法
2016/11/24 Javascript
Javascript 实现全屏滚动实例代码
2016/12/31 Javascript
nodejs+websocket实时聊天系统改进版
2017/05/18 NodeJs
vue 实现左右拖拽元素并且不超过他的父元素的宽度
2018/11/30 Javascript
详解如何运行vue项目
2019/04/15 Javascript
node.js处理前端提交的GET请求
2019/08/30 Javascript
解决layui动态加载复选框无法选中的问题
2019/09/20 Javascript
微信小程序制作扭蛋机代码实例
2019/09/24 Javascript
jquery 插件重新绑定的处理方法分析
2019/11/23 jQuery
python中__slots__用法实例
2015/06/04 Python
urllib和BeautifulSoup爬取维基百科的词条简单实例
2018/01/17 Python
Python集合操作方法详解
2020/02/09 Python
keras实现基于孪生网络的图片相似度计算方式
2020/06/11 Python
python3列表删除大量重复元素remove()方法的问题详解
2021/01/04 Python
在PyCharm中安装PaddlePaddle的方法
2021/02/05 Python
世界第一曲奇连锁店:Mrs. Fields Cookies
2017/02/04 全球购物
简述Linux文件系统通过i节点把文件的逻辑结构和物理结构转换的工作过程
2016/01/06 面试题
工作疏忽检讨书
2014/01/25 职场文书
企业内部培训方案
2014/02/04 职场文书
上课迟到检讨书
2014/02/19 职场文书
低碳环保口号
2014/06/12 职场文书
公务员年终个人总结
2015/02/12 职场文书
期末个人总结范文
2015/02/13 职场文书
个人政治思想总结
2015/03/05 职场文书
房屋转让协议书(标准范本)
2016/03/21 职场文书
SQL Server中使用表变量和临时表
2022/05/20 SQL Server