通过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 相关文章推荐
腾讯UED 漂亮的提示信息效果代码
Sep 12 Javascript
浅析node.js中close事件
Nov 26 Javascript
js中日期的加减法
May 06 Javascript
jQuery选择器用法实例详解
Dec 17 Javascript
使用OpenLayers3 添加地图鼠标右键菜单
Dec 29 Javascript
详解JavaScript中js对象与JSON格式字符串的相互转换
Feb 14 Javascript
Js实现中国公民身份证号码有效性验证实例代码
May 03 Javascript
基于JavaScript实现无限加载瀑布流
Jul 21 Javascript
Angularjs之如何在跨域请求中传输Cookie的方法
Jun 01 Javascript
animate.css在vue项目中的使用教程
Aug 05 Javascript
Vue使用NProgress的操作过程解析
Oct 10 Javascript
js获取图片的base64编码并压缩
Dec 05 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获取当前网址及域名的实现代码
2013/06/23 PHP
使用PHP连接数据库_实现用户数据的增删改查的整体操作示例
2017/09/01 PHP
PHP使用HTML5 FormData对象提交表单操作示例
2019/07/02 PHP
php 使用 __call实现重载功能示例
2019/11/18 PHP
Jquery插件之多图片异步上传
2010/10/20 Javascript
jquery无法设置checkbox选中即没有变成选中状态
2014/03/27 Javascript
JavaScript数据结构与算法之集合(Set)
2016/01/29 Javascript
jQuery soColorPacker 网页拾色器
2016/06/22 Javascript
BootStrap 动态添加验证项和取消验证项的实现方法
2016/09/28 Javascript
总结Javascript中数组各种去重的方法
2016/10/04 Javascript
使用 jQuery.ajax 上传带文件的表单遇到的问题
2016/10/31 Javascript
jQuery EasyUI Draggable拖动组件
2017/03/01 Javascript
微信小程序使用image组件显示图片的方法【附源码下载】
2017/12/08 Javascript
使用js实现单链解决前端队列问题的方法
2020/02/03 Javascript
vue实现单一筛选、删除筛选条件
2020/10/26 Javascript
JavaScript实现前端倒计时效果
2021/02/09 Javascript
[02:09:59]火猫TV国士无双dota2 6.82版本详解(下)
2014/09/29 DOTA
python基础入门学习笔记(Python环境搭建)
2016/01/13 Python
Python的Flask框架中使用Flask-SQLAlchemy管理数据库的教程
2016/06/14 Python
Python的多维空数组赋值方法
2018/04/13 Python
详解python3中tkinter知识点
2018/06/21 Python
Python 生成 -1~1 之间的随机数矩阵方法
2018/08/04 Python
django利用request id便于定位及给日志加上request_id
2018/08/26 Python
python opencv实现图像边缘检测
2019/04/29 Python
python将类似json的数据存储到MySQL中的实例
2019/07/12 Python
Django框架静态文件使用/中间件/禁用ip功能实例详解
2019/07/22 Python
详解用Pytest+Allure生成漂亮的HTML图形化测试报告
2020/03/31 Python
Python实现自动整理文件的脚本
2020/12/17 Python
挪威太阳镜和眼镜网上商城:SmartBuyGlasses挪威
2016/08/20 全球购物
Otel.com:折扣酒店预订
2017/08/24 全球购物
HTC VIVE美国官网:VR虚拟现实眼镜
2018/02/13 全球购物
学雷锋的心得体会
2014/09/04 职场文书
个人融资协议书范本两则
2014/10/15 职场文书
简单租房协议书
2014/10/21 职场文书
社会主义核心价值观主题教育活动总结
2015/05/07 职场文书
感恩老师主题班会
2015/08/12 职场文书