非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 相关文章推荐
翻译整理的jQuery使用查询手册
Mar 07 Javascript
javascript数组的扩展实现代码集合
Jun 01 Javascript
jQuery UI的Dialog无法提交问题的解决方法
Jan 11 Javascript
自定义右键属性覆盖浏览器默认右键行为实现代码
Feb 02 Javascript
JavaScript 获取任一float型小数点后两位的小数
Jun 30 Javascript
jQuery 实现侧边浮动导航菜单效果
Dec 26 Javascript
深入浅析Node.js 事件循环
Dec 20 Javascript
AngularJS模块详解及示例代码
Aug 17 Javascript
Javascript中call,apply,bind方法的详解与总结
Dec 12 Javascript
微信小程序 textarea 组件详解及简单实例
Jan 10 Javascript
详解javascript常用工具类的封装
Jan 30 Javascript
JavaScript实现移动端带transition动画的轮播效果
Mar 24 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
laravel解决迁移文件一次删除创建字段报错的问题
2019/10/24 PHP
php 使用expat方式解析xml文件操作示例
2019/11/26 PHP
PHP单元测试配置与使用方法详解
2019/12/27 PHP
JS实现鼠标箭头变成一个燃烧烛光效果的方法
2015/02/28 Javascript
input file上传 图片预览功能实例代码
2016/10/25 Javascript
使用纯JS代码判断字符串中有多少汉字的实现方法(超简单实用)
2016/11/12 Javascript
JS实现页面跳转参数不丢失的方法
2016/11/28 Javascript
javascript工厂模式和构造函数模式创建对象方法解析
2016/12/30 Javascript
基于JavaScript实现窗口拖动效果
2017/01/18 Javascript
使用Require.js封装原生js轮播图的实现代码
2017/06/15 Javascript
Three.js入门之hello world以及如何绘制线
2017/09/25 Javascript
js断点调试心得分享(必看篇)
2017/12/08 Javascript
仿京东快报向上滚动的实例
2017/12/13 Javascript
AngularJS实现的根据数量与单价计算总价功能示例
2017/12/26 Javascript
用vuex写了一个购物车H5页面的示例代码
2018/12/04 Javascript
深入浅析ng-bootstrap 组件集中 tabset 组件的实现分析
2019/07/19 Javascript
简单了解vue 插值表达式Mustache
2020/07/22 Javascript
maptalks+three.js+vue webpack实现二维地图上贴三维模型操作
2020/08/10 Javascript
[02:41]DOTA2英雄基础教程 亚巴顿
2014/01/02 DOTA
[01:08:33]OG vs VGJ.T 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
[01:00:14]DOTA2官方TI8总决赛纪录片 真视界True Sight
2019/01/16 DOTA
Python 实现 贪吃蛇大作战 代码分享
2016/09/07 Python
200 行python 代码实现 2048 游戏
2018/01/12 Python
使用Python进行QQ批量登录的实例代码
2018/06/11 Python
Django框架模板用法入门教程
2019/11/04 Python
Tensorflow的梯度异步更新示例
2020/01/23 Python
Python3爬虫发送请求的知识点实例
2020/07/30 Python
python判断一个变量是否已经设置的方法
2020/08/13 Python
OPPO手机官方商城:中国手机市场出货量第一品牌
2017/10/18 全球购物
英国最大的体育&时尚零售公司:JD Sports
2017/12/13 全球购物
分层教学实施方案
2014/03/19 职场文书
房屋鉴定委托书范本
2014/09/23 职场文书
篮球赛闭幕式主持词
2015/07/03 职场文书
网吧温馨提示
2015/07/17 职场文书
关于html选择框创建占位符的问题
2021/06/09 HTML / CSS
Oracle中DBLink的详细介绍
2022/04/29 Oracle