js實(shí)現(xiàn)多圖左右切換功能
本文實(shí)例為大家分享了js多圖左右切換功能,供大家參考,具體內(nèi)容如下
效果圖:

<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title></title>
<link rel="stylesheet" />
<!--頁(yè)面初始化CSS和頁(yè)面公用頭部的css-->
<style type="text/css">
@charset "utf-8";
html,
body {
background-color: #f6f5f5;
}
.vg-body {
width: 1390px;
margin: 0 auto;
}
/*任務(wù)成長(zhǎng)值*/
.vg_title {
font-size: 24px;
line-height: 24px;
padding: 20px 0;
color: #464646;
}
.vg_task {
background-color: #fff;
position: relative;
}
.vg_task .arrowbtn-left,
.vg_task .arrowbtn-right {
position: absolute;
top: 70px;
width: 16px;
height: 20px;
cursor: pointer;
}
.vg_task .arrowbtn-left {
left: 40px;
border: 1px solid red;
background: url(../images/arrow-left.png) no-repeat;
;
}
.vg_task .arrowbtn-right {
right: 40px;border: 1px solid red;
background: url(../images/arrow-right.png) no-repeat;
;
}
.vg_tasklist {
width: 1200px;
overflow: hidden;
margin: 0 auto;
}
.vg_tasklist ul {
width: 999%;
}
.vg_tasklist li {
width: 258px;
height: 130px;
float: left;
border: 1px solid #c8c8c8;
margin: 15px 53px 15px 0;
position: relative;
}
.vg_tasklist li .task_hover {
position: absolute;
left: -1px;
top: -1px;
width: 212px;
padding: 20px 25px 20px 23px;
height: 90px;
border-bottom: 2px solid #e65a5a;
overflow: hidden;
background-color: #f0f0f0;
display: none;
}
.vg_tasklist li:hover .task_hover {
display: block;
}
.task_hover .task_desc {
font-size: 16px;
line-height: 20px;
color: #646464;
}
.task_hover .task_limittimes {
font-size: 14px;
color: #787878;
float: left;
padding-top: 12px;
}
.vg_tasklist li img {
float: left;
margin: 22px 8px 20px 20px;
}
.vg_tasklist li .rightinfo {
width: 136px;
float: left;
text-align: center;
}
.rightinfo h3 {
font-size: 16px;
color: #646464;
padding-top: 15px;
}
.rightinfo p {
font-size: 14px;
line-height: 26px;
color: #787878;
}
.rightinfo a,
.task_hover a {
display: block;
text-align: center;
width: 96px;
height: 30px;
line-height: 30px;
border: 2px solid #e65a5a;
border-radius: 5px;
font-size: 16px;
font-weight: 700;
color: #e65a5a;
}
.task_hover a.done,
.task_hover a.done:hover {
background-color: #b4b4b4;
color: #fff;
border-color: #b4b4b4;
cursor: default;
}
.rightinfo a {
margin: 12px auto 0;
}
.task_hover a {
float: right;
margin-top: 18px;
margin-right: -4px;
}
.task_hover a:hover {
text-decoration: none;
background-color: #e65a5a;
color: #fff;
}
/*grid-1230*/
.grid-1230 .vg-body {
width: 1210px;
}
.grid-1230 .vg_tasklist {
width: 1090px;
}
.grid-1230 .vg_tasklist li {
margin-right: 16px;
}
.grid-1230 .vg_task .arrowbtn-left {
left: 33px;
}
.grid-1230 .vg_task .arrowbtn-right {
right: 33px;
}
.grid-1230 .vg_growth_table {
padding: 24px 30px;
}
.grid-1010 .vg-body {
width: 990px;
}
.grid-1010 .vg_tasklist {
width: 850px;
}
.grid-1010 .vg_tasklist li {
margin-right: 35px;
}
.grid-1010 .vg_task .arrowbtn-left {
left: 30px;
}
.grid-1010 .vg_task .arrowbtn-right {
right: 30px;
}
.grid-1010 .vg_growth_table {
padding: 24px;
}
</style>
<!--新增樣式的css,名稱(chēng)可根據(jù)具體需求修改-->
<script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
<script>
window.onresize = function() {
var winWidth = document.body.clientWidth;
if(winWidth <= 1230) {
body.className = "grid-1010";
} else if(winWidth <= 1410) {
body.className = "grid-1230";
} else if(winWidth > 1410) {
body.className = "grid-1410";
} else {
alert("do not know!");
}
}
</script>
</head>
<body id="body">
<script>
//初始化狀態(tài)顯示樣式判斷,放在body后面
var winWidth = document.body.clientWidth;
if(winWidth <= 1230) {
body.className = "grid-1010";
} else if(winWidth <= 1410) {
body.className = "grid-1230";
} else if(winWidth > 1410) {
body.className = "grid-1410";
} else {
alert("do not know!");
}
</script>
<div class="vg-body">
<!--任務(wù)成長(zhǎng)值 開(kāi)始-->
<div class="vg_title">
<p>任務(wù)成長(zhǎng)值</p>
</div>
<div class="vg_task">
<div class="arrowbtn-left"></div>
<div class="arrowbtn-right"></div>
<div class="vg_tasklist">
<ul class="cf" id="switchPic">
<li>
<img src="images/task_year.png">
<div class="rightinfo">
<h3>開(kāi)通年費(fèi)會(huì)員</h3>
<p>獎(jiǎng)勵(lì)成長(zhǎng)值<span>200</span>點(diǎn)</p>
<a href="javascript:;">已完成></a>
</div>
<div class="task_hover">
<p class="task_desc">一次性開(kāi)通年費(fèi)會(huì)員(12個(gè)月及以上)</p>
<p class="task_limittimes">月限<span>1</span>次</p>
<a href="javascript:;" class="done">已完成</a>
</div>
</li>
<li>
<img src="images/task_lianxubaoyue.png">
<div class="rightinfo">
<h3>開(kāi)通連續(xù)包月</h3>
<p>獎(jiǎng)勵(lì)成長(zhǎng)值<span>10</span>點(diǎn)</p>
<a href="javascript:;">去完成></a>
</div>
<div class="task_hover">
<p class="task_desc">一次性開(kāi)通年費(fèi)會(huì)員(12個(gè)月及以上)</p>
<p class="task_limittimes">月限<span>1</span>次</p>
<a href="javascript:;">去完成></a>
</div>
</li>
<li>
<img src="images/task_year.png">
<div class="rightinfo">
<h3>升級(jí)成為SVIP</h3>
<p>獎(jiǎng)勵(lì)成長(zhǎng)值<span>10</span>點(diǎn)</p>
<a href="javascript:;">去完成></a>
</div>
<div class="task_hover">
<p class="task_desc">一次性開(kāi)通年費(fèi)會(huì)員(12個(gè)月及以上)</p>
<p class="task_limittimes">月限<span>1</span>次</p>
<a href="javascript:;">去完成></a>
</div>
</li>
<li>
<img src="images/task_year.png">
<div class="rightinfo">
<h3>關(guān)注微信公眾號(hào)</h3>
<p>獎(jiǎng)勵(lì)成長(zhǎng)值<span>10</span>點(diǎn)</p>
<a href="javascript:;">去完成></a>
</div>
<div class="task_hover">
<p class="task_desc">一次性開(kāi)通年費(fèi)會(huì)員(12個(gè)月及以上)</p>
<p class="task_limittimes">月限<span>1</span>次</p>
<a href="javascript:;">去完成></a>
</div>
</li>
<li>
<img src="images/task_year.png">
<div class="rightinfo">
<h3>任務(wù)555555555</h3>
<p>獎(jiǎng)勵(lì)成長(zhǎng)值<span>10</span>點(diǎn)</p>
<a href="javascript:;">去完成></a>
</div>
<div class="task_hover">
<p class="task_desc">一次性開(kāi)通年費(fèi)會(huì)員(12個(gè)月及以上)</p>
<p class="task_limittimes">月限<span>1</span>次</p>
<a href="javascript:;">去完成></a>
</div>
</li>
<li>
<img src="images/task_year.png">
<div class="rightinfo">
<h3>任務(wù)666666666</h3>
<p>獎(jiǎng)勵(lì)成長(zhǎng)值<span>10</span>點(diǎn)</p>
<a href="javascript:;">去完成></a>
</div>
<div class="task_hover">
<p class="task_desc">一次性開(kāi)通年費(fèi)會(huì)員(12個(gè)月及以上)</p>
<p class="task_limittimes">月限<span>1</span>次</p>
<a href="javascript:;">去完成></a>
</div>
</li>
<li>
<img src="images/task_year.png">
<div class="rightinfo">
<h3>任務(wù)7777777</h3>
<p>獎(jiǎng)勵(lì)成長(zhǎng)值<span>10</span>點(diǎn)</p>
<a href="javascript:;">去完成></a>
</div>
<div class="task_hover">
<p class="task_desc">一次性開(kāi)通年費(fèi)會(huì)員(12個(gè)月及以上)</p>
<p class="task_limittimes">月限<span>1</span>次</p>
<a href="javascript:;">去完成></a>
</div>
</li>
</ul>
</div>
</div>
<!--任務(wù)成長(zhǎng)值 結(jié)束-->
</div>
</body>
<script>
//task growth
var switchPic = (function() {
/*
now:當(dāng)前第幾個(gè)li
linum:總共幾個(gè)li
shownum:要展示幾個(gè)li
w_li:li的寬度
marginR_li:li的右邊距
*/
var now = 1;
var linum, shownum, offset, w_li, marginR_li, pre, next, wrap;
function init(o) {
pre = o.preBtn;
next = o.nextBtn;
wrap = o.wrap;
bindBtn();
}
function btnShow() {
getInfo();
if(linum <= shownum) { //如果li總個(gè)數(shù)小于要展示的個(gè)數(shù),pre和next都不顯示
pre.hide();
next.hide();
} else if(now == 1) { //初始化,只顯示next
pre.hide();
next.show();
} else if(now == linum - shownum + 1) { //到最后一組,只顯示pre
pre.show();
next.hide();
} else { //中間pre,next都顯示。
pre.show();
next.show();
}
}
function getInfo() {
linum = $("#switchPic").find("li").size();
if($("#body").hasClass("grid-1010")) {
shownum = 3;
w_li = wrap.find("li").outerWidth(); //算上了border的寬度
marginR_li = parseInt(wrap.find("li").css("marginRight"));
offset = w_li + marginR_li;
} else if($("#body").hasClass("grid-1230")) {
shownum = 4;
w_li = wrap.find("li").outerWidth(); //算上了border的寬度
marginR_li = parseInt(wrap.find("li").css("marginRight"));
offset = w_li + marginR_li;
} else if($("#body").hasClass("grid-1410")) {
shownum = 4;
w_li = wrap.find("li").outerWidth(); //算上了border的寬度
marginR_li = parseInt(wrap.find("li").css("marginRight"));
offset = w_li + marginR_li;
}
}
function bindBtn() {
btnShow();
next.on("click", function() {
now++;
btnShow();
wrap.stop(true).animate({
"margin-left": -(now - 1) * offset
});
});
pre.on("click", function() {
now--;
btnShow();
wrap.stop(true).animate({
"margin-left": -(now - 1) * offset
});
});
$(window).resize(function() {
now = 1;
btnShow();
wrap.animate({
"margin-left": 0
});
});
}
return {
init: init
}
})();
switchPic.init({
preBtn: $(".arrowbtn-left"),
nextBtn: $(".arrowbtn-right"),
wrap: $("#switchPic")
});
</script>
</html>
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- 最簡(jiǎn)單的js圖片切換效果實(shí)現(xiàn)代碼
- 一段非常簡(jiǎn)單的讓圖片自動(dòng)切換js代碼
- 用html+css+js實(shí)現(xiàn)的一個(gè)簡(jiǎn)單的圖片切換特效
- 純js實(shí)現(xiàn)背景圖片切換效果代碼
- js圖片自動(dòng)切換效果處理代碼
- css圖片切換效果代碼[不用js]
- 簡(jiǎn)單的實(shí)現(xiàn)點(diǎn)擊箭頭圖片切換的js代碼
- 純js無(wú)flash仿搜狐女人頻道FLASH圖片切換效果代碼
- JS鼠標(biāo)滑過(guò)圖片時(shí)切換圖片實(shí)現(xiàn)思路
- javascript實(shí)現(xiàn)圖片切換的幻燈片效果源代碼
相關(guān)文章
js實(shí)現(xiàn)仿阿里巴巴城市選擇框效果實(shí)例
這篇文章主要介紹了js實(shí)現(xiàn)仿阿里巴巴城市選擇框效果,實(shí)例分析了javascript結(jié)合css與數(shù)組實(shí)現(xiàn)城市選擇框的方法,需要的朋友可以參考下2015-06-06
Perl Substr()函數(shù)及函數(shù)的應(yīng)用
這篇文章主要介紹了Perl Substr()函數(shù)及函數(shù)的應(yīng)用,需要的朋友可以參考下2015-12-12
淺談js中的attributes和Attribute的用法與區(qū)別
這篇文章主要介紹了淺談js中的attributes和Attribute的用法與區(qū)別,attributes可以獲取一個(gè)對(duì)象中的一個(gè)屬性,attributes 屬性返回指定節(jié)點(diǎn)屬性的集合,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07
原生JS實(shí)現(xiàn)圖片輪播與淡入效果的簡(jiǎn)單實(shí)例
下面小編就為大家?guī)?lái)一篇原生JS實(shí)現(xiàn)圖片輪播與淡入效果的簡(jiǎn)單實(shí)例。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-08-08
解析javascript 實(shí)用函數(shù)的使用詳解
本篇文章對(duì)javascript中的一些實(shí)用函數(shù)進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-05-05
純JS實(shí)現(xiàn)監(jiān)控本地文件變化
你是否曾夢(mèng)想擁有一個(gè)能夠?qū)崟r(shí)監(jiān)控本地文件變化的網(wǎng)頁(yè)應(yīng)用,現(xiàn)在,這個(gè)夢(mèng)想即將成為現(xiàn)實(shí),本文將通過(guò)純JS實(shí)現(xiàn)這一功能,感興趣的小伙伴可以了解下2025-04-04
js實(shí)現(xiàn)多選項(xiàng)切換導(dǎo)航菜單的方法
這篇文章主要介紹了js實(shí)現(xiàn)多選項(xiàng)切換導(dǎo)航菜單的方法,可實(shí)現(xiàn)動(dòng)態(tài)生成多選項(xiàng)切換導(dǎo)航菜單的功能,是非常實(shí)用的技巧,需要的朋友可以參考下2015-02-02
get(0).tagName獲得作用標(biāo)簽示例代碼
get(0).tagName可獲得作用標(biāo)簽,下面是它的一個(gè)小應(yīng)用,在學(xué)習(xí)js的朋友可以參考下2014-10-10

