jQuery学习记录3

这次是一个类似优酷首页那种滑动效果的简单实现

主要用到两个div 一个用作画布,一个用作胶卷,画布要设置overflow,胶卷要设置width足够大

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<script src="jQuery.js"> </script>
<script>
$(document).ready(function(){
    var page=1;
    var i=4;
    $("input.next").click(function(){
        var $parent=$(this).parents("div.v_show");
        var $v_show=$parent.find("div.v_content_list");//获取胶圈
        var $v_content=$parent.find("div.v_content");//获取画布
        var v_width=$v_content.width();//画布的宽度,胶圈一次转一个画布的长度
        
        var len=$v_show.find("li").length;//总共的帧数
        var page_count=Math.ceil(len/i);
        if(!$v_show.is(":animated")){//判断当前是否在动画中,如果不是再翻页,防止连续快速的点击造成不停的翻页
            
            if(page==page_count){ //当最后一页时,胶圈返回第一页
                $v_show.animate({left:"0px"},"slow");
                page=1;
                
            }
            else{
                $v_show.animate({left:"-="+v_width},"slow");
                page++;
            }
        }
        $parent.find("span").eq(page-1).addClass("current")
                .siblings().removeClass("current");
        
    })
    $("input.prew").click(function(){
        var $parent=$(this).parents("div.v_show");
        var $v_show=$parent.find("div.v_content_list");
        var $v_content=$parent.find("div.v_content");
        var v_width=$v_content.width();
        var len=$v_show.find("li").length;
        var page_count=Math.ceil(len/i);
        if(!$v_show.is(":animated")){
            
            if(page==1){
                $v_show.animate({left:"-="+v_width*(page_count-1)},"slow");
                page=page_count;
                
            }
            else{
                $v_show.animate({left:"+="+v_width},"slow");
                page--;
            }
        }
        $parent.find("span").eq(page-1).addClass("current")
                .siblings().removeClass("current");
        
    })
    
    
    
})
</script>
<style type="text/css">
.current{
    color:#009FAA;
}
li{
    float:left;/*使元素平铺*/
    width:170px;
}
.v_content{
    width:680px;
    height:125px;
    overflow:hidden;/*如果里面的元素超出,则隐藏超出的部分,而不是扩展自己*/
}
.v_content_list{
    position:relative;
    width:200000px;/*画布的长度要足够长*/
}
ul{
    padding:0px;
    margin-left:0px;/*设置li元素没有初始偏移*/
}
</style>
</head>
<body>
<ul>
<div class="v_show">
    <div class="v_caption">
      <h1 class="cartoon">示例:</h1>
      <div class="highlight_tip">
          <span class="current">1</span><span>2</span><span>3</span>
      </div>
      <div class="change_btn">
          <input type="button" class="prew" value="11"></input>
        <input type="button" class="next" value="22"></input>
      </div>
    </div>
    
    <div class="v_content">
        <div class="v_content_list">
            <ul>
                <li><img src="../img/adminBK.jpg" width="150" height="125">1</li>
                <li><img src="../img/adminBK.jpg" width="150" height="125">2</li>
                <li><img src="../img/adminBK.jpg" width="150" height="125">3</li>
                <li><img src="../img/adminBK.jpg" width="150" height="125">4</li>
                <li><img src="../img/adminBK.jpg" width="150" height="125">5</li>
                <li><img src="../img/adminBK.jpg" width="150" height="125">6</li>
                <li><img src="../img/adminBK.jpg" width="150" height="125">7</li>
                <li><img src="../img/adminBK.jpg" width="150" height="125">8</li>
                <li><img src="../img/adminBK.jpg" width="150" height="125">9</li>
                <li><img src="../img/adminBK.jpg" width="150" height="125">10</li>
                <li><img src="../img/adminBK.jpg" width="150" height="125">11</li>
                <li><img src="../img/adminBK.jpg" width="150" height="125">12</li>
            </ul>
        </div>
        
    </div>
</div>
</ul>


</body>

 

posted @ 2013-11-05 19:41  火火加油  阅读(157)  评论(0编辑  收藏  举报