1.textarea高度自适应

这个非常有用,但是网上的解决方案都不尽人意,话不多说,上代码。

function auto (elem) {
var minHeight = 30
var change = function () {
elem.style.height = minHeight + 'px'
elem.style.overflowY = 'hidden'
if (elem.scrollHeight > minHeight) {
elem.style.height = elem.scrollHeight + 'px'
}
}
elem.addEventListener("input", change, false)
elem.addEventListener("focus", change, false)
elem.addEventListener("propertychange", change, false)
change()
}

思路很简单,根据内容高度不断重置textarea高度,绑定input, focus, propertychange事件

2.自动计算Y轴高度,先放算法参考链接:https://stackoverflow.com/questions/326679/choosing-an-attractive-linear-scale-for-a-graphs-y-axis

意思就是给定几个数值,要能在y轴上较好的展示(算出上下限和区间值)

function scaleNumber (max, min, i) {
let unround = (max - min) / i // 等分刻度
let x = Math.ceil(Math.log10(unround))
let pow10x = Math.pow(10, x)
let arr = [0.1, 0.2, 0.25, 0.3, 0.4, 0.5, 0.6, 0.7, 0.75, 0.8, 0.9, 1]
for (let item of arr) {
if (unround / pow10x <= item) {
var range = item * pow10x
break
}
}
console.log(range)
min = range * Math.floor(min / range)
max = range * Math.ceil(max / range)
return [max, min]
}

参数i表示需要分几段

3.json转table,这个比较简单但是也比较实用,就记录下来:

    function json2html (str) {
var reg = /\[{2}((?!\]\]).)+\]{2}/g
var jsonstrarr = []
var htmlstrarr = []
var result while((result = reg.exec(str)) !== null) {
// console.log(result)
jsonstrarr.push(result[0])
}
console.log(jsonstrarr)
for (let item of jsonstrarr) {
let obj = JSON.parse(item)
let htmlstr = `<table cellpadding="0" border="1">`
for (let i of obj) {
htmlstr += '<tr>'
for (let j of i) {
htmlstr += `<td colspan="${j.col}" rowspan="${j.row}">${j.value}</td>`
}
htmlstr += '</tr>'
}
htmlstr += '</table>'
htmlstrarr.push(htmlstr)
}
let newstr = str
for (let index in jsonstrarr) {
newstr = newstr.replace(jsonstrarr[index], htmlstrarr[index])
}
return newstr
}

实用小工具不定期合集(textarea 高度自适应、自动计算Y轴刻度、json转table)的更多相关文章

  1. Python趣味实用小工具

    代码地址如下:http://www.demodashi.com/demo/12918.html python 趣味实用小工具 概述 用python实现的三个趣味实用小工具: 图片转Execl工具 , ...

  2. ANDROID开发实用小工具

    分享一些 Android开发中的实用小工具,你有发现好工具吗? 来这里分享一下呗 一.find bugs 静态检查工具 http://findbugs.sourceforge.net/ FindBug ...

  3. 批量下载网站图片的Python实用小工具(下)

    引子 在 批量下载网站图片的Python实用小工具 一文中,讲解了开发一个Python小工具来实现网站图片的并发批量拉取.不过那个工具仅限于特定网站的特定规则,本文将基于其代码实现,开发一个更加通用的 ...

  4. 微信小程序解决方案合集

    微信小程序解决方案合集:http://www.wxapp-union.com/special/solution.html 跳坑系列:http://www.wxapp-union.com/forum.p ...

  5. (转)超全整理!Linux性能分析工具汇总合集

    超全整理!Linux性能分析工具汇总合集 原文:http://rdc.hundsun.com/portal/article/731.html 出于对Linux操作系统的兴趣,以及对底层知识的强烈欲望, ...

  6. 实用小工具推荐 OpenWrite

    [实用小工具推荐]给技术同学们推荐一款比较好用的工具,可以实现一稿多发,主流的技术渠道基本涵盖了:https://www.openwrite.cn/ 因为工作的关系,认识了很多做技术公众号的小伙伴,同 ...

  7. 实用小工具:screen

    实用小工具:screen 首先,吹爆screen screen,实现了不间断的会话服务,通过SSH连接至远程服务器,当使用了screen开启的会话,不会因为你断开SSH而中断在远程服务器上运行的命令. ...

  8. textarea高度自适应自动展开

    在使用之前,推荐两个比较好的事件,分别是oninput和onpropertychange,IE9以下不兼容oninput.在textarea发生变化时,可以通过监听这两个事件来触发你需要的功能. te ...

  9. Xcode 4.1实用小工具:模拟网络连接和带宽

    暂无评论 适用于Mac OS X Lion的开发套件Xcode 4.1中,有个新鲜的小工具叫做Network Link Conditioner(网络连接调节器),是一款具有高度可定制性的辅助工具,让用 ...

随机推荐

  1. Jmeter性能测试-----参数化方法CSVRead函数

    Jmeter里面参数化的方法有很多,大家可以结合自己的项目情况来使用哪种方式来调用测试 数据. 下面我给大家介绍下Jmeter里CSVRead函数来获取参数的方法: 我这里已去到直播间发表评论为例(这 ...

  2. Python Unittest - Test Fixtures 测试夹具

    一.什么是测试夹具 定义单个或者多个测试所需的环境准备(setUp),以及环境清理(tearDown). 例:连接数据库,或者创建Selenium WebDriver driver实例 二.测试夹具有 ...

  3. PHP Redis锁

    一.什么是 Redis Redis是由意大利人Salvatore Sanfilippo(网名:antirez)开发的一款内存高速缓存数据库 二.什么是 Redis 分布式锁 分布式锁其实可以理解为:控 ...

  4. linux使用echo指令向文件写入内容

    echo "aaa">test.sh 该指令会覆盖文件原内容,如果文件不存在,则创建 echo "aaa">>test.sh 追加文件内容 h ...

  5. CountDownLatch与CyclicBarrier的使用与区别

    CountDownLatch的介绍和使用: 一个同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待. 用给定的计数 初始化 CountDownLatch.由于调用了 co ...

  6. Linux系统的vim编辑器的配置文件的初步说明

    vim 编辑器的基本说明 vi编辑器的功能类似于Windows下的记事本,只能编辑普通文本,而vim编辑器则相当于Windows下的notepad++等高级编辑器,提升了代码开发效率. 将vi命令默认 ...

  7. Devexpress之GridControl显示序列号

    先上图: 操作方法: 1.先设置一下gridview中属性:IndicatorWidth,一般为:40.如下图:(一般可以显示5位数字.如要更长显示,自己测试一下.) 2.找到gridview中的:C ...

  8. POS开发问题 - 跳转页面更新,返回还原旧数据

    问题描述:由于需求的需要,路由需要加上缓存 <keep-alive> ,还要实现跳转就初始化,返回就还原的需求.意思就是:页面 A 跳转到页面 B ,页面 B 要初始化数据,但是 页面 B ...

  9. [转]Linux中如何读写硬盘上指定物理扇区

    读指定物理扇区: dd  if=<源设备>  of=<输出设备或文件>   skip=<指定扇区值>  bs=512 count=1 写指定物理扇区: dd   i ...

  10. 使用startForeground让android服务前台运行

    最近在使用android 4.1系统的时候,发现在手机休眠一段时间后(1-2小时),后台运行的服务被强行kill掉,有可能是系统回收内存的一种机制,要想避免这种情况可以通过startForegroun ...