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

老师你好,在做这个蓝莓派项目首页时,我在想如果按照视频老师讲的那样去设计,会不会引起比较严重的回流和重绘的问题?例如首页的轮播图,视频里老师讲的是只留一个最外层的div元素,其余的元素全部都通过js动态的创建:

 <!--顶部轮播  这种做法会引起回流和重绘-->
    <div class="dblb"> </div>
//banner.js
(function() {


    //首页轮播图

    //直接进入页面后自动发送Ajax请求
    $.ajax({
        type: 'get',
        url: 'php/getTopSwiperData.php',
        dataType: 'json',
        success: function(res) {
            // console.log(res.swiperinfo);
            var swiperInfoArr = res.swiperinfo;

            //选中swiper容器
            var dblb = document.querySelector('.dblb');

            //构建swiper容器
            var swiperhd = document.createElement('div');
            swiperhd.className = 'swiper-container swiper-hd';
            dblb.appendChild(swiperhd);


            //构建wrapper
            var swiperhd_wraper = document.createElement('div');
            swiperhd_wraper.className = 'swiper-wrapper';
            swiperhd.appendChild(swiperhd_wraper);

            //构建slide
            for (var i = 0; i < swiperInfoArr.length; i++) {

                //每一个slide容器
                var slideDiv = document.createElement('div'); //创建元素
                slideDiv.className = 'swiper-slide'; //给创建的元素添加类名
                slideDiv.style.backgroundImage = 'url("' + swiperInfoArr[i].imgUrl + '")'; //给创建的元素添加背景图片
                swiperhd_wraper.appendChild(slideDiv);

                //每一个slide里面的内容
                var contDiv = document.createElement('div'); //创建元素
                contDiv.className = 'ss-hd-text ani'; //给创建的元素添加类名
                contDiv.setAttribute('swiper-animate-effect', 'bounceInRight'); //创建属性并赋值
                contDiv.setAttribute('swiper-animate-duration', '0.3s'); //创建属性并赋值

                slideDiv.appendChild(contDiv);

                //每一个slide里面的文本标题
                var h1 = document.createElement('h1');
                h1.setAttribute('align', 'center');
                h1.innerHTML = swiperInfoArr[i].dataTitle;
                contDiv.appendChild(h1);

                //每一个slide里面的文本主体内容
                var p = document.createElement('p');
                p.innerHTML = swiperInfoArr[i].dataContent;

                contDiv.appendChild(p);
            }

            //构建wrapper平级的pagination
            var swiperhd_page = document.createElement('div');
            swiperhd_page.className = 'swiper-pagination hd-page';
            swiperhd.appendChild(swiperhd_page);

            //设置自动轮播
            // var mySwiper1 = new Swiper('.swiper-container1', {
            //     pagination: '.swiper-pagination',
            //     autoplay: 2000,
            //     speed: 1000,
            //     autoplayDisableOnInteraction: false,
            //     parallax: true,
            //     loop: true
            // });

            //swiper构建完毕后初始化
            var swiper_hd = new Swiper('.swiper-hd', {
                pagination: '.hd-page',
                onInit: function(swiper) {
                    swiperAnimateCache(swiper); //隐藏动画元素
                    swiperAnimate(swiper); //初始化完成,开始动画
                },
                onSlideChangeEnd: function(swiper) {
                    swiperAnimate(swiper); //每个slide切换结束时也运行当前slide动画
                }
            });



        }
    });


})();

这是按照视频里老师的做法然后设计的轮播图;

然后我就在想可不可以换一种做法,例如首页的乐章部分,我还是像以前的做法那样,把它的静态布局全部写好,只是把需要后台填充的内容部分情况,意思就是只写个框架,然后通过php和js联合去获取后台数据,大致如下:

<!-- 主体内容区域 -->
    <div class="main">
        <!---------------------乐章板块  start -------------------->
        <div class="product p-yz" id="p_yz">
            <a class="p-title" href="#">
                <span class="p-title-c">乐章</span>
                <div class="icon"><img src="" alt="" /></div>
                <span class="p-title-e">MOVEMENT</span>
            </a>
            <div class="p-details">
                <div class="swiper-container" id="swiper-container2">
                    <div class="swiper-wrapper">
                        <!------------------------ 第一屏4个  start----------------------->
                        <div class="swiper-slide swiper-p-yz">
                            <!--产品展示里面的大块,可以动态添加,里面的数据来自后台(需适配)-->
                            <ul class="clearFix">
                                <li class="p-yz-cont clearFix">
                                    <div class="p-yz-cont-L">
                                        <a href="#"><img class="artical-pic" src="" alt="" /></a>
                                    </div>
                                    <div class="p-yz-cont-R">
                                        <a href="#" class="artical-title"></a>
                                        <a href="#" class="author"><span></span></a>
                                        <p class="artical-cont"></p>
                                        <div class="time"> <i class="time-icon"></i><i class="p-yz-date"></i><i class="p-yz-hour_minute1"></i></div>
                                        <div class="zan">
                                            <i class="zan-num"></i>
                                            <i class="zan-icon"></i>
                                            <i class="pl-num"></i>
                                            <i class="pl-icon"></i>
                                        </div>
                                    </div>
                                </li>
                                <li class="p-yz-cont clearFix">
                                    <div class="p-yz-cont-L">
                                        <a href="#"><img class="artical-pic" src="" alt="" /></a>
                                    </div>
                                    <div class="p-yz-cont-R">
                                        <a href="#" class="artical-title"></a>
                                        <a href="#" class="author"><span></span></a>
                                        <p class="artical-cont"></p>
                                        <div class="time"> <i class="time-icon"></i><i class="p-yz-date"></i><i class="p-yz-hour_minute1"></i></div>
                                        <div class="zan">
                                            <i class="zan-num"></i>
                                            <i class="zan-icon"></i>
                                            <i class="pl-num"></i>
                                            <i class="pl-icon"></i>
                                        </div>
                                    </div>
                                </li>
                                <li class="p-yz-cont clearFix">
                                    <div class="p-yz-cont-L">
                                        <a href="#"><img class="artical-pic" src="" alt="" /></a>
                                    </div>
                                    <div class="p-yz-cont-R">
                                        <a href="#" class="artical-title"></a>
                                        <a href="#" class="author"><span></span></a>
                                        <p class="artical-cont"></p>
                                        <div class="time"> <i class="time-icon"></i><i class="p-yz-date"></i><i class="p-yz-hour_minute1"></i></div>
                                        <div class="zan">
                                            <i class="zan-num"></i>
                                            <i class="zan-icon"></i>
                                            <i class="pl-num"></i>
                                            <i class="pl-icon"></i>
                                        </div>
                                    </div>
                                </li>
                                <li class="p-yz-cont clearFix">
                                    <div class="p-yz-cont-L">
                                        <a href="#"><img class="artical-pic" src="" alt="" /></a>
                                    </div>
                                    <div class="p-yz-cont-R">
                                        <a href="#" class="artical-title"></a>
                                        <a href="#" class="author"><span></span></a>
                                        <p class="artical-cont"></p>
                                        <div class="time"> <i class="time-icon"></i><i class="p-yz-date"></i><i class="p-yz-hour_minute1"></i></div>
                                        <div class="zan">
                                            <i class="zan-num"></i>
                                            <i class="zan-icon"></i>
                                            <i class="pl-num"></i>
                                            <i class="pl-icon"></i>
                                        </div>
                                    </div>
                                </li>
                            </ul>
                        </div>
                        <!------------------------ 第一屏4个  end----------------------->

                        <!------------------------ 第二屏4个  start----------------------->
                        <div class="swiper-slide swiper-p-yz">
                            <!--产品展示里面的大块,可以动态添加,里面的数据来自后台(需适配)-->
                            <ul class="clearFix">
                                <li class="p-yz-cont clearFix">
                                    <div class="p-yz-cont-L">
                                        <a href="#"><img class="artical-pic" src="" alt="" /></a>
                                    </div>
                                    <div class="p-yz-cont-R">
                                        <a href="#" class="artical-title"></a>
                                        <a href="#" class="author"><span></span></a>
                                        <p class="artical-cont"></p>
                                        <div class="time"> <i class="time-icon"></i><i class="p-yz-date"></i><i class="p-yz-hour_minute1"></i></div>
                                        <div class="zan">
                                            <i class="zan-num"></i>
                                            <i class="zan-icon"></i>
                                            <i class="pl-num"></i>
                                            <i class="pl-icon"></i>
                                        </div>
                                    </div>
                                </li>
                                <li class="p-yz-cont clearFix">
                                    <div class="p-yz-cont-L">
                                        <a href="#"><img class="artical-pic" src="" alt="" /></a>
                                    </div>
                                    <div class="p-yz-cont-R">
                                        <a href="#" class="artical-title"></a>
                                        <a href="#" class="author"><span></span></a>
                                        <p class="artical-cont"></p>
                                        <div class="time"> <i class="time-icon"></i><i class="p-yz-date"></i><i class="p-yz-hour_minute1"></i></div>
                                        <div class="zan">
                                            <i class="zan-num"></i>
                                            <i class="zan-icon"></i>
                                            <i class="pl-num"></i>
                                            <i class="pl-icon"></i>
                                        </div>
                                    </div>
                                </li>
                                <li class="p-yz-cont clearFix">
                                    <div class="p-yz-cont-L">
                                        <a href="#"><img class="artical-pic" src="" alt="" /></a>
                                    </div>
                                    <div class="p-yz-cont-R">
                                        <a href="#" class="artical-title"></a>
                                        <a href="#" class="author"><span></span></a>
                                        <p class="artical-cont"></p>
                                        <div class="time"> <i class="time-icon"></i><i class="p-yz-date"></i><i class="p-yz-hour_minute1"></i></div>
                                        <div class="zan">
                                            <i class="zan-num"></i>
                                            <i class="zan-icon"></i>
                                            <i class="pl-num"></i>
                                            <i class="pl-icon"></i>
                                        </div>
                                    </div>
                                </li>
                                <li class="p-yz-cont clearFix">
                                    <div class="p-yz-cont-L">
                                        <a href="#"><img class="artical-pic" src="" alt="" /></a>
                                    </div>
                                    <div class="p-yz-cont-R">
                                        <a href="#" class="artical-title"></a>
                                        <a href="#" class="author"><span></span></a>
                                        <p class="artical-cont"></p>
                                        <div class="time"> <i class="time-icon"></i><i class="p-yz-date"></i><i class="p-yz-hour_minute1"></i></div>
                                        <div class="zan">
                                            <i class="zan-num"></i>
                                            <i class="zan-icon"></i>
                                            <i class="pl-num"></i>
                                            <i class="pl-icon"></i>
                                        </div>
                                    </div>
                                </li>
                            </ul>
                        </div>
                        <!------------------------ 第二屏4个  end----------------------->

                        <!------------------------ 第三屏4个  start----------------------->
                        <div class="swiper-slide swiper-p-yz">
                            <!--产品展示里面的大块,可以动态添加,里面的数据来自后台(需适配)-->
                            <ul class="clearFix">
                                <li class="p-yz-cont clearFix">
                                    <div class="p-yz-cont-L">
                                        <a href="#"><img class="artical-pic" src="" alt="" /></a>
                                    </div>
                                    <div class="p-yz-cont-R">
                                        <a href="#" class="artical-title"></a>
                                        <a href="#" class="author"><span></span></a>
                                        <p class="artical-cont"></p>
                                        <div class="time"> <i class="time-icon"></i><i class="p-yz-date"></i><i class="p-yz-hour_minute1"></i></div>
                                        <div class="zan">
                                            <i class="zan-num"></i>
                                            <i class="zan-icon"></i>
                                            <i class="pl-num"></i>
                                            <i class="pl-icon"></i>
                                        </div>
                                    </div>
                                </li>
                                <li class="p-yz-cont clearFix">
                                    <div class="p-yz-cont-L">
                                        <a href="#"><img class="artical-pic" src="" alt="" /></a>
                                    </div>
                                    <div class="p-yz-cont-R">
                                        <a href="#" class="artical-title"></a>
                                        <a href="#" class="author"><span></span></a>
                                        <p class="artical-cont"></p>
                                        <div class="time"> <i class="time-icon"></i><i class="p-yz-date"></i><i class="p-yz-hour_minute1"></i></div>
                                        <div class="zan">
                                            <i class="zan-num"></i>
                                            <i class="zan-icon"></i>
                                            <i class="pl-num"></i>
                                            <i class="pl-icon"></i>
                                        </div>
                                    </div>
                                </li>
                                <li class="p-yz-cont clearFix">
                                    <div class="p-yz-cont-L">
                                        <a href="#"><img class="artical-pic" src="" alt="" /></a>
                                    </div>
                                    <div class="p-yz-cont-R">
                                        <a href="#" class="artical-title"></a>
                                        <a href="#" class="author"><span></span></a>
                                        <p class="artical-cont"></p>
                                        <div class="time"> <i class="time-icon"></i><i class="p-yz-date"></i><i class="p-yz-hour_minute1"></i></div>
                                        <div class="zan">
                                            <i class="zan-num"></i>
                                            <i class="zan-icon"></i>
                                            <i class="pl-num"></i>
                                            <i class="pl-icon"></i>
                                        </div>
                                    </div>
                                </li>
                                <li class="p-yz-cont clearFix">
                                    <div class="p-yz-cont-L">
                                        <a href="#"><img class="artical-pic" src="" alt="" /></a>
                                    </div>
                                    <div class="p-yz-cont-R">
                                        <a href="#" class="artical-title"></a>
                                        <a href="#" class="author"><span></span></a>
                                        <p class="artical-cont"></p>
                                        <div class="time"> <i class="time-icon"></i><i class="p-yz-date"></i><i class="p-yz-hour_minute1"></i></div>
                                        <div class="zan">
                                            <i class="zan-num"></i>
                                            <i class="zan-icon"></i>
                                            <i class="pl-num"></i>
                                            <i class="pl-icon"></i>
                                        </div>
                                    </div>
                                </li>
                            </ul>
                        </div>
                        <!------------------------ 第三屏4个  end----------------------->
                    </div>
                    <!--小圆点 -->
                    <div class="swiper-pagination"></div>
                </div>
            </div>
        </div>
        <!---------------------乐章板块  end -------------------->
    </div>
(function() {
//yuezhang1.js

    //直接进入页面后自动发送Ajax请求
    $.ajax({
        type: 'get',
        url: 'php/yuezhang1Data.php',
        dataType: 'json',
        success: function(res) {

            var yuezhang1info = res.yuezhang1info;

            for (var j = 0; j < yuezhang1info.length; j++) {

                //选择元素
                var artical_pic = document.querySelectorAll('.artical-pic');
                for (var i = 0; i < artical_pic.length; i++) {
                    artical_pic[i].src = yuezhang1info[j].yzPic;
                    // console.log(artical_pic[i]);
                }

                //选择元素
                var artical_title = document.querySelectorAll('.artical-title');
                for (var n = 0; n < artical_title.length; n++) {
                    artical_title[n].innerHTML = yuezhang1info[j].articalTitle;
                }

                //选择元素
                var author = document.querySelectorAll('.author');
                for (var m = 0; m < author.length; m++) {
                    author[m].innerHTML = yuezhang1info[j].author;
                }

                //选择元素
                var artical_cont = document.querySelectorAll('.artical-cont');
                for (var k = 0; k < artical_cont.length; k++) {
                    artical_cont[k].innerHTML = yuezhang1info[j].articalCont;
                }

                //选择元素
                var p_yz_date = document.querySelectorAll('.p-yz-date');
                for (var l = 0; l < p_yz_date.length; l++) {
                    p_yz_date[l].innerHTML = yuezhang1info[j].date;
                }

                //选择元素
                var p_yz_hour_minute1 = document.querySelectorAll('.p-yz-hour_minute1');
                for (var o = 0; o < p_yz_hour_minute1.length; o++) {
                    p_yz_hour_minute1[o].innerHTML = yuezhang1info[j].time;
                }

                //选择元素
                var zan_num = document.querySelectorAll('.zan-num');
                for (var p = 0; p < zan_num.length; p++) {
                    zan_num[p].innerHTML = yuezhang1info[j].zan;
                }

                //选择元素
                var pl_num = document.querySelectorAll('.pl-num');
                for (var p = 0; p < pl_num.length; p++) {
                    pl_num[p].innerHTML = yuezhang1info[j].pl;
                }
            }

            //构建pagination
            var mySwiper1 = new Swiper('#swiper-container1', {
                pagination: '.swiper-pagination',
                autoplay: 2000,
                speed: 1000,
                autoplayDisableOnInteraction: false,
                parallax: true,
                loop: true
            });


            function otherLunbo(swiperContainer) {
                var mySwiper2 = new Swiper(swiperContainer, {
                    pagination: '.swiper-pagination',
                    loop: true,
                    noSwiping: true,
                    autoplayDisableOnInteraction: false
                });
                mySwiper2.params.autoplay = false;
            }
            otherLunbo("#swiper-container2");
            otherLunbo("#swiper-container3");
            otherLunbo("#swiper-container4");
            otherLunbo("#swiper-container5");
        }
    });
})();
<?php
//yuezhang1Data.php
 $success=array('msg'=>'ok');

 //连接数据库 pdo方式
 try{
    $pdo=new PDO('mysql:host=localhost;dbname=lanmeipai;port=3306','root','123456');
   }catch(PDOException $e){
       echo $e->getMessage();
   }

   //设置字符集
   $pdo->exec('set names utf8');

   //查询数据库里的表
   $sql="select *  from index_yzinfo  where 1";

   //prepare()方法负责准备要执行的查询
    //execute()方法使用一组给定的列参数反复地执行查询
    $result=$pdo->prepare($sql);
    $result->execute();

    //绑定数据
    $result->bindColumn(1,$yzPic);//第一例
    $result->bindColumn(2,$articalTitle);//第二例
    $result->bindColumn(3,$author);//第三例
    $result->bindColumn(4,$articalCont);
    $result->bindColumn(5,$date);
    $result->bindColumn(6,$time);
    $result->bindColumn(7,$zan);
    $result->bindColumn(8,$pl);
  

    $info=[];//存放数据

    //循环输出数据库里的数据
    for($i=0;$result->fetch(PDO::FETCH_COLUMN);$i++){
        $info[$i]=array('yzPic'=>$yzPic,'articalTitle'=>$articalTitle,'author'=>$author,'articalCont'=>$articalCont,'date'=>$date,'time'=>$time,'zan'=>$zan,'pl'=>$pl);
    }

    //将索引到的数据放入$success中并进行返回
    $success['yuezhang1info']=$info;
    echo json_encode($success);

//  echo json_encode($success);
?>

但是我发现我这样设计后,数据倒是有,但是为什么每一个小模块里的数据获取的都是数据里的最后一个:


图片.png




图片.png

希望老师能帮我解决这个问题和疑惑。

最后这是我的源代码:

lanmeipai.zip



还有最后想吐槽一下自己,做项目时感觉好多相关知识都模糊了,然后就是边写项目边回去翻看笔记啥的,然后再接着写,

WEB前端全系列/第六阶段:音乐社区高级项目模块/移动端:基于jQuery使用Ajax和BootStrap 47楼

老师你好,接下来要怎样做才能实现将注册的信息写入  loginuserinfo.sql 数据库呀:

//register.js

(function() {

    $('.registBtn').click(function() {

        //获取相关元素
        var regist_username = $('.regist-username').val();
        var regist_password = $('.regist-password').val();
        var regist_password_again = $('.regist-password-again').val();

        //判空操作
        //trim() 去掉字符串两端的多余的空格
        if (regist_username.trim().length == 0 || regist_password.trim().length == 0 || regist_password_again.trim().length == 0) {
            alert('信息不能为空,请确认!');
            return;
        } else if (regist_password != regist_password_again) {
            alert('两次密码不一致!');
            return;
        }

        //发送Ajax请求
        $.ajax({
            type: 'post',
            url: './php/register.php',
            dataType: 'json',
            data: { //发送的数据 uname、upass用来提交到后台
                reuname: regist_username,
                repassword: regist_password,
                repassworda: regist_password_again
            },
            success: function(res) { //回调函数

                switch (res.infoCode) {
                    case 0:
                        {
                            alert('恭喜你,注册成功!请登录!');

                            //注册成功后自动跳转到登录
                            location = '../php/loginFile.php';
                        }
                        break;
                    case 1:
                        {
                            alert('两次密码不一致!');
                        }
                        break;
                    case 2:
                        {
                            alert('登录失败!网络连接失败');
                        }
                        break;
                    case 3:
                        {
                            alert('登录失败!用户名已存在');
                        }
                        break;
                    default:
                        {
                            alert('未知错误');
                        }
                }
            }
        })

        //发送请求完毕后初始化输入框
        $('.regist-username').val();
        $('.regist-password').val();
        $('.regist-password-again').val();

    });
}());
//register.php

<?php
//获取用户从前端发来的数据
$username = $_POST['reuname'];
$password = $_POST['repassword'];
$passworda = $_POST['repassworda'];

$success = array('msg'=>'ok');

//连接数据库
$con = mysqli_connect('localhost','root','123456','lanmeipai');

if($con){
//修改字符集
mysqli_query($con,'set names utf8');
mysqli_query($con,'set character_set_client utf8');
mysqli_query($con,'set character_set_results utf8');

//查询数据并连接
$sql = 'select * from loginuserinfo where 1';
$result=$con->query($sql);


if(){

for(){
  
}

//判断用户传来的用户名和密码是否在数据库里有对应信息
$flag=false;//标示符,默认注册失败


//当循环结束后,判断$flag的值
if(!$flag){
  $success['infoCode']=1;
}
}else{
  $success['infoCode']=3;
}
}else{
  $success['infoCode']=2;//0代表注册成功,1代表注册失败,2代表数据库连接失败,3代表用户名已存在
}

echo json_encode($success);
?>


图片.png







WEB前端全系列/第六阶段:音乐社区高级项目模块/移动端:基于jQuery使用Ajax和BootStrap 48楼
WEB前端全系列/第六阶段:音乐社区高级项目模块/移动端:基于jQuery使用Ajax和BootStrap 49楼
WEB前端全系列/第六阶段:音乐社区高级项目模块/移动端:基于jQuery使用Ajax和BootStrap 50楼

蓝莓派_project.zip

老师,我这个轮播图的图片出不来

WEB前端全系列/第六阶段:音乐社区高级项目模块/移动端:基于jQuery使用Ajax和BootStrap 52楼
WEB前端全系列/第六阶段:音乐社区高级项目模块/移动端:基于jQuery使用Ajax和BootStrap 54楼
WEB前端全系列/第六阶段:音乐社区高级项目模块/移动端:基于jQuery使用Ajax和BootStrap 55楼
WEB前端全系列/第六阶段:音乐社区高级项目模块/移动端:基于jQuery使用Ajax和BootStrap 56楼
WEB前端全系列/第六阶段:音乐社区高级项目模块/移动端:基于jQuery使用Ajax和BootStrap 57楼

蓝莓派_project.zip

老师后台数据穿不来 前台也有问题


WEB前端全系列/第六阶段:音乐社区高级项目模块/移动端:基于jQuery使用Ajax和BootStrap 58楼
WEB前端全系列/第六阶段:音乐社区高级项目模块/移动端:基于jQuery使用Ajax和BootStrap 59楼
WEB前端全系列/第六阶段:音乐社区高级项目模块/移动端:基于jQuery使用Ajax和BootStrap 60楼

课程分类

百战程序员微信公众号

百战程序员微信小程序

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