js--手机头像点击显示按钮的位置自适应

Posted _江江江江

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js--手机头像点击显示按钮的位置自适应相关的知识,希望对你有一定的参考价值。

在手机页面的中,头像显示的div,第一行的最后一个为点击显示更多的按钮(more),因为手机宽度的大小不一致,所以每行显示的头像个数也不一致,more按钮的位置总是固定在最后一排,所以需要通过计算屏幕宽度的大小,然后根据每个li的大小算出一行中最多能放几个,然后在将more通过js插入,如下图

iPhone5 显示如下:

iPhone6 显示如下:

一下贴代码:

html

<div class="pic">
        <ul>
            <li><img src="img/d.png" alt=""/></li>
            <li><img src="img/d.png" alt=""/></li>
            <li><img src="img/d.png" alt=""/></li>
            <li><img src="img/d.png" alt=""/></li>
            <li><img src="img/d.png" alt=""/></li>
            <li><img src="img/d.png" alt=""/></li>
            <li><img src="img/d.png" alt=""/></li>
            <li><img src="img/d.png" alt=""/></li>
            <li><img src="img/d.png" alt=""/></li>
            <li><img src="img/d.png" alt=""/></li>
            <li><img src="img/d.png" alt=""/></li>
            <li><img src="img/d.png" alt=""/></li>
            <li><img src="img/d.png" alt=""/></li>
            <li class="last"></li>
        </ul>
    </div>

  

 CSS

       .pic{
            height: 100px;
            overflow: hidden;
        }
        .pic ul{
            padding: 0 20px;
        }
        .pic ul li{
            width: 60px;
            height: 60px;
            margin: 20px 10px 20px 15px;
            float: left;
            border-radius: 50%;
            text-align: center;
            line-height: 55px;
        }
        .pic ul li img {
            padding: 0;
        }
        .pic li.more{
            margin-right: 0px;
            background: url(img/more.png) no-repeat center center;
        }
        .pic li.last{
            background: url(img/more.png) no-repeat center center;
        }

js代码

function loadPage(){
            var clientW = $(window).width();
            /*===================*/

            /*===================*/
           /*===================*/

            $(".last").hide();//设置最后一个点击为收起头像框
            //设置.more的位置, 根据不同的宽度设置起位置
            /*===================*/
            /*===================*/
            var lis =$(".pic").find("li").length;
            //如果所有的li
            var index = parseInt((clientW-70)/80);//一行能装多少个,  在此基础上-1 表示一行中的左后一位置

           // alert($(".pic ul"));
            if(index < lis){
                $(".pic").find("li").eq(index-1).before("<li class=\'more\'></li>");//关键,精髓所在

            }


        }
$(".more").click(function(){//点击显示
            $(".last").show();
            $(".pic").css("overflow", "visible");
            $(".pic ul").css("padding-right", "0");
            $(this).hide();
        });
        $(".last").click(function(){//点击隐藏
            $(".pic").css("overflow", "hidden");
            $(".more").show();
            $(".pic ul").css("padding-right", "20px");
            $(this).hide();
        });

 

这个功能效果图如下

点击前

点击后

 在点击就还是隐藏

以上是关于js--手机头像点击显示按钮的位置自适应的主要内容,如果未能解决你的问题,请参考以下文章

想用jQuery mobile js 做网页的自适应大小宽度的改变,就是当网页宽度变小时页面还是显示的原来所有内容

在片段活动中显示自定义对话框

jsp中js实现点击按钮更改背景图片代码怎么写?

如何让网页自动适应显示器不同的“分辨率”?

为啥我修改了头像,不显示

怎样设置微信头像下面显示自己的手机号?