您的位置:首页 > Web前端 > JQuery

jQuery 仿iGoogle视频的列表拖动缓冲特效

2010-06-28 00:53 423 查看
查看效果

下载地址

jQuery 仿iGoogle视频的列表拖动缓冲特效

前台部分代码

代码

<!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>scroll</title>
<style type="text/css">
*{margin:0;padding:0}
body{
font-size:12px;
}
h1,#wrap{
width: 300px;
margin: 0 auto;
padding:30px;
}

#scroll {
width: 300px;
height: 400px;
overflow: auto;
display:block;
border:1px solid #ccc;
margin: 30px auto;
}
#scroll li {
display:block;
border:1px solid #ccc;
background: #EBCFFF;
color:#333;
padding: 10px;
}
#scroll li.alt {
color:#333;
background:#D9CFFF;
}
</style>
</head>
<body>
<h1>7,最终效果</h1>

<ul id="scroll" >
<li>列表数据1</li>
<li class="alt">列表数据2</li>
<li>列表数据3</li>
<li class="alt">列表数据4</li>
<li>列表数据5</li>
<li class="alt">列表数据6</li>
<li>列表数据7</li>
<li class="alt">列表数据8</li>
<li>列表数据9</li>
<li class="alt">列表数据10</li>
<li>列表数据11</li>
<li class="alt">列表数据12</li>
<li>列表数据13</li>
<li class="alt">列表数据14</li>
<li>列表数据15</li>
<li class="alt">列表数据16</li>
<li>列表数据17</li>
<li class="alt">列表数据18</li>
<li>列表数据19</li>
<li class="alt">列表数据20</li>
<li>列表数据21</li>
<li class="alt">列表数据22</li>
<li>列表数据23</li>
<li class="alt">列表数据24</li>
<li>列表数据25</li>
<li class="alt">列表数据26</li>
<li>列表数据27</li>
<li class="alt">列表数据28</li>
<li>列表数据29</li>
<li class="alt">列表数据30</li>
<li>列表数据31</li>
<li class="alt">列表数据32</li>
<li>列表数据33</li>
<li class="alt">列表数据34</li>
<li>列表数据35</li>
<li class="alt">列表数据36</li>
<li>列表数据37</li>
<li class="alt">列表数据38</li>
<li>列表数据39</li>
<li class="alt">列表数据40</li>
</ul>

<div id="wrap">
把滚动条去掉,把overflow:auto -- > overflow:hidden;即可达到效果, 但直接改css这个并不太好。为什么?当用户禁用javascript的时,那么截断的部分将无法显示。所以我们仍保持css中的overflow为 auto,通过js来重新设置overflow为 hidden;当用户启用js的时候,才设置为hidden。禁用js的时候,那么列表将会出现默认的滚动条,保证了可用性。<br/>

</div>

<script src="jquery-1.3.1.js" type="text/javascript"></script>
<script type="text/javascript">
$(function(){

var $this = $("#scroll");
var start_hand = "url(start_hand.cur),pointer";
var end_hand = "url(end_hand.cur),pointer";
var y = 0;

$this
.css({"cursor":start_hand , overflow: "hidden"})
.mousedown(startDrag)
.mouseup(endDrag)
.mouseleave(endDrag);

function startDrag(e){
$this.css("cursor", end_hand)
.stop(true, false)
.mousemove(moveDrag);
y = e.pageY;
return false;
}

function moveDrag(e){
var pos_y = e.pageY - y;
$this.animate({scrollTop : "-="+pos_y},20);
y = e.pageY;
return true;
}

function endDrag(e){
$this
.css("cursor", start_hand)
.unbind("mousemove",moveDrag);
return true;
}

});
</script>

</body>
</html>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: