通过JQuery实现win8一样酷炫的动态磁贴效果(示例代码)


Posted in Javascript onJuly 13, 2013

我个人表示非常喜欢微软新一代的产品,先不管它产品的成熟与否,但是它带来的是全新的产品。所谓全新,是指在用户体验上,苹果这些年的成功使得所有产品都在模仿它的界面,包括安卓在内,不知道大家的感觉如何,反正我是对这些圆角矩形产生了审美疲劳(苹果以及安卓的粉丝勿喷,这里仅仅是从界面上评价,事实上从整体上来说,微软还是有差距的),当年wp的推出让我眼前一亮,马上喜欢上了Metro风格的产品,直至今天wp8以及win8开始越来越成熟。

写的不好,欢迎各位看官指正批评,不欢迎无故猛喷。大神请绕道。

废话少说,进入正题。基本思想是:定义一个外层div,固定高度(例如本例中的180px)并设置属性overflow:hidden(隐藏超出边框的部分),然后在这个div里面定义一个内层div,并设置属性position:relative(采用相对布局)。在这个内层div里面,我们定义一张图片,注意要设置它的高度跟外层div高度一样(如本例中的180px),再定义一个div放文字,该div的高度也和外层div高度一样(如本例中的180px,如果你给了一个padding,则高度相应减小,以达到整个div是180px的高度)。布局代码如下所示
html:

<div id="outside">
    <div id="inside">
        <img width="180px" height="180px" src="http://xxxxxxxxx图片地址" />
        <div id="text">
            <span>通过JQuery实现win8一样酷炫的动态磁贴效果</span>
            <p>林宇</p>
            <p>我个人表示非常喜欢微软新一代的产品……</p>
        </div>
    </div>
</div>

css:
#outside
{
    height:180px;
    overflow:hidden;
}
#inside
{
    position:relative;
}
#text
{
    width:160px;
    height:160px;
    background:#0000ff;
    padding:10px;
    color:#fff;
}

剩下来的就是JQuery的事情了。首先先理解一下这个“动态磁贴”的动作:一开始显示一张图片,然后向上滑动显示文字,停留一会,再向下滑动显示图片,如此循环。我们先定义一个函数:
function go(id, d1, px1, val1, d2, px2, val2) {
    $(id).delay(d1);
    $(id).animate({ bottom: px1 }, val1, function () {
        $(id).delay(d2);
        $(id).animate({ bottom: px2 }, val2);
    });
}

这里有7个参数,id是内层div也就是要滑动的div的id,d1是内层div滑上去以后停留的时间,px1是内层div要向上滑动的相对位置,默认当前位置为0px,val1是内层div的完成向上滑动动作所需要的时间,d2是向下滑动div后停留的时间,px2是向下滑动的相对位置,这里依然是以原来的位置为0px,val2是完成向下滑动所需的时间。

然后我们在页面加载完成的时候设置一个定时器,来执行我们定义的go函数:

$(function () {
    timer1 = setInterval(function () {
        go("#inside", 1500, "180px", 1200, 1000, "0px", 2000);
    }, 3000);
});

这里的参数可以根据需要进行修改,这里我们让定时器每3秒执行一次go函数。
源码基本都贴出来了,有需要源文件的童鞋可以猛击这里下载
Javascript 相关文章推荐
Javascript中的Array数组对象详谈
Mar 03 Javascript
利用Keydown事件阻止用户输入实现代码
Mar 11 Javascript
js插件设置innerHTML时在IE8下提示“未知运行时错误”解决方法
Apr 25 Javascript
简单分析javascript面向对象与原型
May 21 Javascript
禁止按回车键提交表单的方法
Jun 11 Javascript
tuzhu_req.js 实现仿百度图片首页效果
Aug 11 Javascript
浅谈js中子页面父页面方法 变量相互调用
Aug 04 Javascript
vue自定义底部导航栏Tabbar的实现代码
Sep 03 Javascript
浅谈vue同一页面中拥有两个表单时,的验证问题
Sep 18 Javascript
Mint UI组件库CheckList使用及踩坑总结
Dec 20 Javascript
JS实现骰子3D旋转效果
Oct 24 Javascript
关于Javascript闭包与应用的详解
Apr 22 Javascript
浅析ajax请求json数据并用js解析(示例分析)
Jul 13 #Javascript
网页前端优化之滚动延时加载图片示例
Jul 13 #Javascript
JavaScript获取FCK编辑器信息的具体方法
Jul 12 #Javascript
javascript 实现 秒杀,团购 倒计时展示的记录 分享
Jul 12 #Javascript
jquery实现微博文字输入框 输入时显示输入字数 效果实现
Jul 12 #Javascript
jquery 滚动条事件简单实例
Jul 12 #Javascript
简约JS日历控件 实例代码
Jul 12 #Javascript
You might like
PHP 第二节 数据类型之转换
2012/04/28 PHP
PHP之十六个魔术方法详细介绍
2016/11/01 PHP
thinkPHP+LayUI 流加载实现功能
2019/09/27 PHP
Javascript 写的简单进度条控件
2008/01/22 Javascript
JavaScript CSS修改学习第六章 拖拽
2010/02/19 Javascript
jquery中输入验证中一个不错的效果
2010/08/21 Javascript
jquery制作多功能轮播图插件
2015/04/02 Javascript
JavaScript类型检测之typeof 和 instanceof 的缺陷与优化
2016/01/13 Javascript
使用do...while的方法输入一个月中所有的周日(实例代码)
2016/07/22 Javascript
js 获取今天以及过去日期
2017/04/11 Javascript
Nodejs中获取当前函数被调用的行数及文件名详解
2018/12/12 NodeJs
浅谈KOA2 Restful方式路由初探
2019/03/14 Javascript
基于iview的router常用控制方式
2019/05/30 Javascript
基于form-data请求格式详解
2019/10/29 Javascript
详解Vue.js 响应接口
2020/07/04 Javascript
python实现的防DDoS脚本
2011/02/08 Python
python网络编程学习笔记(九):数据库客户端 DB-API
2014/06/09 Python
python实现的一个火车票转让信息采集器
2014/07/09 Python
利用Python中unittest实现简单的单元测试实例详解
2017/01/09 Python
Python实现PS滤镜的万花筒效果示例
2018/01/23 Python
python实现简单登陆系统
2018/10/18 Python
Django 路由控制的实现
2019/07/17 Python
Django 数据库同步操作技巧详解
2019/07/19 Python
python word转pdf代码实例
2019/08/16 Python
python实现回旋矩阵方式(旋转矩阵)
2019/12/04 Python
python装饰器的特性原理详解
2019/12/25 Python
实例教程 纯CSS3打造非常炫的加载动画效果
2014/11/05 HTML / CSS
大学生的网上创业计划书
2013/12/31 职场文书
六十岁生日答谢词
2014/01/10 职场文书
情侣吵架检讨书
2014/02/05 职场文书
美容院经理岗位职责
2014/04/03 职场文书
客运企业隐患排查工作方案
2014/06/06 职场文书
食品安全宣传标语
2014/06/07 职场文书
水污染治理工程专业求职信
2014/06/14 职场文书
2014年公务员转正工作总结
2014/11/07 职场文书
党员剖析材料范文
2014/12/18 职场文书