Skip to content

Instantly share code, notes, and snippets.

View zaru's full-sized avatar
😍
write code

zaru zaru

😍
write code
View GitHub Profile
@zaru
zaru / 0.99px.html
Created April 10, 2019 15:06
ローカル HTTP でアクセスすると div の高さが 0.99 px になる謎(5K ディスプレイが原因説)
<!DOCTYPE html>
<html lang="en">
<head>
</head>
<body>
<div style="height: 1px;"></div>
</body>
</html>
@zaru
zaru / application_controller.rb
Created April 9, 2019 10:21
render HTML 文字列をキャッシュする
def render_with_cache key, options, render_name, render_options
cache_body = Rails.cache.read(key)
if cache_body
render text: cache_body
else
render render_name, render_options
Rails.cache.write(key, response.body, options)
end
end
@zaru
zaru / gps.html
Created November 5, 2018 01:04
get lat/lng from Exif
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<body>
<div><input type="file" id="file" /></div>
<script>
@zaru
zaru / screenshot.js
Created July 26, 2018 13:58
ブラウザコンソールからスクリーンショットを撮るスクリプト(ただしサイト限定)
(() => {
const src="https://cdnjs.cloudflare.com/ajax/libs/html2canvas/0.4.1/html2canvas.js"
const sc = document.createElement("script")
sc.type="text/javascript"
sc.src=src
sc.onload = () => {
html2canvas(document.body, {
onrendered: (canvas) => {
const imgageData = canvas.toDataURL("image/png")
const newData = imgageData.replace(/^data:image\/png/, "data:application/octet-stream")
@zaru
zaru / index.html
Last active July 19, 2018 07:55
選択した部分のスクリーンショットを撮る雑なサンプルコード (html2canvas)
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/html2canvas/0.4.1/html2canvas.js"></script>
<script src="./index.js"></script>
<style type="text/css">
div {
width: 800px;
margin: 0 auto;
@zaru
zaru / range-selection.js
Created July 18, 2018 17:24
選択範囲のボックスを作成するJS雑なサンプルコード
(() => {
let dragStart = false
let div
let startX, startY = 0
const evtMouseDown = (e) => {
dragStart = true
document.body.style.userSelect = 'none'
div = document.createElement('div')
div.style.backgroundColor = '#ddd'
@zaru
zaru / copy.js
Created April 24, 2018 15:03
Object.assign でのコピー実装ミス例
const init = {
key1: 100
}
const merge = (data) => {
return Object.assign(init, data)
}
const newData = merge({key2: 200})
newData == init
// => true
@zaru
zaru / chain_method.js
Last active March 29, 2018 17:35
chain_method.js
class Foo {
constructor() {
this.result = ''
}
method_a () {
console.log('method_a')
this.result += 'method_a '
return this
}
method_b () {
hoge = {
data: [],
piyo () {
this.data.push('piyo')
return this
},
get () {
return this.data
}
}
@zaru
zaru / chain_object.js
Last active March 27, 2018 10:49
dynamic chain object, vuex-orm
let chains = [
{
key: 'where',
args: ['form_id', formId]
},
{
key: 'where',
args: ['assignee_id', Number(params.assignee_id)]
}
,{