通过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 相关文章推荐
IE与FireFox的兼容性问题分析
Apr 22 Javascript
jQuery插件jcrop+Fileapi完美实现图片上传+裁剪+预览的代码分享
Apr 22 Javascript
jQuery实现的背景动态变化导航菜单效果
Aug 24 Javascript
javascript实现密码验证
Nov 10 Javascript
深入理解vue.js双向绑定的实现原理
Dec 05 Javascript
微信小程序 同步请求授权的详解
Aug 04 Javascript
vue 过滤器filter实例详解
Mar 14 Javascript
jQuery实现带右侧索引功能的通讯录示例【附源码下载】
Apr 17 jQuery
JS+H5 Canvas实现时钟效果
Jul 20 Javascript
vue实现双向绑定和依赖收集遇到的坑
Nov 29 Javascript
利用node 判断打开的是文件 还是 文件夹的实例
Jun 10 Javascript
JavaScript制作3D旋转相册
Aug 02 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
用IE远程创建Mysql数据库的简易程序
2006/10/09 PHP
《PHP编程最快明白》第五讲:php目录、文件操作
2010/11/01 PHP
PHP实现单例模式最安全的做法
2014/06/13 PHP
在laravel中使用Symfony的Crawler组件分析HTML
2017/06/19 PHP
点击标签切换和自动切换DIV选项卡
2014/08/10 Javascript
详解Javascript模板引擎mustache.js
2016/01/20 Javascript
分享12个非常实用的JavaScript小技巧
2016/05/11 Javascript
js select下拉联动 更具级联性!
2020/04/17 Javascript
JS实现PC手机端和嵌入式滑动拼图验证码三种效果
2017/02/15 Javascript
如何解决js函数防抖、节流出现的问题
2019/06/17 Javascript
vue分页器组件编写方法详解
2019/06/28 Javascript
微信小程序 拍照或从相册选取图片上传代码实例
2019/08/28 Javascript
微信小程序实现蒙版弹出窗功能
2019/09/17 Javascript
vue 防止页面加载时看到花括号的解决操作
2020/11/09 Javascript
jquery实现点击左右按钮切换图片
2021/01/27 jQuery
[01:08]DOTA2次级职业联赛 - Shield战队宣传片
2014/12/01 DOTA
[49:43]VG vs FNATIC 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
python实现爬虫统计学校BBS男女比例之数据处理(三)
2015/12/31 Python
Python中防止sql注入的方法详解
2017/02/25 Python
使用Python读取二进制文件的实例讲解
2018/07/09 Python
解决pycharm的Python console不能调试当前程序的问题
2019/01/20 Python
Python pip替换为阿里源的方法步骤
2019/07/02 Python
Flask教程之重定向与错误处理实例分析
2019/08/01 Python
python匿名函数的使用方法解析
2019/10/10 Python
利用Python实现Json序列化库的方法步骤
2020/09/09 Python
AmazeUI 导航条的实现示例
2020/08/14 HTML / CSS
平面设计师的工作职责
2013/11/21 职场文书
篝火晚会主持词
2014/03/25 职场文书
我爱我的祖国演讲稿
2014/05/04 职场文书
建筑专业毕业生自荐信
2014/05/25 职场文书
银行求职信
2014/05/31 职场文书
2015年度内部审计工作总结
2015/05/20 职场文书
同学聚会致辞集锦
2015/07/28 职场文书
Python字典的基础操作
2021/11/01 Python
基于PyQT5制作一个桌面摸鱼工具
2022/02/15 Python
Python中tqdm的使用和例子
2022/09/23 Python