基于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 相关文章推荐
在页面上点击任一链接时触发一个事件的代码
Apr 07 Javascript
javascript 面向对象编程 function也是类
Sep 17 Javascript
JavaScript事件委托用法分析
Jan 24 Javascript
jquery选择器中的空格与大于号&gt;、加号+与波浪号~的区别介绍
Jun 24 Javascript
JavaScript中const、var和let区别浅析
Oct 11 Javascript
JQuery 进入页面默认给已赋值的复选框打钩
Mar 23 jQuery
从零开始学习Node.js系列教程三:图片上传和显示方法示例
Apr 13 Javascript
在Vue中使用echarts的实例代码(3种图)
Jul 10 Javascript
原生JS实现日历组件的示例代码
Sep 22 Javascript
vuejs简单验证码功能完整示例
Jan 08 Javascript
详解JavaScript作用域和作用域链
Mar 19 Javascript
微信小程序云函数添加数据到数据库的方法
Mar 04 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 Session变量不能传送到下一页的解决方法
2009/11/27 PHP
PHP下获取上个月、下个月、本月的日期(strtotime,date)
2014/02/02 PHP
为你总结一些php系统类函数
2015/10/21 PHP
在WordPress中使用wp_count_posts函数来统计文章数量
2016/01/05 PHP
Javascript技巧之不要用for in语句对数组进行遍历
2010/10/20 Javascript
用jquery的方法制作一个简单的导航栏
2014/06/23 Javascript
jQuery+ajax实现鼠标单击修改内容的思路
2014/06/29 Javascript
深入理解JavaScript系列(18):面向对象编程之ECMAScript实现
2015/03/05 Javascript
vue2.0结合DataTable插件实现表格动态刷新的方法详解
2017/03/17 Javascript
激动人心的 Angular HttpClient的源码解析
2017/07/10 Javascript
基于Vue过渡状态实例讲解
2017/09/14 Javascript
js实现鼠标移动到图片产生遮罩效果
2017/10/21 Javascript
H5+C3+JS实现五子棋游戏(AI篇)
2020/05/28 Javascript
vue cli3.0打包上线静态资源找不到路径的解决操作
2020/08/03 Javascript
在Python中利用Into包整洁地进行数据迁移的教程
2015/03/30 Python
python实现带声音的摩斯码翻译实现方法
2015/05/20 Python
Python+Selenium自动化实现分页(pagination)处理
2017/03/31 Python
python下setuptools的安装详解及No module named setuptools的解决方法
2017/07/06 Python
python3+PyQt5使用数据库窗口视图
2018/04/24 Python
python如何从文件读取数据及解析
2019/09/19 Python
python读文件的步骤
2019/10/08 Python
HTML5实现多张图片上传功能
2016/03/11 HTML / CSS
adidas旗下高尔夫装备供应商:TaylorMade Golf(泰勒梅高尔夫)
2016/08/28 全球购物
Expedia印度尼西亚站:预订酒店、廉价航班和度假套餐
2018/01/31 全球购物
俄罗斯最大的香水和化妆品网上商店:Randewoo
2020/11/05 全球购物
以下为Windows NT 下的32 位C++程序,请计算sizeof 的值
2016/12/07 面试题
事业单位请假制度
2014/01/13 职场文书
迅雷Cued工作心得体会
2014/01/27 职场文书
六年级学生评语
2014/04/22 职场文书
人事任命书范文
2014/06/04 职场文书
乡镇干部个人对照检查材料思想汇报(原创篇)
2014/09/28 职场文书
教师思想作风整顿个人剖析材料
2014/10/10 职场文书
MySQL分库分表与分区的入门指南
2021/04/22 MySQL
Golang实现AES对称加密的过程详解
2021/05/20 Golang
Mysql数据库索引面试题(程序员基础技能)
2021/05/31 MySQL
linux中nohup和后台运行进程查看及终止
2021/06/24 Python