• 鼠标经过时的提示弹窗样式(小箭头样式)

    发表于 2021-09-03 14:43:41   |   下载附件
    tipshover弹窗提示弹窗样式
  • 数组删除函数,用于 push 后的 delete,对应操作

    发表于 2021-08-31 11:33:47   |   下载附件
    Array.prototype.remove数组删除函数Array push 后的 delete
    // 数组删除函数
    Array.prototype.remove = function(val) { 
    	var index = this.indexOf(val); 
    	if (index > -1) { 
    		this.splice(index, 1); 
    	} 
    };
  • 常用英语单词

    发表于 2021-08-20 18:33:52   |   下载附件
    英语单词计算机单词计算机常用单词
    file n. 文件;v. 保存文件
    command n. 命令,指令
    use v. 使用,用途
    program n. 程序
    line n. (数据,程序)行,线路
    if conj. 如果
     …… 略
  • canvas 绘制环形进度条动画效果

    发表于 2021-06-23 10:15:54   |   下载附件
    环形进度条canvas 绘制环形进度条
  • Nodejs 读取文件目录下的所有文件,修改重命名文件

    发表于 2021-04-26 18:18:16   |   下载附件
    NodeNodejs读取目录下的文件

    nodejs 读取指定目录下的所有文件,并生成JSON


    // 文件对象
    let fs = require('fs');
    // 数组JSON
    let minfiles_array = [];
    // 读取static下面的所有文件
    const basePath = './';
    // 获取文件
    let getFile = function(basePath){
        const files = fs.readdirSync(basePath);
        files.forEach(function(item, index) {
            // fs.stat(fileName1, (err, stats) => {
            //     if (err) throw err
            //     console.log('文件属性:',
            //         stats)
            // })
            let stat = fs.lstatSync(basePath + item);
            // 如果是一个文件夹
            if (stat.isDirectory() === true) {
                // 继续遍历
                getFile(basePath + item + '/');
            }else{
                // 检查同名原文件是否存在于当前目录中。
                fs.access(basePath+item, fs.constants.F_OK, (err) => {
                    if(err){
                        // console.log('不存在');
                    }else{
                        // 替换文件名
                        // let newitem = item.replace(/ 超清(720P)/g, "");
                        let reg = /[0-9]+/g;
                        let numList = item.match(reg);
                        let num = null;
                        if (numList) {
                            num = numList[0];
                            minfiles_array.push({
                                num: num,
                                name: item
                            });
                        }
    
                        // 重命名走起
                        fs.rename(basePath+item, basePath+num+'.mp4', function(err) {
                            if (!err) {
                                console.log(basePath+num+'.mp4');
                            }
                        });
    
                    }
                });
            }
        })
    }
    // 执行查询
    getFile(basePath);
    // 输出有文件
    setTimeout(function(){
        minfiles_array.sort(function (a,b){ return a-b });
        console.log(minfiles_array.length);    
        let str = JSON.stringify(minfiles_array)
        fs.writeFile('./extension.json', str, function(err) {
            if (err) {
                res.status(500).send('Server is error...')
            }
        })
    },1000*5);


  • 移动端手机页面地址替换方法

    发表于 2021-04-20 18:11:36   |   下载附件
    url替换移动端页面地址替换页面替换
    var url = '/hr/api/**'
    if (history.replaceState) {
    	history.replaceState(null, document.title, url)
    	history.go(0)
    } else {
    	location.replace(url)
    }
  • PHP 实现word转图片

    发表于 2021-04-14 22:13:13   |   下载附件
    word to pngword 转图片显示ImageMagickLibreOffice

    第一步:LibreOffice实现word转pdf

    第二步:利用 Imagick、GhostScript 把pdf文件转成图片

  • 兼容后台数据字段变化前端做对应处理 更换JS对象索引KEY值 添加映射字段

    发表于 2020-11-20 11:27:19   |   下载附件
    前端数据兼容处理更换JS对象索引KEY值添加映射字段后台数据字段变换兼容后台数据字段变化
    // 数据类型深度检查
    var typefor = function(obj, type) {
        var oType = {
            '[object Boolean]': 'Boolean',
            '[object Number]': 'Number',
            '[object String]': 'String',
            '[object Function]': 'Function',
            '[object Array]': 'Array',
            '[object Date]': 'Date',
            '[object RegExp]': 'RegExp',
            '[object Object]': 'Object'
        },
        ret = obj == null ? String(obj) : oType[Object.prototype.toString.call(obj)] || 'Unknown';
        return type ? type.test(ret) : ret;
    };
    
    // 数据兼容处理 更换JS对象索引KEY值 添加映射字段
    function preDataProcessor(res){
        // 添加映射字段 预处理后台数据兼容前端运行代码
        // 映射对象
        var transformObjConfig = {
            "Live_control": {
                "c": "resultcode",              // 原来的字段 resultcode,新字段 c
                "m": "msg",                     // 原来的字段 msg,新字段 m
                "d": {
                    "s": "status",              // 可以观看直播状态
                    "t": "status_text",         // 直播状态文字 直播中
                    "c": "t_class",             // 前端状态文案的样式,值:t-playing  t_wait 
                    "d": "curr_date",           // 是否是当天,1是,0不是,只有当天将要开播的直播间才显示倒计时
                    "m": "dec_time",            // 当前时间距直播开始时间的差,单位秒
                    "p": "play_url",            // 直播视频播放链接
                    "f": "flv_url",             // 直播视频播放链接(flv协议)
                    "a": "audio_url",           // 直播音频播放链接
                    "af": "audio_url_flv",      // audio_url_flv直播音频播放链接
                    "w": "switch",              // 是否可以切换硬盘,1是,0反之。
                    "o": "options"              // 点播回放防盗链参数以及点播ID,可回放时返回字段
                },
                "a":"Live_control"              // action操作类型
            }
        }, transformObj = null;
        // 映射赋值
        function resetKey(data,config){
            console.info('resetKey--->',data,config)
            for(var k in config){
                if(k != 'ownerProperty' && data.hasOwnProperty(k) && config.hasOwnProperty(k) ){
                    if(!typefor(config[k], /Object/)){
                        data[config[k]] = data[k];
                    }else{
                        data[config[k]['ownerProperty']] = resetKey(data[k],config[k]);
                    }
                }
                
            }
            return data;
        }
        // 找配置对象
        for(var k in transformObjConfig){
            if(res.hasOwnProperty('a') && res['a'] === k ){
                // 处理对应数据
                transformObj = transformObjConfig[k];
                for(var i in transformObj){
                    if(res.hasOwnProperty(i) && transformObj.hasOwnProperty(i) ){
                        if(typefor(transformObj[i], /Object/)){
                            res[transformObj[i]['ownerProperty']] = resetKey(res[i],transformObj[i]);
                        }else{
                            res[transformObj[i]] = res[i];
                        }   
                    }
                }
            }
        }
        return res;
    },
    
    // 测试
    var abc = preDataProcessor({
    	a: 'Live_login',
    	c: 0,
    	m: '测试',
    	d: {
    		i: 22,
    		j:[111,222,555],
    		s: {
    			a : 555
    		}
    	}
    })
    console.info(abc)
  • 礼物条选择弹窗动画样式,及左右快速滑动选择特效

    发表于 2020-11-18 15:01:54   |   下载附件
    动画效果transition过渡动画当元素拥有CSS动画效果时用JS改变其CSS属性left时响应非常缓慢

  • 兼容IE的容器绝对居中方案

    发表于 2020-10-28 11:01:11   |   下载附件
    绝对居中容器居中水平垂直居中内容垂直居中

    CSS:

    .container {
        display: table; /*主要代码*/
        *position: relative;  /*for ie67*/
        background-color: #FF5E53; width: 800px; height: 200px; overflow: hidden; margin: 0 auto;
    }
    .content {
        vertical-align: middle; display: table-cell; text-align: center; /*主要代码*/
        *position: absolute; *top: 50%; *left: 50%; /*for ie67*/
    }
    .center {
        display: inline-block; /*主要代码*/
        *display: inline; zoom: 1; *position: relative; *top: -50%; *left: -50%; /*for ie67*/
        padding: 10px; border: 1px solid #fff;
    }


    HTML:

    <div class="container">
        <div class="content">
            <div class="center">
                啦啦啦,啦啦啦,我是卖报的小行家....<br>dsdADSsdSD
            </div>
        </div>
    </div>

每页显示10条,当前为第3页,总页数为22页