非jQuery实现照片散落桌子上,单击放大的LightBox效果


Posted in Javascript onNovember 28, 2014

效果图如下

非jQuery实现照片散落桌子上,单击放大的LightBox效果

非jQuery实现照片散落桌子上,单击放大的LightBox效果

Demo地址http://xueduany.github.io/KitJs/KitJs/demo/Lightbox-Gallery/demo.html

实现原理很简单,基本的html如下

<div id="gallery">

            <div class="item">

                <a class="kitLightBox" href="img/original/blue-green-nature.jpg" target="_blank"><img src="img/thumbs/blue-green-nature.jpg"></a>

                <div class="desc">

                    blue-green-nature

                </div>

            </div>

            <div class="item">

                <a class="kitLightBox" href="img/original/2-breast-stroke.jpg" target="_blank"><img src="img/thumbs/2-breast-stroke.jpg"></a>

                <div class="desc">

                    2-breast-stroke

                </div>

            </div>

            <div class="item">

                <a class="kitLightBox" href="img/original/farm.jpg" target="_blank"><img src="img/thumbs/farm.jpg"></a>

                <div class="desc">

                    farm

                </div>

            </div>

            <div class="item">

                <a class="kitLightBox" href="img/original/bahnhoff.jpg" target="_blank"><img src="img/thumbs/bahnhoff.jpg"></a>

                <div class="desc">

                    bahnhoff

                </div>

            </div>
            ……

先定义一块桌布,也就是div id=”gallery”

然后按照顺序,排列一竖列相册,div class=”item”,里面用一个a链接把图片包起来

接下来,我们要实现相片的分散效果,

$k(function() {

$k('.item', $k('#gallery')).each(function() {

$k(this).css({

top : $kit.math.rand($k('#gallery').innerHeight()) + 'px',

left : $kit.math.rand($k('#gallery').innerWidth()) + 'px',

'-webkit-transform' : 'rotate(' + $kit.math.rand(-40, 40) + 'deg)'

});

})

这里的是$k是kit的写法,类似jQuery的$,API完全一样,这段代码的意思是找到所有item的div,设置为绝对定位,用桌布高宽,生成随机数,排列,对于css3,使用css3特有的旋转效果'rotate属性,旋转一定角度

这个时候,相片就开始分散开了,达到了图1的效果,接下来我们要做一下LightBox的效果,

$k(function() {

$k('.item', $k('#gallery')).each(function() {

$k(this).css({

top : $kit.math.rand($k('#gallery').innerHeight()) + 'px',

left : $kit.math.rand($k('#gallery').innerWidth()) + 'px',

'-webkit-transform' : 'rotate(' + $kit.math.rand(-40, 40) + 'deg)'

});

}).pushStack('a.kitLightBox').each(function() {

new $kit.ui.LightBox({

el : this

}).init();

});

});

完整代码如上,对于每个图片的a链接,使用kitjs的lightbox UI widget实例化,得到的效果就能点击,动画效果的打开图片大图了。^_^祝各位使用愉快!

LightBox源代码https://github.com/xueduany/KitJs/blob/master/KitJs/src/js/widget/LightBox/lightbox.js

相片分散效果源代码https://github.com/xueduany/KitJs/blob/master/KitJs/demo/Lightbox-Gallery/demo.html

本文是基于KITJS框架来实现的,小伙伴们如果不是很了解,那么后续文章,我们来详细介绍下这款非常棒的js框架。

Javascript 相关文章推荐
关于js类的定义
Jun 28 Javascript
javascript string字符串优化问题
Jul 31 Javascript
silverlight线程与基于事件驱动javascript引擎(实现轨迹回放功能)
Aug 09 Javascript
JavaScript调用传递变量参数的相关问题及解决办法
Nov 01 Javascript
41个Web开发者必须收藏的JavaScript实用技巧
Jul 22 Javascript
AngularJS 简单应用实例
Jul 28 Javascript
打造自己的jQuery插件入门教程
Sep 23 Javascript
javascript使用递归算法求两个数字组合功能示例
Jan 03 Javascript
小程序云开发部署攻略(图文教程)
Oct 30 Javascript
详解Vue前端生产环境发布配置实战篇
May 07 Javascript
Vue状态模式实现窗口停靠功能(灵动、自由, 管理后台Admin界面)
Mar 06 Javascript
javascript用defineProperty实现简单的双向绑定方法
Apr 03 Javascript
开源的javascript项目Kissy介绍
Nov 28 #Javascript
对比分析json及XML
Nov 28 #Javascript
jquery 操作css样式、位置、尺寸方法汇总
Nov 28 #Javascript
javascript基本类型详解
Nov 28 #Javascript
javascript中数组array及string的方法总结
Nov 28 #Javascript
20条学习javascript的编程规范的建议
Nov 28 #Javascript
20个实用的JavaScript技巧分享
Nov 28 #Javascript
You might like
echo(),print(),print_r()之间的区别?
2006/11/19 PHP
php变量作用域的深入解析
2013/06/03 PHP
php生成二维码
2015/08/10 PHP
thinkPHP的表达式查询用法详解
2016/09/14 PHP
HR vs ForZe BO3 第二场 2.13
2021/03/10 DOTA
用javascript实现读取txt文档的脚本
2007/07/20 Javascript
Track Image Loading效果代码分析
2007/08/13 Javascript
解决jquery的.animate()函数在IE6下的问题
2010/12/03 Javascript
jquery ajax同步异步的执行最终解决方案
2013/04/26 Javascript
JS文字球状放大效果代码分享
2015/08/19 Javascript
无阻塞加载js,防止因js加载不了影响页面显示的问题
2016/12/18 Javascript
前端编码规范(3)JavaScript 开发规范
2017/01/21 Javascript
JSON键值对序列化和反序列化解析
2017/01/24 Javascript
详解Angular中的自定义服务Service、Provider以及Factory
2017/04/22 Javascript
ionic中的$ionicPlatform.ready事件中的通用设置
2017/06/11 Javascript
浅析Node.js非对称加密方法
2018/01/29 Javascript
webpack4+express+mongodb+vue实现增删改查的示例
2018/11/08 Javascript
微信小程序wepy框架学习和使用心得详解
2019/05/24 Javascript
Vue路由 重定向和别名的区别说明
2020/09/09 Javascript
python设置检查点简单实现代码
2014/07/01 Python
Python机器学习之决策树算法
2017/12/22 Python
Python多进程原理与用法分析
2018/08/21 Python
解决python 找不到module的问题
2020/02/12 Python
Python接口测试环境搭建过程详解
2020/06/29 Python
Python基础教程之输入输出和运算符
2020/07/26 Python
解决python和pycharm安装gmpy2 出现ERROR的问题
2020/08/28 Python
new修饰符是起什么作用
2015/06/28 面试题
文秘专业自荐信
2013/10/14 职场文书
给分销商的致歉信
2014/01/14 职场文书
小区门卫值班制度
2014/01/24 职场文书
保护环境演讲稿
2014/05/10 职场文书
失职检讨书大全
2015/01/26 职场文书
烈士陵园观后感
2015/06/08 职场文书
评奖评优个人先进事迹材料
2015/11/04 职场文书
MySQL中出现乱码问题的终极解决宝典
2021/05/26 MySQL
Python中异常处理用法
2021/11/27 Python