会员可以在此提问,百战程序员老师有问必答
对大家有帮助的问答会被标记为“推荐”
看完课程过来浏览一下别人提的问题,会帮你学得更全面
截止目前,同学们一共提了 134113个问题

window.onload = function() {
    waterFlow();
    // 准备上拉加载的数据
    var dataImage = {
        data: [
            { src: "./images/1.jpeg" },
            { src: "./images/2.jpeg" },
            { src: "./images/3.jpeg" },
            { src: "./images/4.jpeg" },
            { src: "./images/5.jpeg" },
            { src: "./images/6.jpeg" },
            { src: "./images/7.jpeg" },
            { src: "./images/8.jpeg" },
            { src: "./images/9.jpeg" },
            { src: "./images/10.jpeg" },
            { src: "./images/11.jpg" },
        ]
    };
    window.onscroll = function() {
        if (checkReachBottom()) {
            console.log("hhh");
            var parentContainer = document.querySelector(".container");
            for (var i = 0; i < dataImage.data.length; i++) {
                var img = document.createElement("img");
                img.setAttribute("src", dataImage.data[i].src);
                var boximg = document.createElement("div");
                boximg.setAttribute("class", "boximg");
                boximg.appendChild(img);
                var box = document.createElement("div");
                box.setAttribute("class", "box");
                box.appendChild(boximg);
                parentContainer.appendChild(box);

            }
            // 新加载的数据要添加瀑布流效果
            waterFlow();
        }
    }
};
// 1. 动态设置页面左右居中
function waterFlow() {
    // 获取父级容器
    var parentContainer = document.querySelector(".container");
    // console.log(parentContainer);
    //获取所有子元素
    var allChild = document.querySelectorAll(".box");
    // console.log(allChild);
    //获取屏幕宽度
    var screenWidth = document.documentElement.clientWidth;
    //获取一个图片容器的宽度
    var childWidth = allChild[0].offsetWidth;
    //计算屏幕水平方向最多能摆放的图片个数
    var rowsNum = Math.floor(screenWidth / childWidth) - 1;
    // 让左右居中
    parentContainer.style.cssText = "width:" + rowsNum * childWidth + "px;margin:0 auto;";

    getMinHeightOfCols(allChild, rowsNum);
};


// 2. 动态设置图片位置
function getMinHeightOfCols(allChild, rowsNum) {
    //存储每一列的高度
    var colsHeightArr = [];
    for (var i = 0; i < allChild.length; i++) {
        // 判断取出第一行的图片,获取图片对应的高度,放入到数组中
        if (i < rowsNum) { //i=6
            // 获取当前图片的高度
            colsHeightArr[i] = allChild[i].offsetHeight;
        } else {
            // 获取列高度最小的值
            var minHeightOfCols = Math.min.apply(null, colsHeightArr);
            // 获取最小值对应的下标
            var minHeightOfIndex = colsHeightArr.indexOf(minHeightOfCols);
            // 摆放第二张图片的位置
            allChild[i].style.position = "absolute";
            allChild[i].style.top = minHeightOfCols + "px";
            allChild[i].style.left = allChild[minHeightOfIndex].offsetLeft + "px";
            // 高度合并
            colsHeightArr[minHeightOfIndex] = colsHeightArr[minHeightOfIndex] + allChild[i].offsetHeight;

        }
    }
};

// 3. 判断页面触底
// 逻辑:滚动高度+视口高度=文档总高度
// 业务:滚动高度+视口高度>文档总高度-100px(或者是最后一张图片的高度)
function checkReachBottom() {
    // 获取滚动高度
    var scrollHeight = document.documentElement.scrollTop;
    // 获取视口高度
    var pageHeight = document.documentElement.clientHeight;
    // 获取最后一个元素
    var allChild = document.querySelectorAll(".box");
    var lastChildTop = allChild[allChild.length - 1].offsetTop; //最后一个元素
    return lastChildTop < pageHeight + scrollHeight ? true : false;
}

老师,为什么我把网页缩小,上拉加载就能成功,网页最大化不行呢?

WEB前端全系列/第二阶段:JavaScript编程模块/DOM模型 33601楼
JAVA 全系列/第四阶段:数据库与AI协同技术实战/JDBC技术 33603楼
Python全系列/第二阶段:Python 深入与提高/异常机制 33608楼
JAVA 全系列/第八阶段:生产环境部署与协同开发/Linux 33610楼
JAVA 全系列/第九阶段:Spring Boot实战/Spring Boot 33611楼
JAVA 全系列/第一阶段:AI驱动的JAVA编程/IDEA的使用和第一个java项目 33612楼

老师为什么显示这种内容呢

'builtin_function_or_method' object has no attribute 'width'

image.png

这是报错信息

源码

pygame pg
time
random
screen_width=screen_height=bgcolor=pg.Color(,,)
rcolor=pg.Color(,,)
MainGame:
    window=my_tank=enemy_tankList=[]
    enemy_tankCount=myBulletList=[]
    __init__(self):
        startGame(self):
        pg.display.init()
        MainGame.window=pg.display.set_mode([screen_width,screen_height])
        MainGame.my_tank = Tank(, )
        self.creatEnemyTank()
        pg.display.set_caption()


        :
            time.sleep()
            MainGame.window.fill(bgcolor)
            self.getEvent()
            MainGame.window.blit(self.getTextSurface(%len(MainGame.enemy_tankList)),(,))
            MainGame.my_tank.displayTank()
            self.biltenemyTank()
            self.blitMyBullet()
            MainGame.my_tank.stop:
                MainGame.my_tank.move()
            pg.display.update()
creatEnemyTank(self):
        top=i range (MainGame.enemy_tankCount):
            left=random.randint(,)
            speed=random.randint(,)
            enemy=EnemyTank(left, top, speed)
            MainGame.enemy_tankList.append(enemy)
    biltenemyTank(self):
        enemyTank MainGame.enemy_tankList:
            enemyTank.displayTank()
            enemyTank.randMove()
    blitMyBullet(self):
        MyBullet MainGame.myBulletList:
            MyBullet.displayBullet()
            MyBullet.randMove()





    endGame(self):
        print()
        exit()
getTextSurface(self,text):
        pg.font.init()
        font=pg.font.SysFont(,)
        textSurface=font.render(text,,rcolor)
        textSurface
getEvent(self):
        eventList=pg.event.get()
        event eventList:
            event.type==pg.QUIT:
                self.endGame()
            event.type==pg.KEYDOWN:

                event.key==pg.K_LEFT:
                    MainGame.my_tank.stop = MainGame.my_tank.direction=print()
                event.key==pg.K_RIGHT:
                    MainGame.my_tank.stop = MainGame.my_tank.direction = print()
                event.key==pg.K_UP:
                    MainGame.my_tank.stop = MainGame.my_tank.direction = print()
                event.key==pg.K_DOWN:
                    MainGame.my_tank.stop = MainGame.my_tank.direction = print()
                event.key== pg.K_SPACE:
                    print()
                    MyBullet=Bullet(MainGame.my_tank)
                    MainGame.MyBulletList.append(MyBullet)
            event.type==pg.KEYUP:
                event.key==pg.K_UP event.key==pg.K_DOWN event.key==pg.K_LEFT event.key==pg.K_RIGHT:
                    MainGame.my_tank.stop=Tank:
__init__(self,left,top):
        self.images={:pg.image.load(),
                     : pg.image.load(),
                     : pg.image.load(),
                     : pg.image.load()}
        self.direction=self.image=self.images[self.direction]
        self.rect=self.image.get_rect()
        self.rect.top=top
        self.rect.left=left
        self.speed=self.stop=move(self):
        self.direction==:
            self.rect.left > :
                self.rect.left-=self.speed
        self.direction==:

            self.rect.left+self.rect.height<screen_width:
                self.rect.left += self.speed
        self.direction==:

            self.rect.top>:
                self.rect.top -= self.speed
        self.direction==:

            self.rect.top+ self.rect.height < screen_height:
                self.rect.top += self.speed


    shot(self):
        displayTank(self):
        self.image=self.images[self.direction]
        MainGame.window.blit(self.image,self.rect)
MyTank(Tank):
    __init__(self):
        EnemyTank(Tank):
    __init__(self,left,top,speed):
        self.images={:pg.image.load(),
                     : pg.image.load(),
                     : pg.image.load(),
                     : pg.image.load()}
        self.direction=self.randDirection()
        self.image=self.images[self.direction]
        self.rect=self.image.get_rect()
        self.rect.left=left
        self.rect.top=top
        self.rect.left=left
        self.speed=speed
        self.flag=self.step=randDirection(self):
        num=random.randint(,)
        num==:
            num==:
            num==:
            num==:
            randMove(self):
        self.step<=:
            self.direction=self.randDirection()
            self.step=:
            self.move()
            self.step-=Bullet():
    __init__(self,tank):
        self.image=pg.image.load()
        self.direction=tank.direction
        self.rect=self.image.get_rect
        self.direction==:
            self.rect.left=int(tank.rect.left+tank.rect.width/-self.rect.width/)
            self.rect.top=int(tank.rect.top-self.rect.height)
        self.direction==:
            self.rect.left=int(tank.rect.left+tank.rect.width/-self.rect.width/)
            self.rect.top=int(tank.rect.top+tank.rect.height)
        self.direction==:
            self.rect.left=int(tank.rect.left-self.rect.width/-self.rect.width/)
            self.rect.top=int(tank.rect.top+tank.tect.width/-self.rect.width/)
        self.direction==:
            self.rect.left=int(tank.rect.left+tank.rect.width)
            self.rect.top=int(tank.rect.top+tank.tect.width/-self.rect.width/)
        self.speed=move(self):
        displayBullet(self):
        MainGame.window.blit(self.image,self.rect)
Wall():
    __init(self):
        displayWall(self):
        Explore():
    __init__(self):
        displayExplore(self):
        Music():
    __init__(self):
        play(self):
        __name__==:
    MainGame().startGame()


Python全系列/第二阶段:Python 深入与提高/游戏开发-坦克大战 33615楼

课程分类

百战程序员微信公众号

百战程序员微信小程序

©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园
网站维护:百战汇智(北京)科技有限公司
京公网安备 11011402011233号    京ICP备18060230号-3    营业执照    经营许可证:京B2-20212637