非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 相关文章推荐
在Windows上安装Node.js模块的方法
Sep 25 Javascript
Javascript学习笔记之相等符号与严格相等符号
Nov 23 Javascript
jQuery中DOM树操作之复制元素的方法
Jan 23 Javascript
JS实现网页背景颜色与select框中颜色同时变化的方法
Feb 27 Javascript
JS获取表格内指定单元格html内容的方法
Mar 31 Javascript
纯javascript模仿微信打飞机小游戏
Aug 20 Javascript
javascript实现简单的on事件绑定
Aug 23 Javascript
微信小程序开发教程-手势解锁实例
Jan 06 Javascript
vue2项目使用sass的示例代码
Jun 28 Javascript
JS实现的全排列组合算法示例
Oct 09 Javascript
基于模板引擎Jade的应用(详解)
Dec 12 Javascript
jQuery开发仿QQ版音乐播放器
Jul 10 jQuery
开源的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
一个捕获函数输出的函数
2007/02/14 PHP
比较简单实用的PHP无限分类源码分享(思路不错)
2011/10/13 PHP
php数组添加元素方法小结
2014/12/20 PHP
php中stdClass的用法分析
2015/02/27 PHP
Zend Framework教程之响应对象的封装Zend_Controller_Response实例详解
2016/03/07 PHP
php如何控制用户对图片的访问 PHP禁止图片盗链
2016/03/25 PHP
php查看一个变量的占用内存的实例代码
2020/03/29 PHP
Prototype使用指南之enumerable.js
2007/01/10 Javascript
javascript生成/解析dom的CDATA类型的字段的代码
2007/04/22 Javascript
jquery监控数据是否变化(修正版)
2011/04/12 Javascript
js常用代码段整理
2011/11/30 Javascript
cookie的复制与使用记住用户名实现代码
2013/11/04 Javascript
jquery获取css中的选择器(实例讲解)
2013/12/02 Javascript
jquery取消选择select下拉框示例代码
2014/02/22 Javascript
使用js画图之画切线
2015/01/12 Javascript
Javascript中String的常用方法实例分析
2015/06/13 Javascript
php结合imgareaselect实现图片裁剪
2015/07/05 Javascript
jquery及js实现动态加载js文件的方法
2016/01/21 Javascript
jquery层级选择器的实现(匹配后代元素div)
2016/09/05 Javascript
用Angular实时获取本地Localstorage数据,实现一个模拟后台数据登入的效果
2016/11/09 Javascript
Form表单按回车自动提交表单的实现方法
2016/11/18 Javascript
Bootstrap Table 在指定列中添加下拉框控件并获取所选值
2017/07/31 Javascript
js中apply和Math.max()函数的问题及区别介绍
2018/03/27 Javascript
vue组件name的作用小结
2018/05/23 Javascript
微信小程序实现tab页面切换功能
2018/07/13 Javascript
vue router带参数页面刷新或回退参数消失的解决方法
2019/02/27 Javascript
Vue快速实现通用表单验证功能
2019/12/05 Javascript
使用IPython来操作Docker容器的入门指引
2015/04/08 Python
django主动抛出403异常的方法详解
2019/01/04 Python
Python利用pip安装tar.gz格式的离线资源包
2020/09/14 Python
适合各种场合的美食礼品:Harry & David
2016/08/03 全球购物
高中毕业自我鉴定
2013/12/16 职场文书
企业务虚会发言材料
2014/10/20 职场文书
六一领导慰问欢迎词
2015/01/26 职场文书
复活读书笔记
2015/06/29 职场文书
如何写一份具有法律效力的借款协议书?
2019/07/02 职场文书