为了账号安全,请及时绑定邮箱和手机立即绑定

为什么原生js滚动切换没效果,大神来看一看

 <script>
        function getByClassName(obj,cls){
            var els = obj.getElementsByTagName('*');
            var result = [];
            for(var i = 0 ; i<els.length;i++){
                if(els[i].className == cls){
                    result.push(els[i])
                }
            }
            return result;

        }
        function hasClass(obj,cls){
            return obj.className.match(new RegExp("(\\s|^)"+cls+"(\\s|$)"));
        }
        function removeClass(obj,cls){
            if(hasClass(obj,cls)){
                var reg = new RegExp("(\\s|^)"+cls+"(\\s|$)");
                 obj.className = obj.className.replace(reg,'');
            }
            
        }
        function addClass(obj,cls){
            if(!hasClass(obj,cls)){
                obj.className += ' '+ cls;
            }
        }

        window.onload = function(){
            window.onscroll = function(){
                var top = document.documentElement ? document.documentElement.scrollTop : document.body.scrollTop;
                var menus = document.getElementById('menu').getElementsByTagName('a');
                var items = getByClassName(document.getElementById('content'),'item');
                // console.log(items);
                var currentId = '';
                for(var i =0;i<items.length;i++){
                    var _item = items[i];
                    var _top = _item.offsetTop;
                        console.log(_top);                    
                    if(top > _top - 200){
                        currentId = _item.id;
                        console.log(currentId)
                    }else{
                        break;
                    }
                }

                if(currentId ){
                    for(var j =0 ;j<menus.length;j++){
                        var _menu = menus[j];
                        // console.log(_menu);
                        var _href = _menu.href.split('#');
                        // console.log(_href);
                        if(_href[ _href.length - 1] != currentId){
                            removeClass(_menu,'current');
                        } else{
                            addClass(_menu,'current');
                        }
                    }
                }
                
            }
        }
        
        </script>


正在回答

1 回答

你能把html代码也贴出来吗。。这很难看出问题啊。。

0 回复 有任何疑惑可以回复我~
#1

野生前端菜鸟 提问者

问题已经解决了,慕课网的代码有字数限制,没办法全部黏贴上去
2017-01-24 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么原生js滚动切换没效果,大神来看一看

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信