非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 相关文章推荐
JavaScript中常用的运算符小结
Jan 18 Javascript
Mac/Windows下如何安装Node.js
Nov 22 Javascript
javaScript如何处理从java后台返回的list
Apr 24 Javascript
window resize和scroll事件的基本优化思路
Apr 29 Javascript
jquery调取json数据实现省市级联的方法
Jan 29 Javascript
jquery 抽奖小程序实现代码
Oct 12 Javascript
基于LayUI分页和LayUI laypage分页的使用示例
Aug 02 Javascript
详解vue mixins和extends的巧妙用法
Dec 20 Javascript
Vue组件之自定义事件的功能图解
Feb 01 Javascript
写gulp遇到的ES6问题详解
Dec 03 Javascript
vue集成chart.js的实现方法
Aug 20 Javascript
利用JS代码自动删除稿件的普通弹幕功能
Sep 20 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 身份验证方面的函数
2009/10/11 PHP
网页上facebook分享功能具体实现
2014/01/26 PHP
PHP 验证身份证是否合法的函数
2017/02/09 PHP
JS类的封装及实现代码
2009/12/02 Javascript
jquery 操作表格实现代码(多种操作打包)
2011/03/20 Javascript
IE的事件传递-event.cancelBubble示例介绍
2014/01/12 Javascript
浅析Node.js查找字符串功能
2014/09/03 Javascript
jquery动态增加删减表格行特效
2015/11/20 Javascript
理解Angular数据双向绑定
2016/01/10 Javascript
原生javascript实现addClass,removeClass,hasClass函数
2016/02/25 Javascript
JS实现图文并茂的tab选项卡效果示例【附demo源码下载】
2016/09/21 Javascript
JavaScript获取ul中li个数的方法
2017/02/13 Javascript
vue组件父子间通信之综合练习(聊天室)
2017/11/07 Javascript
javascript字体颜色控件的开发 JS实现字体控制
2017/11/27 Javascript
Vue手把手教你撸一个 beforeEnter 钩子函数
2018/04/24 Javascript
jQuery插件实现非常实用的tab栏切换功能【案例】
2019/02/18 jQuery
Vue computed 计算属性代码实例
2020/04/22 Javascript
[01:55]《走出家门看比赛》——DOTA2 2015国际邀请赛同城线下观战
2015/07/18 DOTA
python实现每次处理一个字符的三种方法
2014/10/09 Python
Python中List.count()方法的使用教程
2015/05/20 Python
Python实现将文本生成二维码的方法示例
2017/07/18 Python
Python3.5 创建文件的简单实例
2018/04/26 Python
python实现Virginia无密钥解密
2019/03/20 Python
Python中函数的基本定义与调用及内置函数详解
2019/05/13 Python
我们为什么要减少Python中循环的使用
2019/07/10 Python
pandas DataFrame 警告(SettingWithCopyWarning)的解决
2019/07/23 Python
Python 定义只读属性的实现方式
2020/03/05 Python
PyCharm 2020.2 安装详细教程
2020/09/25 Python
python 监控logcat关键字功能
2020/09/04 Python
HTML5混合开发二维码扫描以及调用本地摄像头
2017/12/27 HTML / CSS
设计模式的基本要素是什么
2014/04/21 面试题
店长职务说明书
2014/02/04 职场文书
《明天,我们毕业》教学反思
2014/04/24 职场文书
教师工作能力自我评价
2015/03/04 职场文书
学校学习型党组织建设心得体会
2019/06/21 职场文书
Python深度学习之Pytorch初步使用
2021/05/20 Python