• js之隔行换色


    HTML
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8" />
    <title>加载更多</title>
    <style type="text/css">
        .list li{
            padding: 10px;
            line-height: 15px;
        }
        .list a{
            float: right;
        }
        .loadMore{
            text-align: center;
            line-height: 50px;
            background: #ccc;
        }
        .loadMore:hover{
            background: #f99;
            color: #9ff;
            font-size: 18px;
            font-weight: 900;
            cursor: pointer;
        }
    </style>
    </head>
    <body>
        <ul class="list">
            <li>这是第1个新闻<a href="javascript:;">×</a></li>
            <li>这是第2个新闻<a href="javascript:;">×</a></li>
            <li>这是第3个新闻<a href="javascript:;">×</a></li>
            <li>这是第4个新闻<a href="javascript:;">×</a></li>
            <li>这是第5个新闻<a href="javascript:;">×</a></li>
            <li>这是第6个新闻<a href="javascript:;">×</a></li>
            <li>这是第7个新闻<a href="javascript:;">×</a></li>
            <li>这是第8个新闻<a href="javascript:;">×</a></li>
            <li>这是第9个新闻<a href="javascript:;">×</a></li>
            <li>这是第10个新闻<a href="javascript:;">×</a></li>
            <li>这是第11个新闻<a href="javascript:;">×</a></li>
            <li>这是第12个新闻<a href="javascript:;">×</a></li>
            <li>这是第13个新闻<a href="javascript:;">×</a></li>
            <li>这是第14个新闻<a href="javascript:;">×</a></li>
            <li>这是第15个新闻<a href="javascript:;">×</a></li>
            <li>这是第16个新闻<a href="javascript:;">×</a></li>
            <li>这是第17个新闻<a href="javascript:;">×</a></li>
            <li>这是第18个新闻<a href="javascript:;">×</a></li>
            <li>这是第19个新闻<a href="javascript:;">×</a></li>
        </ul>
        <div class="loadMore">加载更多</div>
        <script src="js/common.js"></script>
        <script src="js/index.js"></script>
    </body>
    </html>
     
    

      

     
    JS
    Common
    //通过类名获取元素样式
    function byClassName(sClassName){
        if(document.getElementsBYClassName){
            return document.getElementsByClassName(sClassName);
        } else {
            var allTagsName = document.getElementsByTagName('*');
            var result = [];
            for(var i = 0; i<allTagsName.length;i++){
                if(allTagsName[i].className === sClassName){
                    result.push(allTagsName[i]);
                }
            }
            return result;
        }
    }
    //通过Id获取元素样式
    function $(id){
        return document.getElementById(id);
    }
    //获取元素的实际样式
    function getStyle(obj,attr){
        if(obj.currentStyle){
            return obj.currentStyle[attr];
        } else {
            return document.getComputedStyle(obj,false)[attr];
        }
    }
    //多属性缓冲运动
    function bufferMove(obj,target,fn,ratio){
        var ratio = ratio || 8;
        clearInterval(obj.timer);
        obj.timer = setInterval(function(){
            var allOk = true;
            for(var attr in target){
                var cur = 0;
                if(attr === 'opacity'){
                    cur = parseInt(getStyle(obj,'opacity') * 100);
                } else {
                    cur = parseInt(getStyle(obj,attr));
                }
                var speed =(target[attr] - cur) / ratio;
                speed = speed > 0 ? Math.ceil(speed) : Math.floor(speed);
                var next = speed + cur;
                if(attr === 'opacity'){
                    obj.style.opacity = next + 'px';
                    obj.style.opacity = 'alpha(opacity= ' + next + ') ';
                } else {
                    obj.style[attr] = next + 'px';
                }
                if(next !== target[attr]){
                    allOk = false;
                }
            }
            if(allOk){
                clearInterval(obj.timer);
                if(fn){
                    fn();
                }
            }
        },50)
    }
    //添加事件兼容,绑定多个事件
    function bindEvent(obj,type,fn){
        if(obj.addEventListener){
            obj.addEventListener(type,fn);
        } else {
            obj.attachEvent('on' + type,fn);
        }
    }
     
    function ajax({type,data,url,async,beforeSend,success,complete}){
        var async = async || true;
    //    创建对象
        var xhr = new XMLHttpRequest();
    //    字符串的拼接
            if(typeof data === 'object'){
                var str = '';
                for(var attr in data){
                    str += encodeURIComponent(attr) + '=' + encodeURIComponent(data[attr]) + '&';
                }
                data = str.slice(0,-1);
            }
        if(type.toUpperCase() === 'GET' && data){
            url += '?' + data;
        }
    //    配置
        xhr.open(type,url,async);
    //    接收数据
        xhr.onreadystatechange = function(){
            if(xhr.readyState === 4){
                if(xhr.status === 200){
                    success && success(xhr.responseText);
                }
                complete && complete();
            }
        };
    //    发送
        beforeSend && beforeSend();
        if(type.toUpperCase() === 'POST'){
            xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
            xhr.send(data);
        } else {
            xhr.send();
        }
    }
     
    JS
    //各行变色
    var oList = byClassName('list')[0];
    var oLoadMore = byClassName('loadMore')[0];
    var oLi = oList.children;
    for(var i = 0 ; i<oLi.length;i++){
        if(i % 2 === 0){
            oLi[i].style.backgroundColor = '#ccc';
        }
        oLi[i].index = i;
        oLi[i].onmouseover = function(){
            this.style.backgroundColor = '#9ff';
        }
        oLi[i].onmouseout = function(){
            if(this.index % 2 === 0){
                this.style.backgroundColor = '#ccc';
            } else {
                this.style.backgroundColor = '#fff';
            }
        }
    }
    //添加删除功能
    oList.onclick = function(ev){
        var e = ev || window.event;
        var o = e.target || e.srcElement;
        if(o.nodeName === 'A'){
            oList.removeChild(o.parentNode);
        }
    }
    //加载更多点击事件
    oLoadMore.onclick = function(){
        ajax({
            type: 'post',
            url:  'news.php',
            success: function(data){
                data = JSON.parse(data);
    console.log(data);
                data.forEach(v => {
                    var oNewLi = document.createElement('li');
                    oNewLi.innerHTML = '<a href="javascript">×</a>' + v;
                    oList.appendChild(oNewLi);
                })
            }
        })
    }
    

      

     
     
  • 相关阅读:
    梅特卡夫法则(Metcalfe's law)
    jffs2reset 实现分析
    uhttpd配置文件分析
    疑问????
    ubuntu 修改root密码
    原始套接字
    位操作
    linux命令readlink
    awk 中 FS的用法
    Python做简单爬虫(urllib.request怎么抓取https以及伪装浏览器访问的方法)
  • 原文地址:https://www.cnblogs.com/bgwhite/p/9476781.html
Copyright © 2020-2023  润新知