zoukankan      html  css  js  c++  java
  • 根据浏览器的宽度动态设置元素的宽度,使其显示固定的元素个数(点击按钮,元素左右移动)

    function initSlider() {
                var screenWidth = document.documentElement.clientWidth;//浏览器页面的宽度
                var _width = ((screenWidth - 250) / 7 - 18);
                //页面允许显示7个,每一个div的宽度;250是显示区域距离左边的距离,18是每一个div有个18的padding-left;例如一个100px的元素,如果padding-left:10px;则该元素的宽度变为90px;
                $(".l-item").width(_width + 'px');//设置每一个div的宽度
                $(".l-item").eq(6).width((_width - 1) + 'px');
                //设置最后一个div的宽度(因为前面的div的左边框为0,
                //最后一个div有左右两个边框,所以如果和其它元素的宽度相等,则差一个边框的宽度)
            }
            initSlider();

     点击左右按钮,元素左右移动:

    function initSlider() {
                var screenWidth = document.documentElement.clientWidth;//浏览器页面的宽度
                var _width = ((screenWidth - 250) / 7 - 18);
                //页面允许显示7个,每一个div的宽度;250是显示区域距离左边的距离,18是每一个div有个18的padding-left;例如一个100px的元素,如果padding-left:10px;则该元素的宽度变为90px;
                $(".l-item").width(_width + 'px');//设置每一个div的宽度
                $(".l-item").eq(6).width((_width - 1) + 'px');
                //设置最后一个div的宽度(因为前面的div的左边框为0,
                //最后一个div有左右两个边框,所以如果和其它元素的宽度相等,则差一个边框的宽度)
                var btnNum = $(".l-item").length;//获取一共有多少个元素
                var clickNum=btnNum-7;//点击的次数,点击clickNum时,最后一个div显示出来
                var flexWidth=_width*btnNum;//总共包裹的div的宽度
                $('.r-data-flex').css('width',flexWidth);
                //设置包裹这些div的宽度,这样这些小div就不会换行,所以点击按钮时就能左右移动显示全
                $('.next').click(function(){
                    var removeLeft=0-_width;//向左移动的距离
                    $('.r-data-flex').animate({'left':"+="+removeLeft+"px"},500);//动画效果,想左移动
                    index++;
                    if(index==clickNum){   //如果索引值等于点击的次数,则next按钮消失 
                        $('.next').hide();  
                    }else if(index==0){ //如果索引值等于0,则prev按钮消失
                        $('.prev').hide(); 
                    }else{              //其它情况两个按钮均存在
                        $('.prev').show();
                        $('.next').show(); 
                    }
                });
                var index=0;
                $('.prev').click(function(){
                    var removeLeft=0+_width;
                    $('.r-data-flex').animate({'left':"+="+removeLeft+"px"},500);
                    index--;
                    if(index==clickNum){
                        $('.next').hide();  
                    }else if(index==0){
                        $('.prev').hide(); 
                    }else{
                        $('.prev').show();
                        $('.next').show(); 
                    }
                    
                });
            }
            initSlider();

     封装函数后:

     function initSlider() {
                var screenWidth = document.documentElement.clientWidth;//浏览器页面的宽度
                var _width = ((screenWidth - 250) / 7 - 18);
                //页面允许显示7个,每一个div的宽度;250是显示区域距离左边的距离,18是每一个div有个18的padding-left;例如一个100px的元素,如果padding-left:10px;则该元素的宽度变为90px;
                $(".l-item").width(_width + 'px');//设置每一个div的宽度
                $(".l-item").eq(6).width((_width - 1) + 'px');
                //设置最后一个div的宽度(因为前面的div的左边框为0,
                //最后一个div有左右两个边框,所以如果和其它元素的宽度相等,则差一个边框的宽度)
                var btnNum = $(".l-item").length;//获取一共有多少个元素
                var clickNum=btnNum-7;//点击的次数,点击clickNum时,最后一个div显示出来
                var flexWidth=_width*btnNum;//总共包裹的div的宽度
                $('.r-data-flex').css('width',flexWidth);
                //设置包裹这些div的宽度,这样这些小div就不会换行,所以点击按钮时就能左右移动显示全
                
                var index=0;
                clickMove('next');
                clickMove('prev');
    
                function clickMove(obj){
                var objArgument='.'+obj;
                $(objArgument).click(function(){
                    if(obj=="prev"){
                        var removeLeft=0+_width;
                        index--;
                    }else{
                        var removeLeft=0-_width;
                        index++;
                    }
                    $('.r-data-flex').animate({'left':"+="+removeLeft+"px"},500);
                    judgeIndex(index);
                });
                }
                function judgeIndex(index){
                    if(index==clickNum){   //如果索引值等于点击的次数,则next按钮消失 
                        $('.next').hide();  
                    }else if(index==0){ //如果索引值等于0,则prev按钮消失
                        $('.prev').hide(); 
                    }else{              //其它情况两个按钮均存在
                        $('.prev').show();
                        $('.next').show(); 
                    }
                }
            }
            initSlider();
  • 相关阅读:
    服务器端渲染和客户端渲染
    混沌开窍---24幅由算法生成的正方形图像
    三生万物---算法生成的25幅三角形图像
    九尾之火---算法生成的动画图像
    最简单的分形图像生成算法
    正与邪---25幅由算法生成的五角星图像
    一幅画<十六芒星盾>---程序员or艺术家
    火火火---12幅算法生成火的图像
    恶魔的指纹---49幅由算法生成的七芒星图像
    混沌分形之电子云
  • 原文地址:https://www.cnblogs.com/xiaozhumaopao/p/5916989.html
Copyright © 2011-2022 走看看