运行效果有问题

运行效果有问题

# 具体遇到的问题
Chrome运行效果有问题
# 报错信息的截图

# 相关课程内容截图

# 尝试过的解决思路和结果

# 粘贴全部相关代码,切记添加代码注释(请勿截图)

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <title>Document</title>

    <style>

        * {

            margin0px;

            padding0px;

        }

        .content-part {

            width676px;

            background-color: gray;

            margin0px auto;

            margin-bottom50px;

            font-size60px;

        }

        ul {

            width100px;

            height500px;

            background-color: orange;

            position: fixed;

            right10px;

            top50%;

            margin-top-250px;

            

        }

        ul li {

            width100px;

            height90px;

            margin-bottom10px;

            /* font-size: 30px; */

            cursor: pointer;

            text-align: center;

            list-style: none;

            line-height90px;

        }

        ul li.current {

            background-color: purple;

            color: aliceblue;

        }

    </style>

</head>

<body>

    <ul id="list">

        <li data-n="科技" class="current">科技</li>

        <li data-n="体育">体育</li>

        <li data-n="新闻">新闻</li>

        <li data-n="娱乐">娱乐</li>

        <li data-n="视频">视频</li>

    </ul>

    <section class="content-part" style="height: 674px;" data-n="科技">

        科技栏目

    </section>

    <section class="content-part" style="height: 567px;" data-n="体育">

        体育栏目

    </section>

    <section class="content-part" style="height: 739px;" data-n="新闻">

        新闻栏目

    </section>

    <section class="content-part" style="height: 274px;" data-n="娱乐">

        娱乐栏目

    </section>

    <section class="content-part" style="height: 1000px;" data-n="视频">

        视频栏目

    </section>


    <script>

        //获取列表的节点

        var list = document.getElementById('list');

        var contents = document.querySelectorAll('.content-part');

        var lis = document.querySelectorAll('#list li')


        //事件委托

        list.onclick = function(e) {

            if(e.target.tagName.toLowerCase()=='li') {

                //获取列表项中的data-n的值

                var n = e.target.getAttribute('data-n');

                //寻找data-n值相同的栏目

                var contentPart = document.querySelector('.content-part[data-n='+n+']');

                //将此栏目的offsetTop值传给document.documentElement.scrollTop

                document.documentElement.scrollTop = contentPart.offsetTop;

            }

        }


        //第一步,获取所有栏目的offsetTop并推入一个数组

        //第二部,添加浏览器卷动事件,并将卷动的距离与数组中固定好用来测量的距离进行比对,判断在哪一个楼层,然后对该楼层的导航条进行交互设置

        var offsetArr = [];

        //节流锁

        var nowfloor = -1;


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

            offsetArr.push(contents[i].offsetTop);

        } 

        offsetArr.push(Infinity);

        // console.log(offsetArr);


        window.onscroll = function() {

            var scroll = document.documentElement.scrollTop;

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

                if(scroll>=offsetArr[i]&&scroll<offsetArr[i+1]) {

                    break;

                }

            } 

            if(nowfloor!=i) {

                console.log(i);

                nowfloor = i;


                //循环排他法进行重点楼层设置

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

                    if(j==i) {

                        lis[j].className = 'current';

                    }else {

                        lis[j].className = '';

                    }

                }

            }

        }

    </script>

</body>

</html>


正在回答

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

3回答

同学你好,老师反复测试,也没有出现同学说的问题,效果是对的:http://img1.sycdn.imooc.com//climg/5fb363a90a75b95313160890.jpg

而且代码也没有错误,应该是同学浏览器自身的问题,如果其他浏览器能正常测试效果,那么可以忽视一下该问题。

祝学习愉快!

  • qq_慕仙8338401 提问者 #1
    嗯,我试了一下火狐浏览器也没有问题,应该是这样的,谢谢老师
    2020-11-17 13:49:54
qq_慕仙8338401 提问者 2020-11-17 11:29:31

我也不知道到底是怎么回事,我这个Chrome浏览器打开就有问题,如图,我点击的是‘新闻’,但是右边并没有输出2,而且新闻一栏也没有变成紫色,左边倒是跳转了,老师您看看可能是什么问题,实在不行的话只能先搁置了。

http://img1.sycdn.imooc.com//climg/5fb3436809e033e917990693.jpg

好帮手慕久久 2020-11-17 11:13:24

同学你好,老师测试了一下,在谷歌浏览器上效果是正常的,如下:

http://img1.sycdn.imooc.com//climg/5fb33f680aaa443712280930.jpg

同学所说的问题,具体是指什么呢?可以具体说明一下(可以配合截图),以便老师尽快为你解答问题。

祝学习愉快!

  • 提问者 qq_慕仙8338401 #1
    老师您看下我发的截图
    2020-11-17 11:30:02
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

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