该切换特效实现很简单,而且兼容性很好。
html页面如下
<div class="wrapper">
<div id="focus">
<ul>
<li><a href=">
css样式
<style type="text/css">
{margin:0; padding:0;}
body {font-size:12px; color:#222; font-family:Verdana,Arial,Helvetica,sans-serif; background:#f0f0f0;}
clearfix:after {content: ""; display: block; height: 0; clear: both; visibility: hidden;}
clearfix {zoom:1;}
ul,li {list-style:none;}
img {border:0;}
wrapper {width:800px; margin:0 auto; padding-bottom:50px;}
/ qqshop focus /
#focus {width:800px; height:280px; overflow:hidden; position:relative;}
#focus ul {height:380px; position:absolute;}
#focus ul li {float:left; width:800px; height:280px; overflow:hidden; position:relative; background:#000;}
#focus ul li div {position:absolute; overflow:hidden;}
#focus btnBg {position:absolute; width:800px; height:20px; left:0; bottom:0; background:#000;}
#focus btn {position:absolute; width:780px; height:10px; padding:5px 10px; right:0; bottom:0; text-align:right;}
#focus btn span {display:inline-block; _display:inline; _zoom:1; width:25px; height:10px; _font-size:0; margin-left:5px; cursor:pointer; background:#fff;}
#focus btn spanon {background:#fff;}
#focus preNext {width:45px; height:100px; position:absolute; top:90px; background:url(img/spritepng) no-repeat 0 0; cursor:pointer;}
#focus pre {left:0;}
#focus next {right:0; background-position:right top;}
</style>
js脚本
$(function() {
var sWidth = $("#focus")width(); //获取焦点图的宽度(显示面积)
var len = $("#focus ul li")length; //获取焦点图个数
var index = 0;
var picTimer;
//以下代码添加数字按钮和按钮后的半透明条,还有上一页、下一页两个按钮
var btn = "<div class='btnBg'></div><div class='btn'>";
for(var i=0; i < len; i++) {
btn += "<span></span>";
}
btn += "</div><div class='preNext pre'></div><div class='preNext next'></div>";
$("#focus")append(btn);
$("#focus btnBg")css("opacity",05);
//为小按钮添加鼠标滑入事件,以显示相应的内容
$("#focus btn span")css("opacity",04)mouseenter(function() {
index = $("#focus btn span")index(this);
showPics(index);
})eq(0)trigger("mouseenter");
//上一页、下一页按钮透明度处理
$("#focus preNext")css("opacity",02)hover(function() {
$(this)stop(true,false)animate({"opacity":"05"},300);
},function() {
$(this)stop(true,false)animate({"opacity":"02"},300);
});
//上一页按钮
$("#focus pre")click(function() {
index -= 1;
if(index == -1) {index = len - 1;}
showPics(index);
});
//下一页按钮
$("#focus next")click(function() {
index += 1;
if(index == len) {index = 0;}
showPics(index);
});
//本例为左右滚动,即所有li元素都是在同一排向左浮动,所以这里需要计算出外围ul元素的宽度
$("#focus ul")css("width",sWidth (len));
//鼠标滑上焦点图时停止自动播放,滑出时开始自动播放
$("#focus")hover(function() {
clearInterval(picTimer);
},function() {
picTimer = setInterval(function() {
showPics(index);
index++;
if(index == len) {index = 0;}
},4000); //此4000代表自动播放的间隔,单位:毫秒
})trigger("mouseleave");
//显示函数,根据接收的index值显示相应的内容
function showPics(index) { //普通切换
var nowLeft = -indexsWidth; //根据index值计算ul元素的left值
$("#focus ul")stop(true,false)animate({"left":nowLeft},300); //通过animate()调整ul元素滚动到计算出的position
//$("#focus btn span")removeClass("on")eq(index)addClass("on"); //为当前的按钮切换到选中的效果
$("#focus btn span")stop(true,false)animate({"opacity":"04"},300)eq(index)stop(true,false)animate({"opacity":"1"},300); //为当前的按钮切换到选中的效果
}
});
用到的左右切换
HTML中轮播代码如下:
<!DOCTYPE html><html>
<head><title>轮播代码</title>
<meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=10,maximum-scale=10,minimum-scale=10,user-scalable=0">
</head>
<style type="text/css">
body{max-width: 640px;margin: 0 auto;}
#lunbo ul li{width:100%;list-style: none;width:640px; height:250px;background-color: #f00;text-align: center;}
#lunbo ul li:not(:first-child){display: none;}</style><body><div id="lunbo">
<ul>
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
</ul></div><script type="text/javascript">
//因为使用了document,所以js需要放在需要执行的代码下面生效才能生效
var li=documentgetElementById('lunbo')getElementsByTagName("li");
var num=0;
var len=lilength;
setInterval(function(){
li[num]styledisplay="none";
num=++num==len0:num;
li[num]styledisplay="inline-block";
},3000);//切换时间
</script>
</body>
</html>var imgUrl=new Array();
var imgLink=new Array();
var adNum=0;
imgUrl[1]="image/ajpg";
imgUrl[2]="image/bjpg";
imgUrl[3]="image/cjpg";
imgUrl[4]="image/djpg";
imgUrl[5]="image/ejpg";
imgUrl[6]="image/fjpg";
imgUrl[7]="image/gjpg";
var imgPre=new Array();
for (i=1;i<8;i++){
imgPre[i]=new Image();
imgPre[i]src=imgUrl[i];
}
function setTransition(){
if (documentall){
imgUrlrotatorfiltersrevealTransTransition=Mathfloor(Mathrandom()20);
imgUrlrotatorfiltersrevealTransapply();
}
}
function playTransition(){
if (documentall)
imgUrlrotatorfiltersrevealTransplay()
}
function nextAd(){
if(adNum<imgUrllength-1)adNum++ ;
else adNum=1;
setTransition();
documentimagesimgUrlrotatorsrc=imgUrl[adNum];
playTransition();
theTimer=setTimeout("nextAd()", 6000);
}
function jump2url(){
jumpUrl=imgLink[adNum];
jumpTarget='_blank';
if (jumpUrl != ''){
if (jumpTarget != '')windowopen(jumpUrl,jumpTarget);
else locationhref=jumpUrl;
}
}
function displayStatusMsg() {
status=imgLink[adNum];
documentreturnValue = true;
}
documentwrite("<center> <img src='javascript:nextAd()'name='imgUrlrotator' width='1000' height='150' border='0' id='imgUrlrotator' style='FILTER: revealTrans(duration=2,transition=50)' /></center>");
以上内容存为js文件,直接引用<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Document</title>
<script type="text/javascript">
windowonload=function(){
var oImg=documentgetElementById('img1');
var arrImgUrl=["img/1jpg","img/2jpg","img/3jpg","img/4jpg"]
var num=0;
function Tab(){
num++;
if(num>arrImgUrllength-1){
num=0;
}
oImgsrc=arrImgUrl[num];
}
setInterval(Tab,1000)
}
</script>
</head>
<body>
<img id="img1" src="img/1jpg" width="288">
</body>
</html>
注意放在 名称为 img 的文件夹中,而且是格式的,否则需要修改html<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=10">
<meta >
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)