首页 新闻 会员 周边

淘宝首页图片切换效果是怎么做的呢?

0
悬赏园豆:5 [已解决问题] 解决于 2012-04-05 08:20

请问淘宝首页图片切换效果是怎么做,我主要想问的是图片向上移动的速度是变化(逐渐减小)的,所以给人的感觉是比较平滑的效果,这个是怎么做的呢?

tab_china的主页 tab_china | 初学一级 | 园豆:54
提问于:2012-03-14 09:31
< >
分享
最佳答案
0

http://www.cnblogs.com/NNUF/archive/2012/03/20/2375355.html

原生JS与JQURY的实现方法都有,封装的和函数式的写法也哟,注释很全面

收获园豆:5
VVG | 初学一级 |园豆:154 | 2012-03-21 10:44

谢谢,我测试一下

tab_china | 园豆:54 (初学一级) | 2012-03-26 08:57
其他回答(3)
0

就是一个运动曲线函数,你去网上搜索就有了,可以调整g的大小。

today4king | 园豆:3499 (老鸟四级) | 2012-03-14 13:39
0

http://fgm.cc/learn/这个地址应该有你要的东西了。你看下吧。里面特效不少的。

rains | 园豆:860 (小虾三级) | 2012-03-14 13:43
0

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>轮播广告</title>
<style>
body,div,ul,li{margin:0;padding:0;}
ul{list-style-type:none;}
body{background:#000;text-align:center;font:12px/20px Arial;}
#box{position:relative;width:492px;height:172px;background:#fff;border-radius:5px;border:8px solid #fff;margin:10px auto;cursor:pointer;}
#box .list{position:relative;width:490px;height:170px;overflow:hidden;}
#box .list ul{position:absolute;top:0;left:0;}
#box .list li{width:490px;height:170px;overflow:hidden;}
#box .count{position:absolute;right:0;bottom:5px;}
#box .count li{color:#fff;float:left;width:20px;height:20px;cursor:pointer;margin-right:5px;overflow:hidden;background:#F90;opacity:0.7;filter:alpha(opacity=70);border-radius:20px;}
#box .count li.current{color:#fff;opacity:1;filter:alpha(opacity=100);font-weight:700;background:#f60;}
#tmp{width:100px;height:100px;background:red;position:absolute;}
</style>
<script type="text/javascript">
//获取ID
var $ = function (id) {return typeof id === "string" ? document.getElementById(id) : id};

//获取tagName
var $$ = function (tagName, oParent) {return (oParent || document).getElementsByTagName(tagName)};

//自动播放对象
var AutoPlay = function (id) {this.initialize(id)};

AutoPlay.prototype = {
 initialize: function (id)
 {
  var oThis = this;
  this.oBox = $(id);
  this.oUl = $$("ul", this.oBox)[0];
  this.aImg = $$("img", this.oBox);
  this.timer = null;
  this.autoTimer = null;
  this.iNow = 0;
  this.creatBtn();
  this.aBtn = $$("li", this.oCount);    
  this.toggle();
  this.autoTimer = setInterval(function ()
  {
   oThis.next()
  }, 3000);  
  this.oBox.onmouseover = function ()
  {
   clearInterval(oThis.autoTimer)
  };
  this.oBox.onmouseout = function ()
  {
   oThis.autoTimer = setInterval(function ()
   {
    oThis.next()
   }, 3000) 
  };
  for (var i = 0; i < this.aBtn.length; i++)
  {
   this.aBtn[i].index = i;
   this.aBtn[i].onmouseover = function ()
   {
    oThis.iNow = this.index;
    oThis.toggle()
   }
  }
 },
 creatBtn: function ()
 {
  this.oCount = document.createElement("ul");
  this.oFrag = document.createDocumentFragment();
  this.oCount.className = "count";
  for (var i = 0; i < this.aImg.length; i++)
  {
   var oLi = document.createElement("li");
   oLi.innerHTML = i + 1;
   this.oFrag.appendChild(oLi)
  }
  this.oCount.appendChild(this.oFrag);
  this.oBox.appendChild(this.oCount)
 },
 toggle: function ()
 {
  for (var i = 0; i < this.aBtn.length; i++) this.aBtn[i].className = "";
  this.aBtn[this.iNow].className = "current";
  this.doMove(-(this.iNow * this.aImg[0].offsetHeight))
 },
 next: function ()
 { 
  this.iNow++;
  this.iNow == this.aBtn.length && (this.iNow = 0);
  this.toggle()
 },
 doMove: function (iTarget)
 {
  var oThis = this;
  clearInterval(oThis.timer);
  oThis.timer = setInterval(function ()
  {
   var iSpeed = (iTarget - oThis.oUl.offsetTop) / 5;
   iSpeed = iSpeed > 0 ? Math.ceil(iSpeed) : Math.floor(iSpeed);
   oThis.oUl.offsetTop == iTarget ? clearInterval(oThis.timer) : (oThis.oUl.style.top = oThis.oUl.offsetTop + iSpeed + "px")
  }, 30) 
 }
};
window.onload = function ()
{
 new AutoPlay("box");
};
</script>
</head>
<body>
<div >
    <div >
        <ul>
            <li><img src="img/01.jpg" width="490" height="170" /></li>
            <li><img src="img/02.jpg" width="490" height="170" /></li>
            <li><img src="img/03.jpg" width="490" height="170" /></li>
            <li><img src="img/04.jpg" width="490" height="170" /></li>
            <li><img src="img/05.jpg" width="490" height="170" /></li>
        </ul>
    </div>
</div>
</body>
</html>

KivenRo | 园豆:1734 (小虾三级) | 2012-03-15 09:35

IE下不能用,报错

支持(0) 反对(0) tab_china | 园豆:54 (初学一级) | 2012-03-15 11:17
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册