Page

[jquery]使用jq制作简单的文章列表左右切换功能

642Anson16-05-26


使用jquery制作简单的文章列表左右切换功能,就像我的博客右边的文章列表那样子

先展示html的代码:

           <div class="lanmubox">
                
            <div class="hd">
              <ul>
                <li class="hd_li">精心推荐</li>
                <li class="hd_li">最新文章</li>
              </ul>
            </div>
            
            <div class="bd">
              <ul>
                <li><a href="" title=""></a>文章一</li>
                <li><a href="" title=""></a>文章一</li>
                <li><a href="" title=""></a>文章一</li>
              </ul>
              <ul>
                <li><a href="" title=""></a>文章二</li>
                <li><a href="" title=""></a>文章二</li>
                <li><a href="" title=""></a>文章二</li>
              </ul>
            </div>
            
        </div>

再展示js代码:

var TabbedContent = {
    init: function() {
        $(".hd_li").mouseover(function() {
            TabbedContent.slideContent($(this));
        });
    },  
    
    //第一段代码意思是,定义一个对象,里面使用init对方法进行初始化,当鼠标放在相应位置的时候调用TabbedContent.slideContent方法,并把当前元素值传过去。
    slideContent: function(obj) {
        var margin = $(obj).parent().parent().parent().find(".hd").width();
        margin = margin * ($(obj).prevAll().size());
        margin = margin * -1;

        $(obj).parent().parent().parent().find(".bd").animate({
            marginLeft: margin + "px"
        }, {
            duration: 300
        });
    }
    
    //第二段代码是由之前调用的,先通过传过来的元素的父父父元素找到类为hd的元素的宽,并赋值给margin,margin再乘以这个元素之上的相同元素的个数,也就是li;再使用动画animate使类为bd的元素向左移动相应的距离,duration为3毫秒。
}

$(document).ready(function(){
    TabbedContent.init();
}
    //最后当文档全部元素加载完成之后就调用TabbedContent.init()方法。


代码解释有些地方可能不太准确,希望大家见谅。


代码效果如下图所示:

jdfw.gif

来自Anson博客

2016年5月26日