电子相册特效

引言

初入前端这行不久,对很多东西还是很陌生,页面布局、合理使用Html标签、CSS属性、js书写习惯等等还都不是很熟悉,所以看到感兴趣的东西就想看看源码,看看实现原理,用来学习。 前几天看到tattoo写的一个jquery版结婚电子请帖,对首页的相册效果感兴趣,所以把源码打开看了两遍,自己再敲了一遍。

思路分析

1、页面使用embed标签内置了音乐。 只是没有循环播放。

2、CSS3使用了属性box-shadow、border-radius属性。

3、相册总体使用了postion布局, 共12张图片,分别用position:absolute固定位置。

4、图片按照索引顺序放大和缩小。图片从容器中心位置开始放大,放大后间隔2秒,回到容器左上角,再依次回到原始位置。

效果

关键代码

 1 var sceneObject={
 2     init:function(){
 3         this._enterAlbum();
 4     },
 5
 6     _enterAlbum:function(){
 7         var timer="";
 8
 9         autoPicWall();
10         timer=setInterval(autoPicWall,4000);
11
12     }
13 }
14
15 var picPage=0, //当前第几张图片正在进行放大或缩小。
16     picLeft,
17     picTop;
18
19 function autoPicWall(){
20     var $pictureWallPic=$(".pictureWall div"),
21         $own =$pictureWallPic.eq(picPage),
22         isBig=$own.hasClass(‘bigCenter‘),
23         hasClassPicRow=$own.hasClass(‘picRow‘);
24
25     becomeBig($own,hasClassPicRow);
26
27     //图片放大后,间隔2秒自动缩小。
28     setTimeout(becomeSmall($own,hasClassPicRow),2000);
29
30     if(picPage<$pictureWallPic.length-1){
31         picPage++;
32     }else if(picPage == $pictureWallPic.length - 1){
33         picPage=0;
34     }
35 }
36
37 function becomeBig($own,hasClassPicRow){
38     var $mask=$(‘.mask‘),
39         pictureWallWidth=$(‘.pictureWall‘).width(),
40         pictureWallHeight=$(‘.pictureWall‘).height();
41
42     picLeft=$own.css(‘left‘);
43     picTop=$own.css(‘top‘);
44
45     $own.toggleClass(‘bigCenter‘);
46     $mask.fadeIn(); //显示遮罩层。
47     //放大图片,移动div
48     if(hasClassPicRow){
49         for(var i = 120; i < 720; i+=20){
50             $own.find("img").animate({"width": i+"px", "height": i/1.5+"px"},2);
51             $own.animate({"left": (pictureWallWidth-i)/2+"px", "top": (pictureWallHeight-i/1.5)/2+"px"},2);
52         }
53     }else{
54         for(var i = 80; i < 480; i+=20){
55             $own.find("img").animate({"width": i+"px", "height": i*1.5+"px"},2);
56             $own.animate({"left": (pictureWallWidth-i)/2+"px", "top": (pictureWallHeight-i*1.5)/2+"px"},2);
57         }
58     }
59 }
60
61 function becomeSmall($own,hasClassPicRow){
62     var $mask = $(".mask"),
63           pictureWallWidth = $(".picture-wall").width(),
64           pictureWallHeight = $(".picture-wall").height();
65
66     if(hasClassPicRow){
67         for(var i = 720; i >= 120; i-=40){
68             $own.find("img").animate({"width": i+"px", "height": i/1.5+"px"},2);
69             /* 图片缩小到中心位置 */
70             $own.animate({"left": (pictureWallWidth-i)/2+"px", "top": (pictureWallHeight-i/1.5)/2+"px"},2);
71         }
72     }else{
73         for(var i = 480; i >= 80; i-=40){
74             $own.find("img").animate({"width": i+"px", "height": i*1.5+"px"},2);
75             /* 图片缩小到中心位置 */
76             $own.animate({"left": (pictureWallWidth-i)/2+"px", "top": (pictureWallHeight-i*1.5)/2+"px"},2);
77         }
78     }
79
80     /* 图片缩小到中心位置后,回到原始位置 */
81     $own.animate({"left": picLeft, "top": picTop},400,function(){
82         $mask.fadeOut(); /* 隐藏遮罩层 */
83         $own.toggleClass("bigCenter"); /* 去除放大的class属性 */
84     });
85 }
86
87 $(function(){
88     sceneObject.init();
89 });

总结

需要下载源代码的直接去原作者软文里下。http://www.cnblogs.com/tattoo/p/4500329.html

时间: 2024-10-12 19:40:09

电子相册特效的相关文章

图形化编程娱乐于教,Kittenblock实例,电子相册,按键控制效果

跟很多学生聊过,很多学生不是不努力,只是找不到感觉.有一点不可否认,同样在一个教室上课,同样是一个老师讲授,学习效果迥然不同.关键的问题在于,带入感,我能给出的建议,就是咬咬牙,坚持住,没有学不会的知识.会陆续分享图形化编程的经验,希望能够做成一个专题.如果您觉得有用,就给点个赞吧.涉及的软件包括scratch3.0 (.sb3).Python.Kittenblock. 程序解读:电子相册,按键控制效果 知识点:随机数.虚像特效,图形.事件.按键 重点:按键控制效果 涉及的软件:scratch3

(11)网页样式综合案列---灵活的电子相册 {上}

本篇学习资料讲解:       通过css对电子相册进行排版 和 侧面强调“盒子模型.标准流.浮动和定位”的重要性. 先来看看"双向联动模式"的电子相册图: {鼠标指针经过某张图片(或者某段文字)时,相应的文字(或者相应的某张图片)会以特殊样式显示} 以上部分的介绍将出现在(12)网页样式综合案列---灵活的电子相册 {下},这里只是提前感受. 1.搭建基本框架 搭建框架主要应考虑在实际页面中相册的具体结构和形式,包括照片整体排列的方法,用户可能的浏览情况,照片是否需要自动调整,等等.

Android特效专辑(六)——仿QQ聊天撒花特效,无形装逼,最为致命

Android特效专辑(六)--仿QQ聊天撒花特效,无形装逼,最为致命 我的关于特效的专辑已经在CSDN上申请了一个专栏--http://blog.csdn.net/column/details/liuguilin.html 日后我所写的特效专辑也会以一添加在这个专栏上,今天写的这个特效,是关于聊天的,你肯定遇到过,就是你跟人家聊天的时候,比如发送应(么么哒),然后屏幕上全部就是表情了,今天我们就是做这个,撒花的特效,国际惯例,上图 截图 实现这样的效果,你要知道贝塞尔曲线,何谓贝塞尔曲线?其实

Qt制作Aero特效窗口

转载请注明链接与作者huihui1988 初学QT,边看书边自己做点小东西.最近突然心血来潮,想自己做个小巧点的,界面美观一点的备忘当桌面上.想了半天,发现VISTA/WIN7的Aero效果就不错,况且自己现在就在用WIN7.于是上网找了下QT制作Aero效果的方法.Google之后终于找到了函数和用法.于是做了一个简单的Aero特效窗口 以下是头文件和实现文件: [cpp] view plaincopy //qtwin.h #ifndef QTWIN_H #define QTWIN_H #in

WordPress英文主题不显示中文的原因:Cufon字体特效

经常会有WordPress英文主题不显示文章标题,其原因是英文主题设计者喜欢用Cufon字体特效,从而导致中文无法显示,Cufon字体特效js代码主要是将文字以图片的方式显示出来,但是其缺点是:只支持英文字符和数字,其他文字只能和他说拜拜了,中文也不例外,下面我们看看Cufon字体特效究竟是何方神圣. 什么是Cufon? Cufon 是一个用来替代 sIFR 框架,实现在网页中对文字字体进行渲染功能的纯 JavaScript 开源类库(cufon-yui.js). 为什么要用Cufon 在web

牙痛的特效治疗法

牙疼,英文为:toothache,不是病,但痛起来要命. 我们都有过牙痛的经历吧,现在终于搞清楚了,牙痛的根源是十二经络邪火上腾作乱.   按阴阳分,上牙属阳,下牙属阴.       再细分,中门上牙痛是有心火,下牙痛有肾火.       两边上牙痛有胃火,下牙痛有脾火.       左边上牙痛有胆火,下牙痛有肝火. 特效治疗法: 一,通过揉搓合谷穴来治疗. 合谷穴治牙痛是最管用的,而且是交叉治.如果您右侧牙痛,就揉左边的合谷穴:左侧牙疼,就揉右边的合谷穴.揉的时候,最好再加一个压痛点,那效果就

android tv焦点特效实现浅析

Android TV上的焦点凸显特效相信大家都看到过,那么我们就来实现它吧,首先上张效果图. 先说一下实现原理,主要通过重写RelativeLayout实现item,之后在其中加入scalanimation动画效果.刚开始处理时,还是发现了一些问题,比如item放大后会被其他item遮挡,如何添加选中边框等等,以及动画的实现等等.下面放上实现细节. 首先是item的代码: <view xmlns:android="http://schemas.android.com/apk/res/and

【Unity Shaders】使用Unity Render Textures实现画面特效——画面特效中的叠加(Overlay)混合模式

本系列主要参考<Unity Shaders and Effects Cookbook>一书(感谢原书作者),同时会加上一点个人理解或拓展. 这里是本书所有的插图.这里是本书所需的代码和资源(当然你也可以从官网下载). ========================================== 分割线 ========================================== 写在前面 在这篇里,我们将会学习另一种混合模式,叠加(Overlay)混合模式.这种混合模式使用了条

文字特效text-shadow HTML+css

今天总结一下文字特效text-shadow,如果用好它可以做出各种不一样的效果,下图是我做出的几种效果. 怎么样,看起来很不错吧,下面贴代码. /* css */ p{ width:300px; margin:0 auto; background:#e9e9e9; padding:30px 0; font-size:30px; font-family:Arial, Helvetica, sans-serif; font-weight:bold; text-align:center; } .a1{