非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 相关文章推荐
img的onload的另类用法
Jan 10 Javascript
jquery focus(fn),blur(fn)方法实例代码
Dec 16 Javascript
JS 两日期相减,获得天数的小例子(兼容IE,FF)
Jul 01 Javascript
js实现仿QQ秀换装效果的方法
Mar 04 Javascript
基于zepto.js实现仿手机QQ空间的大图查看组件ImageView.js详解
Mar 05 Javascript
JavaScript类继承及实例化的方法
Jul 25 Javascript
javascript中if和switch,==和===详解
Jul 30 Javascript
AngualrJS中的Directive制作一个菜单
Jan 26 Javascript
vue2组件实现懒加载浅析
Mar 29 Javascript
微信小程序实现打开并下载服务器上面的pdf文件到手机
Sep 20 Javascript
js中的面向对象之对象常见创建方法详解
Dec 16 Javascript
JS class语法糖的深入剖析
Jul 07 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
php摘要生成函数(无乱码)
2012/02/04 PHP
[原创]ThinkPHP中SHOW_RUN_TIME不能正常显示运行时间的解决方法
2015/10/10 PHP
微信红包随机生成算法php版
2016/07/21 PHP
Yii2 如何在modules中添加验证码的方法
2017/06/19 PHP
PHP addAttribute()函数讲解
2019/02/03 PHP
jQuery使用手册之一
2007/03/24 Javascript
JavaScript 基础问答三
2008/12/03 Javascript
jQuery中.live()方法的用法深入解析
2013/12/30 Javascript
jquery遍历select元素(实例讲解)
2013/12/31 Javascript
js使用DOM设置单选按钮、复选框及下拉菜单的方法
2015/01/20 Javascript
基于jquery实现表格内容筛选功能实例解析
2016/05/09 Javascript
AngularJS教程之简单应用程序示例
2016/08/16 Javascript
JS实现仿百度文库评分功能
2017/01/12 Javascript
深入理解在JS中通过四种设置事件处理程序的方法
2017/03/02 Javascript
详解nodejs操作mongodb数据库封装DB类
2017/04/10 NodeJs
详解用node.js实现简单的反向代理
2017/06/26 Javascript
vue checkbox 全选 数据的绑定及获取和计算方法
2018/02/09 Javascript
使用vue-router为每个路由配置各自的title
2018/07/30 Javascript
js数据类型检测总结
2018/08/05 Javascript
解决vue的 v-for 循环中图片加载路径问题
2018/09/03 Javascript
vue项目动态设置页面title及是否缓存页面的问题
2018/11/08 Javascript
vue实现固定位置显示功能
2019/05/30 Javascript
layui 富文本编辑器和textarea值的相互传递方法
2019/09/18 Javascript
使用IPython下的Net-SNMP来管理类UNIX系统的教程
2015/04/15 Python
Python删除Java源文件中全部注释的实现方法
2017/08/30 Python
Python Pandas找到缺失值的位置方法
2018/04/12 Python
Python从文件中读取数据的方法讲解
2019/02/14 Python
django之使用celery-把耗时程序放到celery里面执行的方法
2019/07/12 Python
python twilio模块实现发送手机短信功能
2019/08/02 Python
Pytest mark使用实例及原理解析
2020/02/22 Python
ALLSAINTS英国官网:伦敦新锐潮流品牌
2016/09/19 全球购物
数据库基础的一些面试题
2012/02/25 面试题
行政管理人员精品工作推荐信
2013/11/04 职场文书
乡镇党员干部群众路线对照检查材料思想汇报
2014/09/28 职场文书
英文道歉信
2015/01/20 职场文书
旷工检讨书大全
2015/08/15 职场文书