原生js實(shí)現(xiàn)圖片層疊輪播切換效果
本文實(shí)例介紹了js焦點(diǎn)圖片層疊輪播切換滾動(dòng)效果,分享給大家供大家參考,具體內(nèi)容如下
效果圖:

功能描述:
- 自定義圖片尺寸;
- 每隔一段時(shí)間自動(dòng)滾動(dòng)圖片;
- 每次動(dòng)畫(huà)執(zhí)行的時(shí)候改變圖片的位置,寬高以及其它屬性也要跟隨著變化;
- 鼠標(biāo)移上圖片,顯示當(dāng)前圖片的詳細(xì)信息;
- 點(diǎn)擊按鈕向前向后滾動(dòng);
詳細(xì)代碼:
html代碼:
<!DOCTYPE html>
<!-- saved from url=(0062)http://x1.xiuimg.com/style/xiu/woxiu/v1/tpl/topic/xiuxuan.html -->
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title></title>
<style type="text/css">
*{margin:0px; padding:0px;font-family:"Microsoft YaHei"}
ol,ul{list-style:none;}
cite,em,i{font-style:normal}
* html .clearfix { height: 1%; }
.clearfix { display: block; }
.myclearfix:after { clear:both; visibility:hidden;}
.myclearfix { display: block; _display:inline-block; overflow:hidden;}
#largerImages{position:relative;width:1000px;margin:0 auto;height:520px;overflow:hidden;}
#largerImages li{box-shadow:1px 1px 12px rgba(200, 200, 200, 1);width:368px;height:368px; position:absolute;top:10px;overflow:hidden;color:#fff;}
#largerImages li .cover{background-color:#333;opacity:0.5;filter: progid:DXImageTransform.Microsoft.Alpha(opacity=50);height:100%;width:100%;display:block;position:absolute;top:0px;}
#largerImages img{border:0px;width:100%;height:100%;}
#largerImages .previous{left:13%;}
#largerImages .next{left:53%;}
#largerImages .previous,#largerImages .next{cursor:pointer; position:absolute;z-index:100; top:25%;height:60px;line-height:60px;width:30px;color:#fff;text-align:center;}
#largerImages .previous span,#largerImages .next span{position:absolute;top:0px;left:0px;height:100%;width:100%;display:block;background-color:#000;opacity:0.4;filter: progid:DXImageTransform.Microsoft.Alpha(opacity=40);}
#largerImages .previous em,#largerImages .next em{height:100%;width:100%;display:block;position:absolute;top:0px;left:0px;font-size:26px; font-family: "宋體";}
#largerImages li span,#largerImages li em{position:absolute;left:0px;width:100%;height:30px;line-height:30px; bottom:0px;text-align:center;display:block;color:#fff;}
#largerImages li span{background-color:#000;opacity:0.5;filter: progid:DXImageTransform.Microsoft.Alpha(opacity=50);font-size:12px;}
</style>
</head>
<body>
<ul id = "largerImages">
<p class="previous"><span> </span><em><</em></p>
<p class="next"><span> </span><em>></em></p>
<li><i class="cover"> </i>
<a href="#"><img src="http://xiu.xiuimg.com/upload/xiu/9/90/qq-srntbvlhcw_b_56.com_160106133546.jpg"></a>
<p class="tab_name"><span> </span><em>主播昵稱(chēng)</em></p>
</li>
<li><i class="cover"> </i>
<a href="#"><img src="http://xiu.xiuimg.com/upload/xiu/96/58/dc15170219625_b_56.com_151201150445.jpg"></a>
<p class="tab_name"><span> </span><em>主播昵稱(chēng)</em></p>
</li>
<li><i class="cover"> </i>
<a href="#"><img src="http://xiu.xiuimg.com/upload/xiu/9/90/qq-srntbvlhcw_b_56.com_160106133546.jpg"></a>
<p class="tab_name"><span> </span><em>主播昵稱(chēng)</em></p>
</li>
<li><i class="cover"> </i>
<a href="#"><img src="http://xiu.xiuimg.com/upload/xiu/96/58/dc15170219625_b_56.com_151201150445.jpg"></a>
<p class="tab_name"><span> </span><em>主播昵稱(chēng)</em></p>
</li>
<li><i class="cover"> </i>
<a href="#"><img src="http://xiu.xiuimg.com/upload/xiu/9/90/qq-srntbvlhcw_b_56.com_160106133546.jpg"></a>
<p class="tab_name"><span> </span><em>主播昵稱(chēng)</em></p>
</li>
</ul>
<script type="text/javascript" src="../../lib/seajs/sea.js"></script>
<script type="text/javascript" src="../../lib/base/1.0.x/base.js"></script>
<script type="text/javascript">
seajs.use(['lib/jquery/1.11.x/index.js','_example/rotateBox/index.js'],function($,carousel) {
carousel.init({
wapper: $('#largerImages'),
//所有圖片以此來(lái)按比例定義寬高
imgWidth: 450,
imgHeight: 300,
spacing: {
left: 60, //每張圖片左邊距離相差多少
top: 30, //每張圖片頂部距離相差多少
width: 60, //每張圖片寬度相差多少
height: 60 //每張圖片高度相差多少
}
});
});
</script>
</body>
</html>
js 代碼:
define(function(require, exports, module) {
'use strict';
var $ = require('lib/jquery/1.11.x/index.js');
var carousel = {
_initData:false, //判斷動(dòng)畫(huà)是否執(zhí)行完畢
init: function(options) {
var t = this;
t._wapper = options.wapper;
t._grids = t._wapper.find('li');
t._gridsWidth = options.imgWidth;
t._gridsHeight = options.imgHeight;
t._spacing = options.spacing;
//取居中圖片
t._middle = t._grids.length % 2 == 0 ? t._grids.length / 2 : parseInt(t._grids.length / 2);
//存放各圖片參數(shù)
t._arr = {
left: [],
top: [],
zIndex: [],
width: [],
height: []
}
if ( !t._initData ) {
var interval;
interval = setInterval(function(){
$('.previous').click();
},10000);
}
t._largerImages();
t._reposition();
t._mouseEnter(t._grids) //鼠標(biāo)移動(dòng)上去顯示主播昵稱(chēng)
},
//初始化定位:
_largerImages: function() {
var t = this;
var front = t._middle;
var avtive = t._middle;
var last = t._grids.length;
t._grids.each( function(i, img) {
if (i == t._middle) {
t._grids.eq(i).css({
zIndex: 99,
top: 0,
left: t._spacing.left * i,
height: t._gridsHeight,
width: t._gridsWidth
});
} else if ( i < t._middle ) {
t._grids.eq(i).css({
zIndex: i,
top: t._spacing.top * front,
left: t._spacing.left * i,
height: t._gridsHeight - t._spacing.height * front,
width: t._gridsWidth - t._spacing.width * front
});
front--;
} else {
last --;
t._grids.eq(last).css({
zIndex: i,
top: t._spacing.top * avtive,
left: t._spacing.left * last + t._spacing.width * avtive,
height: t._gridsHeight - t._spacing.height * avtive,
width: t._gridsWidth - t._spacing.width * avtive
});
avtive --;
};
});
},
//翻頁(yè)動(dòng)畫(huà)
_reposition: function() {
var t = this;
//把各屬性值傳到數(shù)組里面
t._grids.each( function(i,img) {
t._arr.left.push(t._grids.eq(i).position().left);
t._arr.top.push(t._grids.eq(i).position().top);
t._arr.width.push(t._grids.eq(i).width());
t._arr.height.push(t._grids.eq(i).height());
t._arr.zIndex.push(t._grids.eq(i).css('z-index'));
});
//向前翻頁(yè)
$('.previous').bind('click',function() {
if ( !t._initData && t._arr.left.length != 0) {
t._initData = true;
//重新獲取選擇器
var grids = t._wapper.find('li');
for (var i = 1; i < grids.length ; i ++) {
grids.eq(i).animate({
zIndex: t._arr.zIndex[i - 1],
left: t._arr.left[i - 1],
top: t._arr.top[i - 1],
width: t._arr.width[i - 1],
height: t._arr.height[i - 1],
},200,
function() {
t._initData = false;
grids.find('i').addClass('cover');
grids.eq(t._middle + 1).find('i').removeClass('cover');
});
};
grids.eq(0).animate({
left: t._arr.left[ grids.length - 1],
top: t._arr.top[ grids.length - 1],
width: t._arr.width[ grids.length - 1],
height: t._arr.height[ grids.length - 1],
zIndex: t._arr.zIndex[ grids.length - 1]
},200,
function(){
$(this).appendTo(t._wapper);
});
}
});
//向后翻頁(yè)
$('.next').bind('click',function() {
if ( !t._initData && t._arr.left.length != 0) {
t._initData = true;
//重新獲取選擇器
var grids = t._wapper.find('li');
for (var i = 0; i < grids.length - 1; i ++) {
grids.eq(i).animate({
left: t._arr.left[i + 1],
top: t._arr.top[i + 1],
width: t._arr.width[i + 1],
height: t._arr.height[i + 1],
zIndex: t._arr.zIndex[i + 1]
},200,function() {
t._initData = false;
});
};
grids.eq(grids.length - 1).animate({
left: t._arr.left[0],
top: t._arr.top[0],
width: t._arr.width[0],
height: t._arr.height[0],
zIndex: t._arr.zIndex[0]
},200,
function(){
$(this).prependTo(t._wapper);
grids.find('i').addClass('cover');
grids.eq(t._middle - 1).find('i').removeClass('cover');
});
}
});
},
//鼠標(biāo)進(jìn)入圖片效果
_mouseEnter: function(grids) {
grids.each(function(i){
$(this).mouseenter(function() {
$(this).find('.tab_name').animate({
bottom:0,opacity: 'show'
},200);
});
$(this).mouseleave(function() {
$(this).find('.tab_name').animate({
bottom:-50,opacity: 'hide'
},200);
});
});
},
};
return carousel;
});
精彩專(zhuān)題分享:jQuery圖片輪播 JavaScript圖片輪播 Bootstrap圖片輪播
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助。
- js實(shí)現(xiàn)支持手機(jī)滑動(dòng)切換的輪播圖片效果實(shí)例
- js圖片輪播手動(dòng)切換效果
- vue.js+elementUI實(shí)現(xiàn)點(diǎn)擊左右箭頭切換頭像功能(類(lèi)似輪播圖效果)
- javascript實(shí)現(xiàn)圖片自動(dòng)和可控的輪播切換特效
- Bootstrap 最常用的JS插件系列總結(jié)(圖片輪播、標(biāo)簽切換等)
- js實(shí)現(xiàn)圖片輪播切換效果
- js實(shí)現(xiàn)點(diǎn)擊切換和自動(dòng)播放的輪播圖
- js實(shí)現(xiàn)輪播圖自動(dòng)切換
- JS實(shí)現(xiàn)多重選項(xiàng)卡切換輪播圖
- 原生javascript實(shí)現(xiàn)圖片輪播切換效果
相關(guān)文章
javascript獲取下拉列表框當(dāng)中的文本值示例代碼
需要將用戶(hù)點(diǎn)擊下拉列表當(dāng)中某個(gè)選項(xiàng)后,將其所選的內(nèi)容保存起來(lái),下面與大家分享下如何使用js獲取下拉列表框文本值,由此需求的朋友可以參考下2013-07-07
TypeScript中正確使用interface和type的方法實(shí)例
在ts中定義類(lèi)型由兩種方式:接口(interface)和類(lèi)型別名(type alias),interface只能定義對(duì)象類(lèi)型,下面這篇文章主要給大家介紹了關(guān)于TypeScript中正確使用interface和type的相關(guān)資料,需要的朋友可以參考下2021-09-09
如何在javascript 中使用 xmlHttpRequest 發(fā)送 POST
本文將通過(guò)不同的示例解釋如何使用JavaScript代碼在AJAX編程中發(fā)送 XMLHttpRequest post 請(qǐng)求,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2023-07-07
JS庫(kù) Highlightjs 添加代碼行號(hào)的實(shí)現(xiàn)代碼
Highlightjs是一款優(yōu)秀的代碼高亮Js組件,可以很方便地對(duì)各種語(yǔ)言編寫(xiě)的代碼添加語(yǔ)法高亮樣式。本文重點(diǎn)給大家介紹Highlightjs 添加代碼行號(hào)的實(shí)現(xiàn)代碼,需要的朋友參考下吧2017-09-09

