javascript實例分享---具有立體效果的圖片特效
此實例是我一遍學(xué)習(xí)一邊寫出來的,希望能夠幫到大家,一起學(xué)習(xí)。效果如圖所示:
html代碼如下所示:
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>圖片瀏覽工具制作</title>
<script type="text/javascript" src="js/main.js"></script>
<link rel="stylesheet" type="text/css" href = "style/css.css">
</head>
<body>
<div id="pic_browser">
<img class="prev" src="images/prev.png" onclick="javascript:jzk.ui.moveImg(-1);"/>
<img id="img1" onclick=""/>
<div class="mask3" onclick="javascript:jzk.ui.moveImg(3);"></div><!-- 增加三級遮罩 -->
<img id="img2" onclick=""/>
<div class="mask2" onclick="javascript:jzk.ui.moveImg(2);"></div><!-- 增加二級遮罩 -->
<img id="img3" onclick=""/>
<div class="mask1" onclick="javascript:jzk.ui.moveImg(1);"></div><!-- 增加一級遮罩 -->
<img id="img4" onclick=""/>
<img id="img5" onclick=""/>
<div class="mask5" onclick="javascript:jzk.ui.moveImg(-1);"></div><!-- 和mask1一樣效果 -->
<img id="img6" onclick=""/>
<div class="mask6" onclick="javascript:jzk.ui.moveImg(-2);"></div><!-- 和mask2一樣效果 -->
<img id="img7" onclick=""/>
<div class="mask7" onclick="javascript:jzk.ui.moveImg(-3);"></div><!-- 和mask3一樣效果 -->
<img class="next" src="images/next.png" onclick="javascript:jzk.ui.moveImg(1);"/>
</div>
</body>
</html>
css代碼如下:
此處的mask1、2、3.....是覆蓋幾張照片的一個div,用opacity屬性來定義透明度,可以實現(xiàn)一種朦朧感,讓外觀更加美麗。
body {width: 1340px;height: 500px;background: url(../images/body_bg.gif) no-repeat;}
#pic_browser {width: 860px;height: 192px; position: relative;margin:130px 106px;}
#pic_browser img{position: absolute;border: none;}
.prev {top:76px;left: 0px; }
#img1, .mask3 {width: 106px;height: 70px;left: 45px;top: 61px;z-index: 4;}
#img2, .mask2 {width: 166px;height: 110px;left: 95px;top:41px;z-index: 5;}
#img3, .mask1 {width: 226px;height: 150px;left: 175px;top: 21px;z-index: 6;}
#img4 {width: 290px;height: 192px;left: 285px;top: 0px;z-index: 7;}
#img5, .mask5 {width: 226px;height: 150px;right: 175px;top: 21px;z-index: 6;}
#img6, .mask6 {width: 166px;height: 110px;right: 95px;top:41px;z-index: 5;}
#img7, .mask7 {width: 106px;height: 70px;right: 45px;top: 61px;z-index: 4;}
.next {top:76px;right: 0px;}
.mask1, .mask2, .mask3, .mask5, .mask6, .mask7 {background: #fff;position: absolute;}
.mask1, .mask5 {opacity: 0.3;}
.mask2, .mask6 {opacity: 0.5;}
.mask3, .mask7 {opacity: 0.7;}
js代碼如下:
window.onload = function()
{
jzk.app.initImg();
}
var imgArray = new Array();
imgArray[0] = 'images/1.jpg';
imgArray[1] = 'images/2.jpg';
imgArray[2] = 'images/3.jpg';
imgArray[3] = 'images/4.jpg';
imgArray[4] = 'images/5.jpg';
imgArray[5] = 'images/6.jpg';
imgArray[6] = 'images/7.jpg';
var base=0;
var jzk = {}; /*定義命名空間*/
jzk.tools = {};/*分層第一層*/
jzk.ui = {};/*分層第二層*/
jzk.ui.moveImg = function(offset)
{
base= (base-offset);
for(var i = base;i< base +7;i++)/*定義i為數(shù)組下標(biāo)的變量*/
{
var img = document.getElementById('img'+(i-base+1));/*保證img變量為img1、img2、img3...直到img7這7個img元素*/
if(i<0) /*數(shù)組下標(biāo)i<0,說明offset>0,*/
{
img.src =imgArray[imgArray.length+i];
}
else if(i>imgArray.length-1)
{
img.src =imgArray[i-imgArray.length];
}
else
{
img.src = imgArray[i];
}
}
}
jzk.app = {}; /*分層第三層*/
jzk.app.initImg = function()/*初始化顯示圖片,也就是調(diào)用函數(shù)moveImg過程:參數(shù)為7,base等于-7,i等于-7,-6,-5,-4,-3,-2,-1這7個值,對應(yīng)的元素為img1,img2,...img7,所以有:img1=imgArray[-7+7],img2=imgArray[-6+7]....*/
{
jzk.ui.moveImg(7);/*初始參數(shù)應(yīng)該設(shè)為:能顯示的張數(shù)(此處為7);*/
}
三個文件,屬js代碼比較難理解,上面我也給出了詳細(xì)的注釋,如果還有誰看了不懂的,可以在下面評論中討論。
相關(guān)文章
小程序自定義tabbar導(dǎo)航欄及動態(tài)控制tabbar功能實現(xiàn)方法(uniapp)
在項目中遇到一個需求,根據(jù)不同的賬號,生成不同的tabBar,下面這篇文章主要給大家介紹了關(guān)于小程序自定義tabbar導(dǎo)航欄及動態(tài)控制tabbar功能實現(xiàn)方法(uniapp)的相關(guān)資料,需要的朋友可以參考下2022-12-12javascript用defineProperty實現(xiàn)簡單的雙向綁定方法
這篇文章主要介紹了javascript用defineProperty實現(xiàn)簡單的雙向綁定方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-04-04淺談javascript中的Function和Arguments
下面小編就為大家?guī)硪黄獪\談javascript中的Function和Arguments。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-08-08解決layui前端框架 form表單,table表等內(nèi)置控件不顯示的問題
今天小編就為大家分享一篇解決layui前端框架 form表單,table表等內(nèi)置控件不顯示的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-08-08js動態(tài)設(shè)置select下拉菜單的默認(rèn)選中項實例
今天小編就為大家分享一篇js動態(tài)設(shè)置select下拉菜單的默認(rèn)選中項實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-08-08關(guān)于JavaScript中forEach和each用法淺析
這篇文章主要給大家介紹了關(guān)于JavaScript中forEach和each使用方法的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家具有一定的參考學(xué)習(xí)價值,需要的朋友們下面跟著小編一起來學(xué)習(xí)學(xué)習(xí)吧。2017-07-07uniapp實現(xiàn)全局變量的幾種方式總結(jié)
這里說全局變量,著重指的是能夠全局動態(tài)響應(yīng)的情況,下面這篇文章主要給大家介紹了關(guān)于uniapp實現(xiàn)全局變量的幾種方式,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-10-10