码迷,mamicode.com
首页 > 其他好文 > 详细

头像切换封装

时间:2016-05-24 20:41:55      阅读:256      评论:0      收藏:0      [点我收藏+]

标签:

技术分享

<div class="ui_avatar">
         <ul class="avatar_items">
             <li><a><img src="http://img04.xesimg.com/avatar/teacher_1.jpg" ></a></li>
             <li><a><img src="http://img04.xesimg.com/avatar/teacher_1.jpg" ></a></li>
         </ul>
         <div class="avatar-roll">
            <a class="prev none" href="javascript:void(0);">
                <em class="icon-chevron-left">左</em>
            </a>
            <a class="next " href="javascript:void(0);">
                <em class="icon-chevron-right">右</em>
            </a>
        </div>
    </div>

 

html .media .ui_avatar{
    display: inline;
    float: left;
    margin: 0.1rem 0.5rem 0;
    width: 2.5rem;
    overflow: hidden;
}
html .media .ui_avatar .avatar_items{
    margin-bottom: 0.5rem;
    margin-left: 0;
    overflow: hidden;
    padding-left: 0;
    width: 800px;
}
html .media .ui_avatar .avatar_items li{
    float: left;
    overflow: hidden;
    height: 2.5rem;
    width: 2.5rem;
}
html .media .ui_avatar .avatar_items li a{
  display: block;
    height: 2.5rem;
    width: 2.5rem;
}
html .media .ui_avatar .avatar_items li a img{
    border-radius: 50%;
    float: left;
    height: 2.5rem;
    margin-right: 0.35rem;
    width: 2.5rem;
}
.media .ui_avatar .avatar-roll{
  height: 17px;
  text-align: center;
}
.media .ui_avatar .avatar-roll a em{
    display: inline-block;
    height: 17px;
    line-height: 17px;
    text-align: center;
    text-indent: -9999em;
    vertical-align: top;
    width: 17px;
}
.media .ui_avatar .avatar-roll a .icon-chevron-left {
  background: url(‘../img/icon_chevron_left.png‘) no-repeat 0 0;
}
.media .ui_avatar .avatar-roll a .icon-chevron-right {
  background: url(‘../img/icon_chevron_right.png‘) no-repeat 0 0;
}
.media .ui_avatar .avatar-roll a.none .icon-chevron-left {
  background: url(‘../img/icon_chevron_left_none.png‘) no-repeat 0 0;
}
.media .ui_avatar .avatar-roll a.none .icon-chevron-right {
  background: url(‘../img/icon_chevron_right_none.png‘) no-repeat 0 0;
}

 

// 头像切换封装函数
var courses = courses || {};

courses.avatar = courses.avatar || {};

(function(a){
    a.box = {
        pic : null,
        list: null,
        btn : null
    };

    a.step = $(".avatar_items li").width();
    a.size = 0;
    a.max = 0;

    a.len = 0;

    a.toggle = function( expr ){
        var btn = $(expr);
        if(btn.length == 0){ return; }
        var wrap = btn.parent();
        var pic = wrap.hasClass(‘avatar-roll‘) ? wrap.siblings(‘.avatar_items‘) : wrap.find(‘.avatar_items‘);
        if(pic.length == 0){ return; }


        this.box.pic = pic;
        this.box.list = pic.find(‘li‘);
        this.box.btn = btn;
        this.box.prev = btn.hasClass(‘prev‘) ? btn : btn.siblings(‘.prev‘);
        this.box.next = btn.hasClass(‘next‘) ? btn : btn.siblings(‘.next‘);
        this.size = this.box.list.length;
        this.max = this.size - 1;
        this.step = pic.find(‘li‘).width();
        var list = pic.find(‘li‘);
        var left = pic.css(‘margin-left‘);

        this.left = Number(left.replace(‘px‘,‘‘));

        if(btn.hasClass(‘prev‘)){
            a.prev();
        }else{
            a.next();
        }
    }

    a.prev = function(){

        if(a.left < 0){
            a.box.pic.animate({
                marginLeft : ‘+=‘+a.step+‘px‘
            }, 500, function(){
                a.left += a.step;
                a.setCls();
                if(a.left >= 0){
                    $(this).clearQueue();
                }
            });
        }else{
            a.box.pic.clearQueue();
        }
    };

    a.next = function(){
        var box = a.box.pic,
        left = Number(box.css(‘margin-left‘).replace(‘px‘,‘‘));

        if(a.left > -(a.max * a.step)){
            a.box.pic.animate({
                marginLeft : ‘-=‘+a.step+‘px‘
            }, 500, function(){
                a.left -= a.step;
                a.setCls();
                if(a.left <= -(a.max * a.step)){
                    $(this).clearQueue();
                }
            });
        }else{
            a.box.pic.clearQueue();
        }
    };

    a.setCls = function(){
        var hasNext = Math.abs(a.left) < ((a.box.list.length - 1) * a.step);
        var hasPrev = a.left < 0;

        if(hasNext){
            a.box.next.removeClass(‘none‘);
        }else{
            a.box.next.addClass(‘none‘);
        }

        if(hasPrev){
            a.box.prev.removeClass(‘none‘);
        }else{
            a.box.prev.addClass(‘none‘);
        }
    };

})(courses.avatar);
$(function(){
    // 绑定老师头像切换事件
    $(‘body‘).on(‘click‘, ‘.ui_avatar .avatar-roll a‘, function() {
        
        var that = $(this);
        if (that.hasClass(‘none‘)) {
            return false;
        } else {
         courses.avatar.toggle(that)     
     }
    });
})

 技术分享技术分享技术分享技术分享

头像切换封装

标签:

原文地址:http://www.cnblogs.com/web-leader/p/5524650.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!