jquery 布局问题

jquery 布局问题

http://img1.sycdn.imooc.com/climg//599fd2bc00014b7407580222.jpg为啥在开始总是报错,明明没有问题吗,我也引用html外部文件了啊

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

6回答
一路电光带火花 2017-08-25 22:06:23

你跟着老师的视频去敲吧,跟着敲还能出错,这错误就太难找了~我就是跟着老师敲的,一个效果一个效果的去实现

提问者 幕布斯1509990 2017-08-25 19:07:15

现在又是错误不断 说找不到高度了 everyHeight[i]=boxes[i].height()+40;这句没有问题啊

$(document).ready(function(e){

  var main= $('#main')

  var boxes= $('#main').children('div');

  waterfall(main,boxes);


  });

  function waterfall(main,boxes){ //> 空格,是包含元素>代表所有main下的div 而空格是代表main下的所有子元素

  var boxes= $('#main').children('div');

  var boxWidth=boxes.eq(0).width()+40;//outerWidth代表宽度+padding+边框的值

  var windowWidth=$(window).width();

  var colsNumber=Math.floor(windowWidth/boxWidth);


    //设置容器的宽度

  main.width(boxWidth*colsNumber).css('margin','0 auto');

    //定义每个高度

  var everyHeight= new Array();

   for (var i = 0;i<boxes.length ;i++) {

    if(i < colsNumber){

    everyHeight[i]=boxes[i].height()+40;

    }

    else{

    var minHeight=Math.min.apply(null,everyHeight)

    //var index= minIndex(everyHeight,minHeight)

        var index=$.inArray(minHeight,everyHeight);


       boxes.eq(i).style.position='absolute';

            boxes.eq(i).style.top=minHeight+'px';

            boxes.eq(i).style.left=boxwidth*index+'px';

            boxes.eq(i).style.left=boxes.eq(index).offsetLeft+'px';

            everyHeight.eq(index)+=boxes.eq(i).offsetHeight+20;

            

    }

    }

  }


怎么都被占用了呢 2017-08-25 17:38:32

你看看你的width()方法是不是拼错了,要小写的

  • 提问者 幕布斯1509990 #1
    $(document).ready(function(e){ var main= $('#main') var boxes= $('#main').children('div'); waterfall(main,boxes); }); function waterfall(main,boxes){ //> 空格,是包含元素>代表所有main下的div 而空格是代表main下的所有子元素 var boxes= $('#main').children('div'); var boxWidth=boxes.eq(0).width()+40;//outerWidth代表宽度+padding+边框的值 var windowWidth=$(window).width(); var colsNumber=Math.floor(windowWidth/boxWidth); //设置容器的宽度 main.width(boxWidth*colsNumber).css('margin','0 auto'); //定义每个高度 var everyHeight= new Array(); for (var i = 0;i<boxes.length ;i++) { if(i < colsNumber){ everyHeight[i]=boxes[i].height()+40; } else{ var minHeight=Math.min.apply(null,everyHeight) //var index= minIndex(everyHeight,minHeight) var index=$.inArray(minHeight,everyHeight); boxes.eq(i).style.position='absolute'; boxes.eq(i).style.top=minHeight+'px'; boxes.eq(i).style.left=boxwidth*index+'px'; boxes.eq(i).style.left=boxes.eq(index).offsetLeft+'px'; everyHeight.eq(index)+=boxes.eq(i).offsetHeight+20; } } }
    2017-08-25 19:06:05
提问者 幕布斯1509990 2017-08-25 17:31:42

还是出错呢

提问者 幕布斯1509990 2017-08-25 17:31:20
小丸子爱吃菜 2017-08-25 16:28:55

文档加载完毕再运行脚本的简写有:

$(document).ready(function(){});
$().ready(function(){});

如果function重要写参数,写e就行,没有evevt这个写法!

祝学习愉快!

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
前端小白入门系列课程
  • 参与学习           人
  • 提交作业       11218    份
  • 解答问题       36713    个

从一个不会编程的小白到一个老司机是需要过程的,首先得入门,学习基础知识,然后才能进阶,最后再到精通,本专题是你走进前端世界的不二选择!

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师