非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 页面输出值
Nov 30 Javascript
JavaScript中变量提升 Hoisting
Jul 03 Javascript
jQuery实现等比例缩放大图片让大图片自适应页面布局
Oct 16 Javascript
JavaScript使用循环和分割来替换和删除元素实例
Oct 13 Javascript
JavaScript中对象property的读取和写入方法介绍
Dec 30 Javascript
学习JavaScript设计模式之策略模式
Jan 12 Javascript
Bootstrap源码学习笔记之bootstrap进度条
Dec 24 Javascript
Bootstrap导航中表单简单实现代码
Mar 06 Javascript
JavaScript中的工厂函数(推荐)
Mar 08 Javascript
Node.js + express实现上传大文件的方法分析【图片、文本文件】
Mar 14 Javascript
微信小程序人脸识别功能代码实例
May 07 Javascript
基于aotu.js实现微信自动添加通讯录中的联系人功能
May 28 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中的类型约束介绍
2015/05/11 PHP
php一个解析字符串排列数组的方法
2015/05/12 PHP
thinkphp下MySQL数据库读写分离代码剖析
2017/04/18 PHP
PHP设计模式之建造者模式(Builder)原理与用法案例详解
2019/12/12 PHP
Jquery 学习笔记(一)
2009/10/13 Javascript
js 数值项目的格式化函数代码
2010/05/14 Javascript
正则表达式中特殊符号及正则表达式的几种方法总结(replace,test,search)
2013/11/26 Javascript
js弹窗返回值详解(window.open方式)
2014/01/11 Javascript
JavaScript html5 canvas画布中删除一个块区域的方法
2016/01/26 Javascript
Node.js实用代码段之获取Buffer对象字节长度
2016/03/17 Javascript
限制只能输入数字的实现代码
2016/05/16 Javascript
hovertree插件实现二级树形菜单(简单实用)
2016/12/28 Javascript
微信小程序使用radio显示单选项功能【附源码下载】
2017/12/11 Javascript
React降级配置及Ant Design配置详解
2018/12/27 Javascript
详解用场景去理解函数柯里化(入门篇)
2019/04/11 Javascript
layer弹出框确定前验证:弹出消息框的方法(弹出两个layer)
2019/09/21 Javascript
JavaScript使用canvas绘制随机验证码
2020/02/17 Javascript
python随机生成指定长度密码的方法
2015/04/04 Python
python机器人行走步数问题的解决
2018/01/29 Python
python学生管理系统代码实现
2020/04/05 Python
Python实现定时精度可调节的定时器
2018/04/15 Python
python绘制立方体的方法
2018/07/02 Python
Django框架ORM数据库操作实例详解
2019/11/07 Python
Python模块 _winreg操作注册表
2020/02/05 Python
浅谈Python里面None True False之间的区别
2020/07/09 Python
python处理写入数据代码讲解
2020/10/22 Python
CSS3 优势以及网页设计师如何使用CSS3技术
2009/07/29 HTML / CSS
CSS3实现缺角矩形,折角矩形以及缺角边框
2019/12/20 HTML / CSS
canvas 下载二维码和图片加水印的方法
2018/03/21 HTML / CSS
HTML5给汉字加拼音收起展开组件的实现代码
2020/04/08 HTML / CSS
安全标兵事迹材料
2014/08/17 职场文书
毕业生自荐材料范文
2014/12/30 职场文书
2015入党自传格式范文
2015/06/26 职场文书
学雷锋感言
2015/08/03 职场文书
2016年党支部公开承诺书
2016/03/25 职场文书
MongoDB连接数据库并创建数据等使用方法
2021/11/27 MongoDB