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


    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();
  • 相关阅读:
    2021年通达信指标公式大全,值得收藏!
    网络兼职?威客?为什么我会觉得网络兼职,威客会是人生中应该具备的一种能力!
    SeMusic 音乐网站源代码,PHP音乐系统,人人都是站长人人都可副业创业!
    JavaScript 查看图片,带缩放放大效果
    JS (javascript) 计算循环当前时间,javascript 时间钟表
    关键词被冷藏?关键词没排名?任务网站长们该何去何从?
    关键词任务网被K,对于任务网该何去何从?我认为任务网存活只有一条出路!
    C3属性的轮播图(持续更新)
    自己写的文字轮播(简陋版)
    带锁的3D切割轮播图
  • 原文地址:https://www.cnblogs.com/xiaozhumaopao/p/5916989.html
Copyright © 2020-2023  润新知