[html]
<!DOCTYPE HTML>
<html>
<head>
<title>基於jQuery的控制左右滾動效果_自動滾動版本</title>
<script src="http://jt.875.cn/js/jquery.js"></script>
<style>
body{font-size:0.8em;letter-spacing:1px;font-family:"微軟雅黑"; line-height:1.8em}
p,ul,li,ol,img{margin:0;padding:0}
h1{font-size:1em; font-weight:normal;}
h1 a{background:#CFF; padding:2px 3px; text-decoration:none;}
h1 a:hover{background:#eee; text-decoration:underline}
h2,h3{font-size:1em; font-weight:normal; color:#a40000; margin:1em auto; position:relative}
h3{color:#888; font-weight:bold}
ul,li,ol{list-style:none}
.ibox{width:850px; height:210px; background:#ddd; margin:1em auto; border:1em solid #ddd; position:relative; overflow:hidden}
.showbox{position:absolute;left:0;width:2550px; height:170px; background:#fff}
.showbox ul li{float:left;margin:7px}
.showbox ul li img{width:150px; height:150px; border:3px solid #a40000}
.ibox span{position:absolute;padding:2px 5px; background:#fff; cursor:pointer;}
.ibox span.pre{left:10px; bottom:0}
.ibox span.next{right:10px; bottom:0}
.ibox span.num{right:45%; bottom:0; background:#ddd;line-height:18px;}
.ibox span.num li{display:inline;margin:0 5px; padding:1px 5px; line-height:18px}
.ibox span.num .numcur{background:#a40000; color:#fff}
</style>
<script>
$(function(){
//變量
var $cur = 1;//初始化顯示的版面
var $i = 5;//每版顯示數
var $len = $('.showbox>ul>li').length;//計算列表總長度(個數)
var $pages = Math.ceil($len / $i);//計算展示版面數量
var $w = $('.ibox').width();//取得展示區外圍寬度
var $showbox = $('.showbox');
var $num = $('span.num li')
var $pre = $('span.pre')
var $next = $('span.next');
var $autoFun;
//調用自動滾動
autoSlide();
//向前滾動
$pre.click(function(){
if (!$showbox.is(':animated')) { //判斷展示區是否動畫
if ($cur == 1) { //在第一個版面時,再向前滾動到最後一個版面
$showbox.animate({
left: '-=' + $w * ($pages – 1)
}, 500); //改變left值,切換顯示版面,500(ms)為滾動時間,下同
$cur = $pages; //初始化版面為最後一個版面
}
else {
$showbox.animate({
left: '+=' + $w
}, 500); //改變left值,切換顯示版面
$cur–; //版面累減
}
$num.eq($cur – 1).addClass('numcur').siblings().removeClass('numcur'); //為對應的版面數字加上高亮樣式,並移除同級元素的高亮樣式
}
});
//向後滾動
$next.click(function(){
if (!$showbox.is(':animated')) { //判斷展示區是否動畫
if ($cur == $pages) { //在最後一個版面時,再向後滾動到第一個版面
$showbox.animate({
left: 0
}, 1000); //改變left值,切換顯示版面,500(ms)為滾動時間,下同
$cur = 1; //初始化版面為第一個版面
}
else {
$showbox.animate({
left: '-=' + $w
}, 1000);//改變left值,切換顯示版面
$cur++; //版面數累加
}
$num.eq($cur – 1).addClass('numcur').siblings().removeClass('numcur'); //為對應的版面數字加上高亮樣式,並移除同級元素的高亮樣式
}
});
//數字點擊事件
$num.click(function(){
if (!$showbox.is(':animated')) { //判斷展示區是否動畫
var $index = $num.index(this); //索引出當前點擊在列表中的位置值
$showbox.animate({
left: '-' + ($w * $index)
}, 1000); //改變left值,切換顯示版面,500(ms)為滾動時間
$cur = $index + 1; //初始化版面值,這一句可避免當滾動到第三版時,點擊向後按鈕,出面空白版.index()取值是從0開始的,故加1
$(this).addClass('numcur').siblings().removeClass('numcur'); //為當前點擊加上高亮樣式,並移除同級元素的高亮樣式
}
});
//停止滾動
clearFun($showbox);
clearFun($pre);
clearFun($next);
clearFun($num);
//事件劃入時停止自動滾動
function clearFun(elem){
elem.hover(function(){
clearAuto();
}, function(){
autoSlide();
});
}
//自動滾動
function autoSlide(){
$next.trigger('click');
$autoFun = setTimeout(autoSlide, 3000);//此處不可使用setInterval,setInterval是重復執行傳入函數,這會引起第二次劃入時停止失效
}
//清除自動滾動
function clearAuto(){
clearTimeout($autoFun);
}
});
</script>
</head>
<body>
<p class="ibox">
<p class="showbox">
<ul>
<li><img src=/wp-content/images1/20181101/2013053009250936273.jpg" alt="生意街" title="生意街" /></li>
<li><img src=/wp-content/images1/20181101/2013053009250995174.jpg" alt="生意街" title="生意街" /></li>
<li><img src=/wp-content/images1/20181101/2013053009250937575.jpg" alt="生意街" title="生意街" /></li>
<li><img src=/wp-content/images1/20181101/2013053009250920676.jpg" alt="生意街" title="生意街" /></li>
<li><img src=/wp-content/images1/20181101/2013053009250920676.jpg" alt="生意街" title="生意街" /></li>
<li><img src=/wp-content/images1/20181101/2013053009250936273.jpg" alt="生意街" title="生意街" /></li>
<li><img src=/wp-content/images1/20181101/2013053009250995174.jpg" alt="生意街" title="生意街" /></li>
<li><img src=/wp-content/images1/20181101/2013053009250937575.jpg" alt="生意街" title="生意街" /></li>
<li><img src=/wp-content/images1/20181101/2013053009250920676.jpg" alt="生意街" title="生意街" /></li>
<li><img src=/wp-content/images1/20181101/2013053009250920676.jpg" alt="生意街" title="生意街" /></li>
<li><img src=/wp-content/images1/20181101/2013053009250936273.jpg" alt="生意街" title="生意街" /></li>
<li><img src=/wp-content/images1/20181101/2013053009250995174.jpg" alt="生意街" title="生意街" /></li>
<li><img src=/wp-content/images1/20181101/2013053009250937575.jpg" alt="生意街" title="生意街" /></li>
<li><img src=/wp-content/images1/20181101/2013053009250920676.jpg" alt="生意街" title="生意街" /></li>
<li><img src=/wp-content/images1/20181101/2013053009250920676.jpg" alt="生意街" title="生意街" /></li>
</ul>
</p>
<span class="pre">«向左滾動</span>
<span class="next">向右滾動»</span>
<span class="num">
<ol>
<li class="numcur">1</li>
<li>2</li>
<li>3</li>
</ol>
</span>
</p>
</body>
</html>
<!DOCTYPE HTML>
<html>
<head>
<title>基於jQuery的控制左右滾動效果_自動滾動版本</title>
<script src="http://jt.875.cn/js/jquery.js"></script>
<style>
body{font-size:0.8em;letter-spacing:1px;font-family:"微軟雅黑"; line-height:1.8em}
p,ul,li,ol,img{margin:0;padding:0}
h1{font-size:1em; font-weight:normal;}
h1 a{background:#CFF; padding:2px 3px; text-decoration:none;}
h1 a:hover{background:#eee; text-decoration:underline}
h2,h3{font-size:1em; font-weight:normal; color:#a40000; margin:1em auto; position:relative}
h3{color:#888; font-weight:bold}
ul,li,ol{list-style:none}
.ibox{width:850px; height:210px; background:#ddd; margin:1em auto; border:1em solid #ddd; position:relative; overflow:hidden}
.showbox{position:absolute;left:0;width:2550px; height:170px; background:#fff}
.showbox ul li{float:left;margin:7px}
.showbox ul li img{width:150px; height:150px; border:3px solid #a40000}
.ibox span{position:absolute;padding:2px 5px; background:#fff; cursor:pointer;}
.ibox span.pre{left:10px; bottom:0}
.ibox span.next{right:10px; bottom:0}
.ibox span.num{right:45%; bottom:0; background:#ddd;line-height:18px;}
.ibox span.num li{display:inline;margin:0 5px; padding:1px 5px; line-height:18px}
.ibox span.num .numcur{background:#a40000; color:#fff}
</style>
<script>
$(function(){
//變量
var $cur = 1;//初始化顯示的版面
var $i = 5;//每版顯示數
var $len = $('.showbox>ul>li').length;//計算列表總長度(個數)
var $pages = Math.ceil($len / $i);//計算展示版面數量
var $w = $('.ibox').width();//取得展示區外圍寬度
var $showbox = $('.showbox');
var $num = $('span.num li')
var $pre = $('span.pre')
var $next = $('span.next');
var $autoFun;
//調用自動滾動
autoSlide();
//向前滾動
$pre.click(function(){
if (!$showbox.is(':animated')) { //判斷展示區是否動畫
if ($cur == 1) { //在第一個版面時,再向前滾動到最後一個版面
$showbox.animate({
left: '-=' + $w * ($pages – 1)
}, 500); //改變left值,切換顯示版面,500(ms)為滾動時間,下同
$cur = $pages; //初始化版面為最後一個版面
}
else {
$showbox.animate({
left: '+=' + $w
}, 500); //改變left值,切換顯示版面
$cur–; //版面累減
}
$num.eq($cur – 1).addClass('numcur').siblings().removeClass('numcur'); //為對應的版面數字加上高亮樣式,並移除同級元素的高亮樣式
}
});
//向後滾動
$next.click(function(){
if (!$showbox.is(':animated')) { //判斷展示區是否動畫
if ($cur == $pages) { //在最後一個版面時,再向後滾動到第一個版面
$showbox.animate({
left: 0
}, 1000); //改變left值,切換顯示版面,500(ms)為滾動時間,下同
$cur = 1; //初始化版面為第一個版面
}
else {
$showbox.animate({
left: '-=' + $w
}, 1000);//改變left值,切換顯示版面
$cur++; //版面數累加
}
$num.eq($cur – 1).addClass('numcur').siblings().removeClass('numcur'); //為對應的版面數字加上高亮樣式,並移除同級元素的高亮樣式
}
});
//數字點擊事件
$num.click(function(){
if (!$showbox.is(':animated')) { //判斷展示區是否動畫
var $index = $num.index(this); //索引出當前點擊在列表中的位置值
$showbox.animate({
left: '-' + ($w * $index)
}, 1000); //改變left值,切換顯示版面,500(ms)為滾動時間
$cur = $index + 1; //初始化版面值,這一句可避免當滾動到第三版時,點擊向後按鈕,出面空白版.index()取值是從0開始的,故加1
$(this).addClass('numcur').siblings().removeClass('numcur'); //為當前點擊加上高亮樣式,並移除同級元素的高亮樣式
}
});
//停止滾動
clearFun($showbox);
clearFun($pre);
clearFun($next);
clearFun($num);
//事件劃入時停止自動滾動
function clearFun(elem){
elem.hover(function(){
clearAuto();
}, function(){
autoSlide();
});
}
//自動滾動
function autoSlide(){
$next.trigger('click');
$autoFun = setTimeout(autoSlide, 3000);//此處不可使用setInterval,setInterval是重復執行傳入函數,這會引起第二次劃入時停止失效
}
//清除自動滾動
function clearAuto(){
clearTimeout($autoFun);
}
});
</script>
</head>
<body>
<p class="ibox">
<p class="showbox">
<ul>
<li><img src=/wp-content/images1/20181101/2013053009250936273.jpg" alt="生意街" title="生意街" /></li>
<li><img src=/wp-content/images1/20181101/2013053009250995174.jpg" alt="生意街" title="生意街" /></li>
<li><img src=/wp-content/images1/20181101/2013053009250937575.jpg" alt="生意街" title="生意街" /></li>
<li><img src=/wp-content/images1/20181101/2013053009250920676.jpg" alt="生意街" title="生意街" /></li>
<li><img src=/wp-content/images1/20181101/2013053009250920676.jpg" alt="生意街" title="生意街" /></li>
<li><img src=/wp-content/images1/20181101/2013053009250936273.jpg" alt="生意街" title="生意街" /></li>
<li><img src=/wp-content/images1/20181101/2013053009250995174.jpg" alt="生意街" title="生意街" /></li>
<li><img src=/wp-content/images1/20181101/2013053009250937575.jpg" alt="生意街" title="生意街" /></li>
<li><img src=/wp-content/images1/20181101/2013053009250920676.jpg" alt="生意街" title="生意街" /></li>
<li><img src=/wp-content/images1/20181101/2013053009250920676.jpg" alt="生意街" title="生意街" /></li>
<li><img src=/wp-content/images1/20181101/2013053009250936273.jpg" alt="生意街" title="生意街" /></li>
<li><img src=/wp-content/images1/20181101/2013053009250995174.jpg" alt="生意街" title="生意街" /></li>
<li><img src=/wp-content/images1/20181101/2013053009250937575.jpg" alt="生意街" title="生意街" /></li>
<li><img src=/wp-content/images1/20181101/2013053009250920676.jpg" alt="生意街" title="生意街" /></li>
<li><img src=/wp-content/images1/20181101/2013053009250920676.jpg" alt="生意街" title="生意街" /></li>
</ul>
</p>
<span class="pre">«向左滾動</span>
<span class="next">向右滾動»</span>
<span class="num">
<ol>
<li class="numcur">1</li>
<li>2</li>
<li>3</li>
</ol>
</span>
</p>
</body>
</html>