2024-04
30

带搜索功能的select

By xrspook @ 9:01:00 归类于: 烂日记

当我把级联下来网页做出来了以后,发现原来核心数据并没有四层那么多,只有三层,所以我首先简化了一下那个东西。当我把核心数据转换,并套用进去以后,发现有些选项实在太多,有20个以上。这是非常之让人崩溃绝望的,如果你还不知情,你要在20多个东西里面找到你想要的这个东西,非常不容易。所以那一刻我就在想,为什么那个下拉菜单除了单选以外不能进行选项的搜索呢?实际上,有些网站的前端设计的确是具备这个功能的。在不同的系统下,实现这个功能的方式不一样,可以肯定的是在js下,在jQuery的加持之下,是可以实现这个功能的。据说方法也很简单,只要加一个js框架以及它对应的css就能做到。

理想很丰满,现实很骨感,经常会发生这种事情。当你看到那个例子的时候,当你尝试使用的时候觉得真挺不错,可以用在自己的东西上面,但是当js框架和css都引用过去以后发现跟自己的网站水土不服。有些东西直接就不见了,有些东西直接就变了个样,完全不受控。

传统的select不可以进行多选以及选项搜索,但是加强版的select就可以做到这个效果,那个经典的js框架叫select2。非常好理解,就是select的加强版。用方式也很简单,只要声明一下就可以了,但关键是无论是框架还是框架配套的css,如果你不想全部都要,只想选取其中有用的部分。这几乎是不可能的,起码我觉得以我的水平,我是不可能把那些东西筛选出来,所以只能全套引用。

之前已经说过,经典使用场景中,select下的option没办法直接加特效。因为那个东西不受css的直接控制,基本可以这么说,是一个失控的状态。所以要实现那个功能,大家的方案就是用一些li和span之类的东西从视觉上代替调声,但实际上当你选择的时候,你选择的内容依然是option的东西,但你看到的那些东西带有特效的玩意不是option本身。select2就是用了这种方法。select2可以多选,也可以对选项进行搜索,其强大之处当然不仅仅是美化一下那个不可控的option。

当我搜索可搜索的select的时候,我就遇到过select2,但因为它太强大,放上去又不太合适,所以我pass掉。取而代之地,我开始去研究一个相对来说貌似简单很多的国产版本,但是国产版本,相对于select2来说瑕疵也是比较明显的。因为select2已经经过了很迭代更新,经过很多人的共同开发,所以我遇到的问题之前的人几乎已经遇到过,所以当我搜索那些的时候基本能找到答案,而那个国产的版本,虽然看上去比较简单,但实际上用起来的时候会让你有无数问号,同时也找不到答案。

最终我用了最新版本的select2,然后成功地把自己的经典款级联下拉改成了可搜索版本。接下来,我要对那三个搜索框精准控制,比如第1层跟第2层选项很少,我没有必要提供搜索功能,还有就是在不同的手机浏览器之下,在搜索的时候会自动进行一些放大的操作,然后就会导致整个页面变得畸形,虽然通过手指的缩放可以改变,但是这种步骤会让人觉得很不爽。功能是实现了,但这种不愉快的操作必须的纠正过来。

你越想,就会遇到越多的问题,但这是好事。

2024-04
29

hold不住孩子

By xrspook @ 8:20:27 归类于: 烂日记

周六的晚上做了个很奇怪的梦。准确来说,这个梦估计是周日黎明时分做的。不知道为什么,我就去生了个孩子,这个孩子在梦里是一个婴儿的状态,所以需要喂奶、换尿片之类。我不知道那个婴儿是怎么生出来的,反正在梦里我没有感觉到疼痛之类。是在哪个医院生的?是顺产还是剖腹产?我也不知道。同时也没有说我有丈夫。没有男朋友,没有丈夫,到底是怎么把这个孩子怀上了呢?在梦里那是默认部分,并没有直接展开解释。

我手里有个婴儿,那是我的孩子,家里只有我年迈的父母,所以该怎么抚养照顾这个孩子呢?那是一个早上,我马上想到的就是我肯定那一天不能回去上班了,因为不可能抱着个孩子去挤公交之类,而且我还完全没有带孩子的经验,甚至该怎么抱起那个孩子我都不知道,就更加不用说喂奶换尿片感知孩子的各种不适,我有多么的迷茫。所以我首先做的打了个电话,告诉我的领导这么个情况,那一天我回不去了,但是之后要怎么回去上班呢?在梦里我完全没想好。梦的后半部分,我突然又想到,之所以我那么的窘迫,是因为正常的母亲那个时候应该正在放产假,为什么我没有产假?如果我有产假的话,我就不需要回单位了,但是在梦的前半部分,我还是默认我得回单位继续上班。

回去上班需要一种交通方式,回去了以后怎么照顾这个小婴儿又是另外一回事。我没有母乳,没有奶粉没有尿片没有任何可以照顾这个婴儿的一切,我该怎么办呢?首先要解决的是奶粉的问题,所以我妈不知道去什么地方带回来了一瓶用塑料饮料瓶装着的褐色的东西,像可乐或者沙士那种颜色,然后我就急着跳起来了,那个东西显然不是婴儿要喝的奶,这个怎么可能给小孩喝呢?然后不知道为什么,我妈就觉得那个东西虽然是一次性的,但是适合婴儿使用。

我用手机搜索了一下理论上之前我见过的尿片,结果是搜不到我以前帮人家买过的那个品牌型号,可选的只有得保。接下来的事情就更奇葩了,我联想到单位有谁是刚生完孩子,那么我可以向他们借一些奶粉,借一些尿片。为什么网购不行我不可以去实体店买呢?为什么要借呢?这些问题当我醒了以后,我觉得的确很有问题,但是在做梦的时候,我就得出了这么一个结论,我完全hold不住那个小孩。我不知道该如何照顾他,只要他存在,我的心根本没办法放在工作上。

我不知道现在因为生小孩,所以辞掉工作在家里当全职妈妈的人比例到底是多少?那些又要上班又要照顾小孩的妈妈,到底是如何做到的。如果家里的老人不能在你的上班时间照顾你的小孩,那么那段时间你的小孩该怎么办呢?三岁之后有幼儿园,那么三岁之前呢?我妈工作的那个年代,大型国企都会有自己的婴室和幼儿园,三岁以上的放在幼儿园,三岁以下的放在婴室。据说在去幼儿园之前,我一直都是由外婆照顾的,外婆在带着我这么个东西的时候,她是怎么继续她每天必须要做的事的呢?比如买菜做饭,洗衣服,做家务等等。婴儿是不知道什么时候就会出状况的玩意,所以你有可能直接把他放在那里,直接去做其它事情吗?如果婴儿在睡觉,你让他一个人留在家里,然后锁门出去外面买菜或者做其它事情之类,你真的会放心吗?

我不知道为什么会做这样的梦,因为我觉得到现在为止,我都是比较讨厌小孩的。叫我领养一个是肯定不可能的,为什么梦里我居然自己生了一个呢?

2024-04
28

多想,多写

By xrspook @ 8:31:22 归类于: 烂日记

这是我参加工作的第16个年头,是我接触互联网的第21年,牛逼的当然也会包括今年是我blog第20岁。

把一件事坚持做20年,那是一个什么概念?我不知道。小时候总觉得那些写日记的人都有点神经病,每天都做同样的事情,为什么每天都能写东西出来呢?我不知道别人的日记到底有多长?但就我自己的blog而言,不知道从什么时候开始,我就已经定下了不少于1000字的习惯。如果不够字数,那就再想想,再憋一憋,再凑一些上去。这个凑数的过程,并不包括写着写着到别的地方找一些素材,通常想一想就会有。真有人会写20年的日记吗?是每天都写的那种。还是说有些人可能日记写了一辈子,真的是每天都写。反正我没有在身边听说过有这样的人。如果真被我发现个这样的人,我一定会觉得他是一个非常不一般的存在。过着日复一日的生活,但依然可以每天都有不同于其它时候的感受。暂不说那个人到底每天都做了些什么,但可以肯定的是,他每天都有想些什么。根据1万小时定律,哪怕他每天只是想个10分钟,长期积累下来也是一个很恐怖的数字。所以他想着想着,写着写着,就成为大师了。我不敢说我这20年真做到了大师这一步,但可以肯定的是,这改变了我。

如果不是有这个天天都写的习惯,大概我不会想很多事情,无论什么方面,生活也好,运动也好,工作也好。没想那么多,就自然不会想那么全面,不会想那么细。当你习惯了想很多的时候,当你遇到一个全新的挑战,你的方案或许跟别人会很不一样,可能别人只想到了一个方案,但是在你脑海中,一开始纠结的就有可能是三个方案以上。别人在想怎么把这件事做出来,你想的是哪个方案才是最好的。想多了就会让你遇事的时候考虑到的东西跟别人不太一样。这个的基础还是你得习惯想得足够多,你之所以可以想得足够多,前提是你涉猎的范围得足够广,你得有足够多的好奇心去八卦更多的东西,即便那个东西暂时来说可能跟你毫无关系。这20年,我不仅仅是想了很多乱七八糟的事,我也接触了很多稀奇古怪的兴趣,说出来别人会觉得很神奇。对我来说,扎根到什么兴趣点上,这没什么套路可言,是很随机的,但是扎根下去的方式方法,我觉得是比较类似的,比如我怎么扩散,我怎么深挖,怎么更进一步。上一次的加扎根可能最后不了了之,原因是多种多样的,但是当我下一次扎根的时候,我就知道该怎么做,这么多年的经验也让我明白到某些扎根应该控制到什么样的程度。

随着年龄的增长,经验的丰富,我越发对高中数学老师龙哥那句经典的“不懂不会,会而不对,对而不全,全而不好”有很深的感触。的确,无论是做人还是做事,全部都逃不出这几个境界。做完某事之后,你有没有反问过自己,我做到了什么呢?我能不能做得更好?

2024-04
27

2个Power Query方案

By xrspook @ 11:12:06 归类于: 烂日记

花了一个早上的时间写了两个Power Query的方法,主要是用于转换1~4层的标签和第4层对应的具体内容。其实如果有大表,我就是把那个大表分成两片,第1片用方法一处理,第2片用方法二处理,方法一跟方法二重叠的部分就是第4层的标签。

方法一,实际上我是把同一个步骤重复了三遍,分别是取第1第2层,第2第3层和第3第4层。这三个步骤分别对应的就是分类1~3。分类3所包含的内容实际上就是第4层的标签。在研究怎么整这个东西的时候,我只是做了第1第2层,后面那两个重复,我直接复制后修改里面的某些数字,就可以把东西重新定位,然后生成后面两个重复步骤的结果。三个步骤的结果出来了以后合并在一起,就可以直接加工出我想要的json格式。至于方法二,我感觉比方法一还要简单一些,因为实际上就只是做一个步骤而已,但是方法二有一个做超链接的过程,属于有超链接就做,没超链接就不处理。最后json的内容就是把方法一跟方法二的结果全部融在一起,最后一行手动删除一个逗号。

做出这两个PQ方案以后,可以让完全小白的人直接生成json,把相应条目复制到目标json文件,网页接着刷新就可以了。刷新这里可能会遇到浏览器缓存的问题,但这是后话了。PQ方案需要对电脑有要求,准确来说对office的版本有要求, Office 2016以下的可能会有点问题,即便是Office2016专业版也有可能出现某些状况,但我不确定状况一定会发生,因为我很少用那个版本office。虽然可能我一开始接触的Office365是基于Office2016的,但经过这么些年的迭代更新,我不知道现二者在Power Query上有什么差异性,在核心功能上会不会有一些变动。但是这个操作只需要那个处理网页数据的人做一次就可以了,其他人完全不需要涉及,所以即便对office有要求,那么在可以行得通的电脑上操作也就没有问题。主要是Excel数据转json格式的时候需要PQ支持。

Power Query的处理上,我主要在不新增列的情况下直接修改某一列的数据花费时间比较多,比如说在原有的数据上加上一对双引号。如果我要加的不是双引号而是其它乱七八糟的东西,可能我根本不会碰钉子,但因为双引号在PQ里是一个比较特殊的存在,准确来说在所有编程语言里,双引号都是很特别的存在。所以当你要自定义一列,在原来列数据的基础上加上双引号,那么实际上,你在写脚本的时候就得打4个双引号。有些时候你得用4个双引号,有些时候你得用3个双引号,我不知道为什么PQ就是不能让我用反斜杠,如果允许反斜杠的话,我就不会被双引号搞得非常晕了。把那些东西转化为json格式的时候,我必须添加大量的双引号。那个步骤虽然我已经很小心翼翼,但是也不免经常会有各种手贱的操作。另外一个让我手贱的原因是PQ的编辑器不知道为什么会自动给我添加双引号,有可能会给我添加双引号,有可能会给我添加半边括号,反正就是我不想它给我增加的,它老是很自觉不定时增加,于是到最后我不知道为什么出错了,结果发现原来是它给我增加了我不想要的东西。

最终,我花了一个上午实现了我的计划,感觉挺爽的。

2024-04
26

多设备兼容的烦恼

By xrspook @ 8:26:56 归类于: 烂日记

网页里面的select和option,这两个东西估计是在一开始出现网页的时候就已经有。周三的时候我发现option的hover效果是无论如何设置不了的,你可以设置option的颜色或者背景,但是hover上去没有效果。你也可以通过css设置select的hover或者focus。该怎么设置这个option呢?最后发现是无解的,所以我又研究了一下其他人的替代方案,有些很酷的网站,他们用js写了个脚本,在option的上面又覆盖了一层由li和span组成的东西,所以你看到的特效实际上是有那些产生的,而不是option本身。那个效果非常的炫酷,但是你要引入大量的js,也要引入大量的css。漂亮是要有代价的,这是显然的,本来我已经想好,要模仿其中一个,结果却突然想到它的下拉可能就只有几个选项,但我的下拉有可能有十几二十个选项。我选定的那种款式,默认没有滚动条,所以这该怎么办呢?所以我只能放弃。

周四当我搜索的时候,我又发现了一个英文网站里面用了纯css实现了option的hover,之所以可以做到这样,是因为他在select那里使用了onfocus之类的事件。为什么onfocus之后就可以设置option呢?之前option做不到的东西,加入了那些事件以后就变得可以做到了。接下来你就可以在option里面设置你想要的东西。本来我觉得自己有救了,之所以说本来,是因为后来我又发现了一些很无语的现实。

做的这个静态网站,我觉得受众大多数是用手机打开的。虽然可能他们准备资料的时候是在电脑旁,但是要查询资料的时候,估计他们不会先打开个电脑。所以这就意味着这个网站的开发我得兼容手机和PC。select和option的展示方式,不同浏览器不一样,手机和电脑不一样,不同的手机品牌也不一样。非常有可能在PC上的效果已经设置得如我所愿,但实际上到了手机上还是自动套用了手机经典的款式,所以等于做了个寂寞,与其这么大费周章,还不如直接放弃治疗。同一个手机,不同浏览器出来效果不一样;再换一个平板,虽然内核都是Chrome, 但实际上又会有差别。我不知道那些人是如何做到兼容这有一切的,起码对我来说这实在太难了。所以我只能尽量做到在不同的设备上效果都过得去。所以在选择字体大小上应该用什么样的比例,我又研究了一番。如果完全就只是一个PC的网页,设置好我想要的也就可以了,大概差不多也就那些字体大小,但是手机上看到的东西我感觉比PC上看到的小很多,于是我不得不把字体放大,但是放得太大,PC上就像一个搞笑的存在。以前body的font-size我都是用绝对像素。这一次我不得不采用相对单位。PC上点击用的是鼠标,图标再小,你都可以准确按到,但手机上你用的是手指,所以那个按钮必定不能太小。这些矛盾的东西,当你不是真的碰上的时候,是不会想象得出来的。

最后,我感觉大概差不多就那样了,剩下的事情就只是等待最终的数据源。

© 2004 - 2024 我的天 | Theme by xrspook | Power by WordPress