image post fitness
by
yuta25
2016-03-09 [2016/03/09 10:05:04]
画像のpostをdsbdとwindowに合わせる(for user script & please use with http://userstyles.org/styles/102353/dashboard-1-column)
-
/*
* @title image post fitness
* @description 画像のpostをdsbdとwindowに合わせる(for user script & please use with http://userstyles.org/styles/102353/dashboard-1-column)
* @include https://www.tumblr.com/dashboard*
* @license reblog commons license ( cc by 3.0 )
*/
(function () {
var w = window
var d = document
var spreadImage = function(img) {
if (!img)
img = this
if (!img.width) {
img = img.data;
}
if (!img.complete) {
img.onload = spreadImage;
return;
}
var iW = img.naturalWidth;
var iH = img.naturalHeight;
var vW = img.parentNode.parentNode.clientWidth;
var vH = w.innerHeight - 120;
var vR = vW / vH;
var rate;
var adjust = {};
iR = iW / iH;
rate = vR > iR ? vH / iH : vW / iW;
adjust.width = Math.round(iW * rate);
adjust.height = Math.round(iH * rate);
img.style.width = adjust.width + 'px'
img.style.height = adjust.height + 'px'
};
var spreadImagesIntoDashboard = function(dom) {
var imgs = dom.querySelectorAll('img.post_media_photo');
Array.prototype.forEach.call(imgs, function(img) {
spreadImage(img)
});
};
spreadImagesIntoDashboard(d);
window.myTimer = 0;
d.addEventListener('DOMNodeInserted', function() {
if(window.timer) return;
window.myTimer = setTimeout(function() {
spreadImagesIntoDashboard(document);
window.myTimer = 0;
}, 200);
});
w.addEventListener('resize', function() {
if(window.myTimer) return;
window.myTimer = setTimeout(function() {
spreadImagesIntoDashboard(document);
window.myTimer = 0;
}, 200);
});
}())
-
- Permalink
- このページへの個別リンクです。
- RAW
- 書かれたコードへの直接のリンクです。
- Packed
- 文字列が圧縮された書かれたコードへのリンクです。
- Userscript
- Greasemonkey 等で利用する場合の .user.js へのリンクです。
- Loader
- @require やソースコードが長い場合に多段ロードする Loader コミのコードへのリンクです。
- Metadata
- コード中にコメントで @xxx と書かれたメタデータの JSON です。