淘宝首页图片切换

淘宝首页的图片切换实现:

 

 写道
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>slide.html</title>

<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="this is my page">
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<style type="text/css">
body{font-size:12px;}
.scontainer{width:490px;height:170px;float:left;overflow: hidden;}
.scontainer .container{width:100%;height:100%;float:left;position: relative;}
.scontainer .container .pic{float:left;list-style: none;height:850px;width:100%;margin:0 0;padding:0 0;position: absolute;}
.scontainer .container .pic li{float:left;height:170px;width:100%;}
.scontainer .container .sclick{position: absolute;list-style: none;bottom: 5px;right: 5px;margin:0 0;padding:0 0;}
.scontainer .container .sclick li{float:left;width:20px;height:20px;line-height: 20px;text-align: center;background: #fff;margin: 0 2px 0 0;opacity:0.7;color: #DE7D4B;font-size:13px;cursor: pointer;}
.scontainer .container .sclick li.hover{background: #FF6600;color: #fff;}
</style>

<script type="text/javascript">
window.οnlοad=function(){
var btnsUl=getByClass("sclick")[0],
btns=btnsUl.getElementsByTagName("li"),
imgsUl=getByClass("pic")[0];
var sp=new SwitchPic(btns,imgsUl,170,1000);

}
var SwitchPic=function(buttons,picContainer,imgHeight,intvalTime,hoverClass){
this.buttons=buttons;
this.picContainer=picContainer;
this.intvalTime=intvalTime || 3000;
this.hoverClass=hoverClass || "hover";
this.imgHeight=imgHeight;
this.curIndex=-1;

this.start();
this.invoke(0);

for(var i=0;i<this.buttons.length;i++){
var btn=this.buttons[i];
var _this=this;
(function(i){
btn.οnmοuseοver=function(){
_this.stop();
_this.invoke(i);

}
btn.οnmοuseοut=function(){
_this.start();
}
})(i)
}
}
//方法扩展
SwitchPic.prototype={
start:function(){//开始切换
var _this=this;
this.stop();
this.intval=setInterval(function(){
var nextIndex=_this.next();
_this.invoke(nextIndex);
},this.intvalTime);
},
next:function(){
var nextIndex=(this.curIndex+1)<this.buttons.length ? (this.curIndex+1) : 0 ;
return nextIndex;
},
stop:function(){
clearInterval(this.intval);
},
invoke:function(itemIndex){
this.picContainer.style.top=(-this.imgHeight*itemIndex)+"px";
var btn=this.buttons[itemIndex];
this.removeClass();
btn.className=this.hoverClass;
this.curIndex=itemIndex;
},
removeClass:function(){
for(var i=0;i<this.buttons.length;i++){
this.buttons[i].className="";
}
}
};

function getByClass(className){
if(document.getElementByClassName){
return document.getElementByClassName(className);
}

var nodes=document.getElementsByTagName("*");
var arr=[];
for(var i=0;i<nodes.length;i++){
var curNode=nodes[i];
if(hasClass(className,curNode)){
arr.push(curNode);
}
}
return arr;
}

function hasClass(className,obj){
var names=obj.className.split(/\s+/);
for(var i=0;i<names.length;i++){
if(names[i]==className){
return true;
}
}
return false;
}

</script>
</head>

<body>
<div class="scontainer">
<div class="container">
<ul class="pic">
<li><a href="###"><img src="http://img01.taobaocdn.com/tps/i1/T1k.WIXltgXXXXXXXX-490-170.png"/></a></li>
<li><a href="###"><img src="http://i.mmcdn.cn/simba/img/T1QqCGXcJxXXXXXXXX.jpg?noq=y"/></a></li>
<li><a href="###"><img src="http://i.mmcdn.cn/simba/img/T1OBiIXcFlXXXXXXXX.jpg?noq=y"/></a></li>
<li><a href="###"><img src="http://img.alimama.cn/adbrand/adboard/picture/2011-03-01/119159330001110301225330.jpg"/></a></li>
<li><a href="###"><img src="http://img03.taobaocdn.com/tps/i3/T1wbOIXXViXXXXXXXX-490-170.png"/></a></li>
</ul>
<ul class="sclick">
<li><a>1</a></li>
<li><a>2</a></li>
<li><a>3</a></li>
<li><a>4</a></li>
<li><a>5</a></li>
</ul>
</div>
</div>
</body>
</html>
 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是一个简单的原生JS实现图片切换的示例代码: HTML代码: ``` <div class="slider"> <ul> <li><img src="img/1.jpg"></li> <li><img src="img/2.jpg"></li> <li><img src="img/3.jpg"></li> </ul> <div class="prev"></div> <div class="next"></div> </div> ``` CSS代码: ``` .slider { position: relative; } .slider ul { list-style: none; margin: 0; padding: 0; position: relative; } .slider li { float: left; } .slider img { display: block; width: 100%; height: auto; } .slider .prev, .slider .next { position: absolute; top: 50%; margin-top: -15px; width: 30px; height: 30px; background-color: #000; opacity: 0.5; cursor: pointer; } .slider .prev { left: 0; } .slider .next { right: 0; } .slider .prev:hover, .slider .next:hover { opacity: 1; } ``` JS代码: ``` var slider = document.querySelector('.slider'); var sliderUl = slider.querySelector('ul'); var sliderLi = slider.querySelectorAll('li'); var sliderPrev = slider.querySelector('.prev'); var sliderNext = slider.querySelector('.next'); var currentIndex = 0; var imageCount = sliderLi.length; var sliderWidth = slider.clientWidth; sliderUl.style.width = (sliderWidth * imageCount) + 'px'; function slideTo(index) { if (index < 0) { index = imageCount - 1; } else if (index >= imageCount) { index = 0; } sliderUl.style.transform = 'translateX(-' + (sliderWidth * index) + 'px)'; currentIndex = index; } sliderPrev.addEventListener('click', function() { slideTo(currentIndex - 1); }); sliderNext.addEventListener('click', function() { slideTo(currentIndex + 1); }); slideTo(0); ``` 这段代码实现了一个简单的图片轮播效果,当点击“上一张”或“下一张”按钮时,会切换到相应的图片。可以根据自己的需要进行修改和优化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值