非jQuery實(shí)現(xiàn)照片散落桌子上,單擊放大的LightBox效果
效果圖如下


Demo地址http://xueduany.github.io/KitJs/KitJs/demo/Lightbox-Gallery/demo.html
實(shí)現(xiàn)原理很簡(jiǎn)單,基本的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”
然后按照順序,排列一豎列相冊(cè),div class=”item”,里面用一個(gè)a鏈接把圖片包起來(lái)
接下來(lái),我們要實(shí)現(xiàn)相片的分散效果,
$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,設(shè)置為絕對(duì)定位,用桌布高寬,生成隨機(jī)數(shù),排列,對(duì)于css3,使用css3特有的旋轉(zhuǎn)效果'rotate屬性,旋轉(zhuǎn)一定角度
這個(gè)時(shí)候,相片就開始分散開了,達(dá)到了圖1的效果,接下來(lái)我們要做一下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();
});
});
完整代碼如上,對(duì)于每個(gè)圖片的a鏈接,使用kitjs的lightbox UI widget實(shí)例化,得到的效果就能點(diǎn)擊,動(dòng)畫效果的打開圖片大圖了。^_^祝各位使用愉快!
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框架來(lái)實(shí)現(xiàn)的,小伙伴們?nèi)绻皇呛芰私?,那么后續(xù)文章,我們來(lái)詳細(xì)介紹下這款非常棒的js框架。
- jquery 單擊li防止重復(fù)加載的實(shí)現(xiàn)代碼
- 使用JQuery和CSS模擬超鏈接的用戶單擊事件的實(shí)現(xiàn)代碼
- Jquery為單選框checkbox綁定單擊click事件
- jQuery 全選/反選以及單擊行改變背景色實(shí)例
- jquery禁用右鍵單擊功能屏蔽F5刷新
- jQuery實(shí)現(xiàn)單擊按鈕遮罩彈出對(duì)話框(仿天貓的刪除對(duì)話框)
- jQuery+ajax實(shí)現(xiàn)鼠標(biāo)單擊修改內(nèi)容的方法
- jQuery+ajax實(shí)現(xiàn)鼠標(biāo)單擊修改內(nèi)容的思路
- 一款基jquery超炫的動(dòng)畫導(dǎo)航菜單可響應(yīng)單擊事件
- jQuery實(shí)現(xiàn)多按鈕單擊變色
- jQuery實(shí)現(xiàn)單擊和鼠標(biāo)感應(yīng)事件
相關(guān)文章
JavaScript動(dòng)態(tài)修改彈出窗口大小的方法
這篇文章主要介紹了JavaScript動(dòng)態(tài)修改彈出窗口大小的方法,涉及javascript中window.open方法的使用技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-04-04
JavaScript初學(xué)者容易犯的幾個(gè)錯(cuò)誤
JavaScript 是對(duì)初學(xué)者比較友好的一門編程語(yǔ)言,基本上花個(gè)半小時(shí)看下語(yǔ)法就能寫出能運(yùn)行的代碼。JavaScript 是動(dòng)態(tài)腳本語(yǔ)言,對(duì)數(shù)據(jù)類型沒有太多的限制,寫起來(lái)非常靈活。但正因?yàn)槿绱?,初學(xué)者如果不深入了解語(yǔ)言本身,往往會(huì)犯一些錯(cuò)誤,從而導(dǎo)致一些很難發(fā)現(xiàn)的 bug。2021-05-05
js實(shí)現(xiàn)最短的XML格式化工具實(shí)例
這篇文章主要介紹了js實(shí)現(xiàn)最短的XML格式化工具,實(shí)例分析了基于jquery-latest.js實(shí)現(xiàn)XML代碼格式化的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-03-03
JavaScript實(shí)現(xiàn)表單驗(yàn)證案例
這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)表單驗(yàn)證案例,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-08-08
js實(shí)現(xiàn)多個(gè)倒計(jì)時(shí)并行 js拼團(tuán)倒計(jì)時(shí)
這篇文章主要為大家詳細(xì)介紹了js實(shí)現(xiàn)多個(gè)倒計(jì)時(shí)并行功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-02-02
淺談?lì)愃朴?function(){}).call()的js語(yǔ)句
這篇文章主要介紹了淺談?lì)愃朴?function(){}).call()的js語(yǔ)句,的相關(guān)資料,需要的朋友可以參考下2015-03-03
使用javascript實(shí)現(xiàn)有效時(shí)間的控制,并顯示將要過(guò)期的時(shí)間
本篇文章主要介紹了使用javascript實(shí)現(xiàn)有效時(shí)間的控制,并顯示將要過(guò)期的時(shí)間示例代碼。需要的朋友可以過(guò)來(lái)參考下,希望對(duì)大家有所幫助2014-01-01
js實(shí)現(xiàn)可拖動(dòng)DIV的方法
這篇文章主要介紹了js實(shí)現(xiàn)可拖動(dòng)DIV的方法,有需要的朋友可以參考一下2013-12-12
小程序使用watch監(jiān)聽數(shù)據(jù)變化的方法詳解
這篇文章主要介紹了小程序使用watch監(jiān)聽數(shù)據(jù)變化的方法詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-09-09
location.hash保存頁(yè)面狀態(tài)的技巧
hash 屬性是一個(gè)可讀可寫的字符串,該字符串是 URL 的錨部分(從 # 號(hào)開始的部分)。接下來(lái)通過(guò)本文給大家介紹location.hash保存頁(yè)面狀態(tài)的相關(guān)內(nèi)容,感興趣的朋友一起學(xué)習(xí)吧2016-04-04

