通过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 相关文章推荐
Whatever:hover 无需javascript让IE支持丰富伪类
Jun 29 Javascript
javascript深入理解js闭包
Jul 03 Javascript
THREE.JS入门教程(6)创建自己的全景图实现步骤
Jan 25 Javascript
JS特殊函数(Function()构造函数、函数直接量)区别介绍
May 19 Javascript
用瀑布流的方式在网页上插入图片的简单实现方法
Sep 23 Javascript
Jquery针对tr td的一些实用操作方法(必看篇)
Oct 05 Javascript
jsp 网站引入外部css或者js失效问题解决
Oct 31 Javascript
详解JavaScript时间处理之几个月前或几个月后的指定日期
Dec 21 Javascript
Vue三层嵌套路由的示例代码
May 05 Javascript
利用jqgrid实现上移下移单元格功能
Nov 07 Javascript
基于vue框架手写一个notify插件实现通知功能的方法
Mar 31 Javascript
JavaScript页面倒计时功能完整示例
May 15 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 地址栏信息的获取代码
2009/01/07 PHP
PHP多例模式介绍
2013/06/24 PHP
php实现执行某一操作时弹出确认、取消对话框
2013/12/30 PHP
一个经典实用的PHP图像处理类分享
2014/11/18 PHP
PHP设计模式之原型模式定义与用法详解
2018/04/03 PHP
tp5框架使用composer实现日志记录功能示例
2019/01/10 PHP
超级简单的图片防盗(HTML),好用
2007/04/08 Javascript
JavaScript-世界上误解最深的语言分析
2007/08/12 Javascript
分享精心挑选的12款优秀jQuery Ajax分页插件和教程
2012/08/09 Javascript
JavaScript如何自定义trim方法
2015/07/28 Javascript
js判断手机访问或者PC的几个例子(常用于手机跳转)
2015/12/15 Javascript
jQuery事件委托之Safari
2016/07/05 Javascript
js变量提升深入理解
2016/09/16 Javascript
微信小程序中单位rpx和rem的使用
2016/12/06 Javascript
angularjs+bootstrap菜单的使用示例代码
2017/03/07 Javascript
Vue页面跳转动画效果的实现方法
2018/09/23 Javascript
在Create React App中启用Sass和Less的方法示例
2019/01/16 Javascript
vue实现随机验证码功能的实例代码
2019/04/30 Javascript
python实现根据图标提取分类应用程序实例
2014/09/28 Python
PyQt5每天必学之QSplitter实现窗口分隔
2018/04/19 Python
django 通过URL访问上传的文件方法
2019/07/28 Python
python 画函数曲线示例
2019/12/04 Python
python3 webp转gif格式的实现示例
2019/12/10 Python
tensorflow 保存模型和取出中间权重例子
2020/01/24 Python
详解Python中的分支和循环结构
2020/02/11 Python
解决python运行启动报错问题
2020/06/01 Python
python两种注释用法的示例
2020/10/09 Python
详解selenium + chromedriver 被反爬的解决方法
2020/10/28 Python
Python try except finally资源回收的实现
2021/01/25 Python
使用canvas生成含有微信头像的邀请海报没有微信头像问题
2019/10/29 HTML / CSS
维多利亚的秘密官方网站:Victoria’s Secret
2018/10/24 全球购物
婚前保证书
2014/04/29 职场文书
三好学生事迹材料
2014/12/24 职场文书
狼牙山五壮士观后感
2015/06/09 职场文书
pytorch 中autograd.grad()函数的用法说明
2021/05/12 Python
SpringBoot接入钉钉自定义机器人预警通知
2022/07/15 Java/Android