链家H5项目经验总结

链家H5项目经验总结

 

在此次项目中,使用的是高度百分比。对于适配这一块确实少了很多。

1、如果是用高度百分比的话。则img需要写成这样的样式。

img{
    width:auto;
    height:100%;
    display: block;
}

如果需要居中的话,可以对外层的div设置一个类名class:比如是setwidth,然后通过js去获取第一张图片的宽度赋给这个外层的div.

setWidth:function(){
        $(".setWidth").each(function(index,element){
            var width=$(this).find("img").eq(0).width();
            $(this).css({"width":width+'px'});
        });
    },

不过要注意的是如果其他页面是隐藏的话,需要在这个页面显示之后再执行一遍setWidth。不然获取的宽度为0。

还有就是img标签和普通的div有点不同的就是,对于img标签的话,如果要居中,可以不用写宽度,直接定义宽度百分比,然后margin居中,就可以实现居中了。

如:

.img1{
    height:39%;
    margin:0 auto;
}

现在暂时只发现img有这个特性。

2、移动端的一点问题:

碰到的问题是这样的,在滑动屏幕的时候会闪一下下一页的背景。原因未知,解决办法:

给会闪的这个元素加入一行css代码:

-webkit-backface-visibility:hidden;

比如我出现的是section翻页的时候会闪一下下一页的背景。可以这样做。

section{
    display: none;
    -webkit-backface-visibility:hidden;
}

还有就是在最后一页的时候,弹出框里面的四个li向后面翻页的时候会抖动一下。

也是这样处理的。

复制代码
.popcontent li{
    width: 25%;
    height:100%;
    float:left;
    position:relative;
    -webkit-backface-visibility:hidden;
}    
复制代码

问题是这样解决了。但是为何如此呢???

W3C是这样定义-webkit-backface-visibility:hidden;的

Problematic in WebKit because backface-visibility not hidden

3、js:

在用zepto的animate函数的时候,因为用了回调,导致回调函数半天出不来,执行的非常慢。原因未知。但是如果是这样的话,可以不使用回调函数。

原来执行回调很慢的js代码:

复制代码
popfn:{
        close:$('.closed'),
        open:$('.p6_lj'),
        length:$('.popcontent li').length,
        width:$('.popcontent li').width(),
        popli:$('.popcontent li'),
        page_current:$('.page_current'),
        dotli:$('.dot li'),
        init:function(){
            var close = s.popfn.close;
            var open = s.popfn.open;
            close.on('tap',s.popfn.closed);
            open.on('tap',s.popfn.opened);
            s.popfn.popLRbind();
        },
        closed:function() {
            $(this).parents('.pop').hide();
            s.sec.on({
            'swipeLeft':s.swipeLeft,
            'swipeRight':s.swipeRight
            });
        },
        opened:function() {
            s.sec.off({
            'swipeLeft':s.swipeLeft,
            'swipeRight':s.swipeRight
            });
            $(this).parents('.wrap').next().show();
        },
        popSwipeLeft:function(){
            var current = $('.page_current').index();
            var length = s.popfn.length;
            var page_current = s.popfn.page_current;
            var popli = s.popfn.popli;
            var dotli = s.popfn.dotli;
            if(current<length-1&&s.flag){
                s.flag=false;
                var translate = -(current+1)*25;
                $('.popcontent ul').animate({'-webkit-transform':'translateX('+translate+'%)'},800,'ease-in-out',function(){
                    console.log(1);
                popli.eq(current).removeClass('page_current').next().addClass('page_current');
                dotli.eq(current).removeClass('active').next().addClass('active');
                s.flag=true;
            });
            }else{
                return;
            }
        },
        popSwipeRight:function(){
            var current = $('.page_current').index();
            var length = s.popfn.length;
            var popli = s.popfn.popli;
            var dotli = s.popfn.dotli;
            if(current>0&&s.flag){
                s.flag=false;
                var translate = -(current-1)*25;
                $('.popcontent ul').animate({'-webkit-transform':'translateX(' + translate + '%)'},800,'ease-in-out',function(){
                popli.eq(current).removeClass('page_current').prev().addClass('page_current');
                dotli.eq(current).removeClass('active').prev().addClass('active');
                s.flag=true;
            });
            }else{
                return;
            }
        },
        popLRbind:function(){
            s.popfn.popli.on({
                'swipeLeft':s.popfn.popSwipeLeft,
                'swipeRight':s.popfn.popSwipeRight
            });
        }
    }
复制代码

后面改了之后的就正常了。

复制代码
popfn:{
        close:$('.closed'),
        open:$('.p6_lj'),
        length:$('.popcontent li').length,
        popli:$('.popcontent li'),
        page_current:$('.page_current'),
        dotli:$('.dot li'),
        init:function(){
            var close = s.popfn.close;
            var open = s.popfn.open;
            close.on('tap',s.popfn.closed);
            open.on('tap',s.popfn.opened);
            s.popfn.popLRbind();
        },
        closed:function() {
            $(this).parents('.pop').css('display','none');
            s.sec.on('swipeRight',s.swipeRight);
        },
        opened:function() {
            s.sec.off('swipeRight',s.swipeRight);
            $(this).parents('.wrap').next().css('display','block');
        },
        popSwipeLeft:function(){
            var current = $('.page_current').index();
            var length = s.popfn.length;
            var page_current = s.popfn.page_current;
            var popli = s.popfn.popli;
            var dotli = s.popfn.dotli;
            if(current<length-1&&s.flag){
                s.flag=false;
                var translate = -(current+1)*25;
                $('.popcontent ul').animate({'-webkit-transform':'translate3d('+translate+'%,0,0)'},800);
                popli.eq(current).removeClass('page_current').next().addClass('page_current');
                dotli.eq(current).removeClass('active').next().addClass('active');
                s.flag=true;
            }
        },
        popSwipeRight:function(){
            var current = $('.page_current').index();
            var length = s.popfn.length;
            var popli = s.popfn.popli;
            var dotli = s.popfn.dotli;
            if(current>0&&s.flag){
                s.flag=false;
                var translate = -(current-1)*25;
                $('.popcontent ul').animate({'-webkit-transform':'translate3d(' + translate + '%,0,0)'},800);
                popli.eq(current).removeClass('page_current').prev().addClass('page_current');
                dotli.eq(current).removeClass('active').prev().addClass('active');
                s.flag=true;
            }
        },
        popLRbind:function(){
            s.popfn.popli.on({
                'swipeLeft':s.popfn.popSwipeLeft,
                'swipeRight':s.popfn.popSwipeRight
            });
        }
    }
复制代码

posted on 2017-10-20 10:28  淘才  阅读(305)  评论(0编辑  收藏  举报

导航