<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[天下大师傅]]></title><description><![CDATA[镜花水月终是梦，竹篮打水一场空。]]></description><link>https://blog.youkuaiyun.com/sheng_li</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; sheng_li]]></copyright><item><title><![CDATA[JS冒泡排序 + reduce 将数组排序并将多维数组变一维数组]]></title><link>https://blog.youkuaiyun.com/sheng_li/article/details/127564742</link><guid>https://blog.youkuaiyun.com/sheng_li/article/details/127564742</guid><author>sheng_li</author><pubDate>Fri, 28 Oct 2022 09:32:46 +0800</pubDate><description><![CDATA[通过Reduce迭代协同冒泡排序，实现将多维数组降为一维数组并进行从小到大排序。]]></description><category></category></item><item><title><![CDATA[JS只用一行代码将多维数组变为一维数组]]></title><link>https://blog.youkuaiyun.com/sheng_li/article/details/127485839</link><guid>https://blog.youkuaiyun.com/sheng_li/article/details/127485839</guid><author>sheng_li</author><pubDate>Mon, 24 Oct 2022 10:40:22 +0800</pubDate><description><![CDATA[JS利用递归将多维数组处理为一维数组数据]]></description><category></category></item><item><title><![CDATA[JS处理多层嵌套数据]]></title><link>https://blog.youkuaiyun.com/sheng_li/article/details/127337610</link><guid>https://blog.youkuaiyun.com/sheng_li/article/details/127337610</guid><author>sheng_li</author><pubDate>Sat, 15 Oct 2022 18:09:38 +0800</pubDate><description><![CDATA[数据有两层时我们用for嵌套for来实现，那当层级是未知数量时，我们怎么实现了？来，跟着我一起用递归来一步一步实现这个需求。]]></description><category></category></item><item><title><![CDATA[【系统性、全面性的学习JS数组】]]></title><link>https://blog.youkuaiyun.com/sheng_li/article/details/127296234</link><guid>https://blog.youkuaiyun.com/sheng_li/article/details/127296234</guid><author>sheng_li</author><pubDate>Thu, 13 Oct 2022 10:25:55 +0800</pubDate><description><![CDATA[全方位，系统性的学习一遍数组。整篇满满的全是干货，堪称数组的百科全书。]]></description><category></category></item><item><title><![CDATA[前端深入探究（一）常用css水平垂直居中的6种方法]]></title><link>https://blog.youkuaiyun.com/sheng_li/article/details/107356913</link><guid>https://blog.youkuaiyun.com/sheng_li/article/details/107356913</guid><author>sheng_li</author><pubDate>Wed, 15 Jul 2020 11:38:24 +0800</pubDate><description><![CDATA[1：vertical-align: middle; // 需要同级dom也是行内元素，相对于同级元素居中

2：line-height: 50px; // 一般设置文字居中

3：定位 加 margin实现居中

  父元素设置 position:relative;

  子元素设置 position:absolute; top 和 left 设置 50%; 高度固定，设置 margin-top 和 margin-left 元素宽度和高度的一半。


.main-wrap {
  positio...]]></description><category></category></item><item><title><![CDATA[vue cli3 配置 stylus全局变量使用]]></title><link>https://blog.youkuaiyun.com/sheng_li/article/details/106874661</link><guid>https://blog.youkuaiyun.com/sheng_li/article/details/106874661</guid><author>sheng_li</author><pubDate>Sat, 20 Jun 2020 17:11:46 +0800</pubDate><description><![CDATA[首先在common.styl文件中写一些常用的css变量，方便全局使用，避免重复代码。

预想的是在main.js中引入common.styl文件，然后所有的.vue文件就都可以使用了。但是事与愿违，根本不起作用。

网络上有很多教程，但是都不起作用（找答案是个痛苦且漫长的过程），下面是总结的代码，基本开箱即用，希望能帮助到需要帮助的人。




// vue.config.js
module.exports = {
  // 配置使用stylus全局变量
  chainWebpack: config =&]]></description><category></category></item><item><title><![CDATA[ant design select组件 数据回显时设置默认选中数据]]></title><link>https://blog.youkuaiyun.com/sheng_li/article/details/88077388</link><guid>https://blog.youkuaiyun.com/sheng_li/article/details/88077388</guid><author>sheng_li</author><pubDate>Sat, 02 Mar 2019 16:23:23 +0800</pubDate><description><![CDATA[首先介绍下问题：一条数据是需要添加和编辑、删除的。我添加成功，但是编辑这条数据的时候。select框中不能正确的回显数据，我就在文档中找啊找，找到 defaultValue 这个参数。当我认为将要大功告成的时候，我发现我找错了，并不能正确的回显。

然后又是找啊找，找到value参数。设置一下，嘿，直接成功了。

说下defaultValue 和value参数的区别

官方文档是这样解释的


...]]></description><category></category></item><item><title><![CDATA[微信小程序40029 错误解决方法]]></title><link>https://blog.youkuaiyun.com/sheng_li/article/details/87688039</link><guid>https://blog.youkuaiyun.com/sheng_li/article/details/87688039</guid><author>sheng_li</author><pubDate>Tue, 19 Feb 2019 09:37:40 +0800</pubDate><description><![CDATA[首先报40029错误的方式有多个，但是错误原因应该只有一个。

1：openid 和 当前小程序不对应，或者AppSecret 秘钥和当前小程序不对应的。

2：当前小程序能正确获取到token，但是在code还没有失效时，另一个小程序也用这个小程序的openid或者AppSecret 秘钥去请求token。这个时候也会报40029，说到底还是第一个错误，只是触发的方式不同。

解决办法也很简单，...]]></description><category></category></item><item><title><![CDATA[react 实现点击切换class（详细）]]></title><link>https://blog.youkuaiyun.com/sheng_li/article/details/86774219</link><guid>https://blog.youkuaiyun.com/sheng_li/article/details/86774219</guid><author>sheng_li</author><pubDate>Fri, 08 Feb 2019 10:47:55 +0800</pubDate><description><![CDATA[点击切换样式，

通过for循环将索引(index)暂存至data-index中，

再通过onclick点击事件

e.target.parentNode.parentNode.getAttribute(‘data-index’);

来获取当前点击的索引值，最后将索引值存到state中。

页面三目运算通过比对state中暂存的索引值和当前dom元素的索引值的改变来决定是否显示class-st...]]></description><category></category></item><item><title><![CDATA[解决jqweui中slider 按住移动时鼠标超出松开还会继续移动问题。]]></title><link>https://blog.youkuaiyun.com/sheng_li/article/details/84898349</link><guid>https://blog.youkuaiyun.com/sheng_li/article/details/84898349</guid><author>sheng_li</author><pubDate>Sat, 08 Dec 2018 20:09:24 +0800</pubDate><description><![CDATA[使用时按住移动，正常是没问题的，但是当鼠标超出slider范围时松开鼠标左键，移动还依然会跟随移动。




//判断鼠标是否超出 骰子位置，如超出则终止移动事件
if(!document.getElementById('sliderHandler').contains(window.event.srcElement)){
    this.touching = false
}

在 Slider...]]></description><category></category></item><item><title><![CDATA[for循环，倒序循环]]></title><link>https://blog.youkuaiyun.com/sheng_li/article/details/84618471</link><guid>https://blog.youkuaiyun.com/sheng_li/article/details/84618471</guid><author>sheng_li</author><pubDate>Thu, 29 Nov 2018 11:04:06 +0800</pubDate><description><![CDATA[首先：有一组数据，每个都和这个一样 asdfafd1kj3jh5kj43bb55jh2kjhkj5 随机的英文和数字组合。

现在需求需要获取每条数据的后两个数字并给它加上span标签。

一般来说，正序的for循环就可以了。从头开始循环，我刚开始也是这样想的。

但是有几个问题也就出来了

1. 必须要循环完整条数据的每一个值

2.还要先把循环到的每个数字都保存起来，然后再去获取后两位数字的位...]]></description><category></category></item><item><title><![CDATA[css3+图片制作圆形球状水波荡漾效果]]></title><link>https://blog.youkuaiyun.com/sheng_li/article/details/84347987</link><guid>https://blog.youkuaiyun.com/sheng_li/article/details/84347987</guid><author>sheng_li</author><pubDate>Thu, 22 Nov 2018 20:18:18 +0800</pubDate><description><![CDATA[偶然看别人网站上有个这个效果，刚开始觉得应该是canvas或者svg做的。但是仔细一看有三个部位，就感觉是图片+css做的。查看下代码后果然是，然后好奇心使然，就把它扒下来了，供大家参考。

先上效果图：



他的布局和代码结构也很简单，就是用三个div 做三个背景图，设置不同的opacity。然后通过css3的animate 结合 keyframes做的一个从左往右的动画。

完整代码我也贴出...]]></description><category></category></item><item><title><![CDATA[git常用命令]]></title><link>https://blog.youkuaiyun.com/sheng_li/article/details/82808806</link><guid>https://blog.youkuaiyun.com/sheng_li/article/details/82808806</guid><author>sheng_li</author><pubDate>Sat, 22 Sep 2018 00:12:32 +0800</pubDate><description><![CDATA[
git pull                  //从线上pull代码下来，

git checkout              //分支名 切换分支，

git merge origin/分支名   //合并分支，

git push                 //提交代码到线上，

git add .                //把改变的数据保存到暂存区（修改和新建的但不包...]]></description><category></category></item><item><title><![CDATA[Vue环境配置时报npm WARN deprecated bfj-node4@5.3.1: Switch to the `bfj` package for fixes and new features]]></title><link>https://blog.youkuaiyun.com/sheng_li/article/details/82750849</link><guid>https://blog.youkuaiyun.com/sheng_li/article/details/82750849</guid><author>sheng_li</author><pubDate>Mon, 17 Sep 2018 23:49:26 +0800</pubDate><description><![CDATA[前提条件：node.js 、vue-cli、webpack安装好，配置好淘宝cnpm源。

本来执行vue init webpack projectName 一路配置，最后npm run dev 就配置完了。

但是，天公不作美。总要出点幺蛾子。这不我这就出了

报错 ：



接下来就开始一段疯狂的找错模式

我本来还不信邪，继续 npm run dev



但是现实总是会清楚的让你知道，你得...]]></description><category></category></item><item><title><![CDATA[ECharts 修改柱状图、折线图、饼状图颜色样式，数据过多时添加X轴滚动条。]]></title><link>https://blog.youkuaiyun.com/sheng_li/article/details/82692076</link><guid>https://blog.youkuaiyun.com/sheng_li/article/details/82692076</guid><author>sheng_li</author><pubDate>Thu, 13 Sep 2018 18:07:51 +0800</pubDate><description><![CDATA[直接从官网上拿的是基础的样式，

这里直接上一波图对比一下

柱状图：



修改后的柱状图：



折线图：



修改后的折线图：



饼图（环形图）：



修改后的饼图（环形图）：



 

效果显而易见，接下来直接上实现代码


// 基于准备好的dom，初始化echarts实例
var timeStatistics = echarts.init(document.getElemen...]]></description><category></category></item><item><title><![CDATA[用一个例子对比Jquery和Vue理解面向对象编程]]></title><link>https://blog.youkuaiyun.com/sheng_li/article/details/82148432</link><guid>https://blog.youkuaiyun.com/sheng_li/article/details/82148432</guid><author>sheng_li</author><pubDate>Tue, 28 Aug 2018 16:15:19 +0800</pubDate><description><![CDATA[通过实现一个点击一个按钮，将input框中输入的内容放到ul列表里

首先，jq的通常写法


$('#btn').click(function(){
    $('#list').append(&quot;&amp;lt;li&amp;gt;&quot; + $('#input').val() + &quot;&amp;lt;/li&amp;gt;&quot;);
    $('#input').val('');
});

jq通常写法就是按钮点击时将input输入...]]></description><category></category></item><item><title><![CDATA[ckeditor 设置只读和取消只读]]></title><link>https://blog.youkuaiyun.com/sheng_li/article/details/81633712</link><guid>https://blog.youkuaiyun.com/sheng_li/article/details/81633712</guid><author>sheng_li</author><pubDate>Mon, 13 Aug 2018 17:28:11 +0800</pubDate><description><![CDATA[编辑页面有个需求点击编辑时能编辑，点击查看时只读不能编辑，其他input，textarea还好，设置disabled 或者 readonly就可以了。

但是ckeditor是富文本编辑器，普通的设置不会生效。还好官方提供了方法。

代码如下：


var editor = CKEDITOR.instances[&quot;textContent&quot;];
    editor.setReadOnly(true...]]></description><category></category></item><item><title><![CDATA[简洁高效把数据从前端传到后台]]></title><link>https://blog.youkuaiyun.com/sheng_li/article/details/81556941</link><guid>https://blog.youkuaiyun.com/sheng_li/article/details/81556941</guid><author>sheng_li</author><pubDate>Fri, 10 Aug 2018 09:02:12 +0800</pubDate><description><![CDATA[前端将from表单中输入的数据传到后台有和很多种办法，这种是比较高效的办法。

单条数据可以直接通过存在一个对象里，按key和value键值对拼好就行。

多条数据就可以把媒每个对象依次存到数组里，最后转成json数据传到后台。


var arrData = [], data = {};
$('#pcTbody tr').each(function(i){

    data = {};
   ...]]></description><category></category></item><item><title><![CDATA[js 限制input只能输入中文、英文和数字]]></title><link>https://blog.youkuaiyun.com/sheng_li/article/details/81100216</link><guid>https://blog.youkuaiyun.com/sheng_li/article/details/81100216</guid><author>sheng_li</author><pubDate>Wed, 18 Jul 2018 16:20:26 +0800</pubDate><description><![CDATA[通过replace来替换不符合要求的数据

$(document).on('keyup','[name=&quot;layerName&quot;]',function(){
  $(this).val(testLayerName($(this).val()));
 });
 $(document).on('paste','[name=&quot;layerName&quot;]',function(){
  $(this).val(t...]]></description><category></category></item><item><title><![CDATA[mysql 修改 root 密码]]></title><link>https://blog.youkuaiyun.com/sheng_li/article/details/80993802</link><guid>https://blog.youkuaiyun.com/sheng_li/article/details/80993802</guid><author>sheng_li</author><pubDate>Tue, 10 Jul 2018 23:59:29 +0800</pubDate><description><![CDATA[安装完mysql后 新建连接 点击确定 提示 1045 Access denied for user 'root'@'localhost' (using password:YES)   排查后发现是root密码不对，然后就是解决问题，修改密码   网上有很多种修改密码的方法，这里只取其中一种 （系统是windows10）   打开 cmd 命令管理器   进入 C:\Program Files\M...]]></description><category></category></item></channel></rss>