Tumblr: 連続ポストを読み飛ばす
by
vzvu3k6k
2014-05-10 [2014/05/10 00:20:03]
ダッシュボードで表示しているポストと異なるtumblelogまたは種類(text, quote, photoなど)が違うポストまでスクロールするブックマークレット
/*
* @title Tumblr: 連続ポストを読み飛ばす
* @description ダッシュボードで表示しているポストと異なるtumblelogまたは種類(text, quote, photoなど)が違うポストまでスクロールするブックマークレット
* @include https://www.tumblr.com/dashboard*
* @license CC0
*/
// https://secure.assets.tumblr.com/assets/scripts/dashboard.jsの
// /*! scripts/application/keycommands.js */以下で定義されている
// Tumblr.KeyCommands.keydownのコードを参考にした。
(function(){
this.update_post_positions();
this.current_position = jQuery(document).scrollTop() + 7;
var current_post;
for (var i in this.post_positions){
var p = this.post_positions[i];
if(this.check_offset(p)){
current_post = jQuery('#' + i);
break;
}
}
var skip_num = 0;
var next_post = _.chain(current_post.parent('.post_container').nextAll('.post_container'))
.find(function(container){
skip_num++;
container = jQuery(container);
var post = container.find('.post');
return (current_post.data('tumblelog-name') != post.data('tumblelog-name')
|| current_post.data('type') != post.data('type'))
/* ユーザースクリプトなどで隠されたポストのための処理 */
&& getComputedStyle(container[0]).display != 'none';
}).value();
this.go_to_position = this.post_positions[jQuery(next_post).find('.post').attr('id')] || jQuery(document).height();
this.animating = true;
jQuery("html,body").stop().animate({
scrollTop: this.go_to_position - this.scroll_offset
}, this.scroll_speed * skip_num, (function(){
this.animating = false;
}).bind(this));
}).bind(Tumblr.KeyCommands)();
- Permalink
- このページへの個別リンクです。
- RAW
- 書かれたコードへの直接のリンクです。
- Packed
- 文字列が圧縮された書かれたコードへのリンクです。
- Userscript
- Greasemonkey 等で利用する場合の .user.js へのリンクです。
- Loader
- @require やソースコードが長い場合に多段ロードする Loader コミのコードへのリンクです。
- Metadata
- コード中にコメントで @xxx と書かれたメタデータの JSON です。