海报墙Bookmarklet

霏昀

来自: 霏昀(忽然想通了) 2007-12-03 13:29:48

×
加入小组后即可参加投票
  • NullPointer

    NullPointer (我是将被时间摧毁的一切。) 2007-12-03 14:36:41

    华丽......

  • [已注销]

    [已注销] 2007-12-03 14:41:05

    这个不就是去年在什么小组内发现的一段js代码嘛.

  • NullPointer

    NullPointer (我是将被时间摧毁的一切。) 2007-12-03 14:45:23

    顺便发布一个GreaseMonkey的版本吧 ~

    我这种懒惰的用户喜欢自动载入的脚本,咔咔

  • 霏昀

    霏昀 (忽然想通了) 2007-12-03 15:07:16

    ----------------------------------------------------------
    2007-12-03 14:41:05 .Chez{R}
      这个不就是去年在什么小组内发现的一段js代码嘛.   
    ----------------------------------------------------------

    ??

  • 霏昀

    霏昀 (忽然想通了) 2007-12-03 15:35:57

    ----------------------------------------------------------
    2007-12-03 14:45:23 NullPointer (北京)
      顺便发布一个GreaseMonkey的版本吧 ~      我这种懒惰的用户喜欢自动载入的脚本,咔咔      
    ----------------------------------------------------------

    这个没法自动,自动了,subject的页面就挂了。。。

  • [已注销]

    [已注销] 2007-12-03 15:38:35

    javascript:R=0; x1=.1; y1=.05; x2=.25; y2=.24; x3=1.6; y3=.24; x4=300; y4=200; x5=300; y5=200; DI=document.images; DIL=DI.length; function A(){for(i=0; i-DIL; i++){DIS=DI[ i ].style; DIS.position='absolute'; DIS.left=Math.sin(R*x1+i*x2+x3)*x4+x5; DIS.top=Math.cos(R*y1+i*y2+y3)*y4+y5}R++}setInterval('A()',5); void(0);

    我以前的blog有备份 .

  • 霏昀

    霏昀 (忽然想通了) 2007-12-03 15:46:25

    ms不是一个东西~

  • [已注销]

    [已注销] 2007-12-03 15:47:10

    对象都是图片.

  • [已注销]

    [已注销] 2007-12-03 15:48:13

    看清楚了 不是一类东西.

  • NullPointer

    NullPointer (我是将被时间摧毁的一切。) 2007-12-03 16:55:21

    ----------------------------------------------------------
    2007-12-03 15:35:57 霏昀 (北京)
      这个没法自动,自动了,subject的页面就挂了。。。
    ----------------------------------------------------------

    改成点击封面图片进入就可以了

    脚本头改成
    if(typeof unsafeWindow.jQuery !== "undefined") {
    var jQuery = unsafeWindow.jQuery;
    var $ = jQuery
    }

    脚本尾巴套进事件里去,改成
    $("#in_tablem div.indent div.fil a:first").click(function(){
    var id = window.location.pathname.match('[0-9]+')[0];
    var title = $("form h1").text();
    var image_src = $("div.indent div.fil a img").attr('src').replace('lobelia.douban.com/mpic,' 'otho.douban.com/spic')
    var url = window.location.pathname

    $("body").html("");

    d_width = ($.browser.msie ? document.documentElement.clientWidth : window.innerWidth) - 130
    d_height = ($.browser.msie ? document.documentElement.clientHeight : window.innerHeight) - 110

    new Subject({id:id, title:title, image_src:image_src, url: url});
    return false;
    })

    即可.....

    @霏昀 你来发布吧

    ps. “我不是小猫”原来是女生。。。。


  • 霏昀

    霏昀 (忽然想通了) 2007-12-03 16:57:14

    谁说我是女生。。。

  • NullPointer

    NullPointer (我是将被时间摧毁的一切。) 2007-12-03 16:59:14

    @霏昀
    囧,名字比较女生。。。

  • 霏昀

    霏昀 (忽然想通了) 2007-12-03 17:00:46

    囧rz。。。我怎么一点都不觉得。。。

    你改吧我发现我这都没有gm的说。。。

  • [已注销]

    [已注销] 2007-12-03 17:01:53

    NP 这脑筋........囧

  • NullPointer

    NullPointer (我是将被时间摧毁的一切。) 2007-12-03 17:04:50

    ----------------------------------------------------------
    2007-12-03 17:00:46 霏昀 (北京)
      你改吧我发现我这都没有gm的说。。。
    ----------------------------------------------------------

    。。。难怪你一直用bookmarklet,

    嗯,那我贴出来你去userscripts.org发布吧。

  • NullPointer

    NullPointer (我是将被时间摧毁的一切。) 2007-12-03 17:05:43

    if(typeof unsafeWindow.jQuery !== "undefined") {
    var jQuery = unsafeWindow.jQuery;
    var $ = jQuery
    }

    Subjects = {}

    var Subject = function(params){
    $.extend(this, params);
    this.friends = null;
    var _this =this;
    this.img = $("<img src='"+this.image_src+"' title='"+this.title+"\n ...... ("+decodeURI('%E5%8F%8C%E5%87%BB%E8%BF%9B%E5%85%A5')+")"+"' id='"+this.id+"' style='position:absolute; margin:0px; padding:5px; cursor:pointer'>")
    this.img.appendTo($('body'))
    this.zIndex = '';
    this.img.css('opacity', 0.3);
    this.left = Math.floor((Math.random()*d_width))+30
    this.img.css('left', this.left)
    this.top = Math.floor((Math.random()*d_height))+10
    this.img.css('top', this.top)
    this.isLarge = false;
    this.isFixedLarge = false;
    this.img.mouseover(function(){_this.setLarge();this.style.zIndex=20;})
    this.img.mouseout(function(){_this.setSmall();this.style.zIndex=_this.zIndex;})
    this.img.dblclick(function(){window.open(_this.url)})
    this.img.click(function(){
    if (Subjects[_this.id].getFriends()==null) _this.getFriendsRemote(function(){_this.focus()});
    else _this.focus();
    return false;
    })
    Subjects[this.id] = this;
    }


    Subject.prototype.setLarge = function(){
    if (this.isLarge) return;
    if (this.img[0].naturalWidth == null && (this.img[0].width<50 || this.img[0].height<50)) {
    this.img.css('opacity', 1);
    this.isLarge = true;
    return;
    }
    this._getImgNaturalSize()
    this.isLarge = true;
    this.img.animate({
    width: this.img[0].naturalWidth,
    height: this.img[0].naturalHeight,
    opacity: 1
    }, 300);
    }

    Subject.prototype.setSmall = function(){
    if (!this.isLarge || this.isFixedLarge) return;
    if (this.img[0].naturalWidth == null && (this.img[0].width<50 || this.img[0].height<50)) {
    this.img.css('opacity', 0.3);
    this.isLarge = false;
    return;
    }
    this._getImgNaturalSize()
    this.isLarge = false;
    this.img.animate({
    width: this.img[0].naturalWidth/2,
    height: this.img[0].naturalHeight/2,
    opacity: 0.3
    }, 300)
    }

    Subject.prototype.getFriends = function(callback){
    return this.friends;
    }

    Subject.prototype.getFriendsRemote = function(callback){
    if (this.friends != null) return;
    var _this = this;
    $.get(this.url, function(res){
    var tmp = $("<div></div>").append(res.replace(/<script(.|\s)*?\/script>/g, ""));
    var ss = tmp.find("div.obss dl.obs");
    var summary = $(tmp.find("div.indent")[1]).text().replace('<br>', '\n').substring(0, 500) + " ...... ("+decodeURI('%E5%8F%8C%E5%87%BB%E8%BF%9B%E5%85%A5')+")";
    _this.img.attr("title", _this.title+'\n'+summary)
    _this.friends = $.map(ss, function(s){
    s = $(s)
    var link =s.find('dd a');
    var url = link.attr('href');
    var id = url.match('[0-9]+')[0];
    if (Subjects[id] != null) return Subjects[id];
    var title = link.attr('title');
    var image_src = s.find('dt a img').attr('src');
    return new Subject({id:id, title:title, image_src:image_src, url: url});
    })
    if ($.isFunction(callback)) callback(_this.friends)
    })
    }

    Subject.prototype.focus = function(){
    if (Subject.focuseduser != null) Subject.focuseduser.unfocus()
    Subject.focuseduser = this;
    this.img.css('background-color', 'rgb(230, 251, 224)')
    this.zIndex = 15
    this.img.css('z-index', this.zIndex)
    this.isFixedLarge = true;
    this.setLarge();
    $.each(this.friends, function(i, f){
    f.focusAsFriend()
    })
    }

    Subject.prototype.focusAsFriend = function(){
    this.img.css('background-color', 'rgb(255, 246, 238)')
    this.zIndex = 10
    this.img.css('z-index', this.zIndex)
    this.isFixedLarge = true;
    this.setLarge();
    }

    Subject.prototype.unfocus = function(){
    this.img.css('background-color', 'transparent')
    this.zIndex = ''
    this.img.css('z-index', this.zIndex)
    this.isFixedLarge = false;
    this.setSmall();
    $.each(this.friends, function(i, f){
    f.unfocusAsFriend();
    })
    }

    Subject.prototype.unfocusAsFriend = function(){
    this.isFixedLarge = false;
    this.setSmall();
    this.img.css('background-color', 'transparent')
    this.zIndex = ''
    this.img.css('z-index', this.zIndex)
    }

    Subject.prototype._getImgNaturalSize = function(){
    if (!$.browser.mozilla) {
    if (this.img[0].naturalWidth == null) this.img[0].naturalWidth = this.img[0].width-10
    if (this.img[0].naturalHeight == null) this.img[0].naturalHeight = this.img[0].height-10
    }
    }

    $(document).click(function(){
    if (Subject.focuseduser != null) Subject.focuseduser.unfocus()
    })


    $("#in_tablem div.indent div.fil a:first").click(function(){
    var id = window.location.pathname.match('[0-9]+')[0];
    var title = $("form h1").text();
    var image_src = $("div.indent div.fil a img").attr('src').replace('lobelia.douban.com/mpic,' 'otho.douban.com/spic')
    var url = window.location.pathname

    $("body").html("");

    d_width = ($.browser.msie ? document.documentElement.clientWidth : window.innerWidth) - 130
    d_height = ($.browser.msie ? document.documentElement.clientHeight : window.innerHeight) - 110

    new Subject({id:id, title:title, image_src:image_src, url: url});
    return false;
    })

  • NullPointer

    NullPointer (我是将被时间摧毁的一切。) 2007-12-03 17:11:07

    其实用Ajax做一个虚拟的电子书架不错,

    支持把书按标签自动分堆,鼠标悬停显示大图,可以拖放。

    现在豆瓣subject的收藏页面对海量数据支持得太差了。。。

    基本没办法“有效率的管理”数量超过一屏列表的任何东西。

  • 霏昀

    霏昀 (忽然想通了) 2007-12-03 17:25:59

    @NullPointer

    话说gm头的namespace支持正则表达式不。。。忘干净了。。。

  • NullPointer

    NullPointer (我是将被时间摧毁的一切。) 2007-12-03 17:28:02

    @霏昀

    我是这样写的。
    // @你要知道 http://www.douban.com/subject/*/

  • 霏昀

    霏昀 (忽然想通了) 2007-12-03 17:29:16

    懂了。。。真是忘干净了。。。

  • 霏昀

    霏昀 (忽然想通了) 2007-12-03 17:53:49

    ----------------------------------------------------------
    2007-12-03 17:04:50 NullPointer (北京)
      ----------------------------------------------------------   2007-12-03 17:00:46 霏昀 (北京)     你改吧我发现我这都没有gm的说。。。   ----------------------------------------------------------      。。。难怪你一直用bookmarklet,      嗯,那我贴出来你去userscripts.org发布吧。      
    ----------------------------------------------------------

    其实本质问题是我一直用被广大人民群众喜闻乐见的Internet Explorer,FF就被我当成开发工具来用。。。

  • NullPointer

    NullPointer (我是将被时间摧毁的一切。) 2007-12-03 18:06:01

    ----------------------------------------------------------
    2007-12-03 17:53:49 霏昀 (北京)
      其实本质问题是我一直用被广大人民群众喜闻乐见的Internet Explorer,FF就被我当成开发工具来用。。。
    ----------------------------------------------------------

    0rz. 每次用IE都被垃圾网站打败,满天飞的弹出广告和不请自到的ActiveX控件.....

    我更习惯加载了无数插件的Firefox环境是真的。要是把Firefox的Profiles目录删了,对我和重装系统差不多,要把这么多插件一个个找回来重装...

  • 霏昀

    霏昀 (忽然想通了) 2007-12-03 21:28:58

    其实ie7还是能用的~

  • su27根本就没有

    su27根本就没有 (鹿在角下) 2007-12-04 00:35:58

    我现在的状况是被firefox宠坏了,没有firebug的话就只有拒绝工作了。。。

  • NullPointer

    NullPointer (我是将被时间摧毁的一切。) 2007-12-04 01:14:47

    ----------------------------------------------------------
    2007-12-03 15:38:35 .Chez{R}
      javascript:R=0; x1=.1; y1=.05; x2=.25; y2=.24; x3=1.6; y3=.24; x4=300; y4=200; x5=300; y5=200; DI=document.images; DIL=DI.length; function A(){for(i=0; i-DIL; i++){DIS=DI[ i ].style; DIS.position='absolute'; DIS.left=Math.sin(R*x1+i*x2+x3)*x4+x5; DIS.top=Math.cos(R*y1+i*y2+y3)*y4+y5}R++}setInterval('A()',5); void(0);
      我以前的blog有备份 .
    ----------------------------------------------------------

    oh,这个东西我也在我的blog上贴过.....

  • 霏昀

    霏昀 (忽然想通了) 2007-12-04 11:04:28

    @su27根本就没有根本就没有

    firebug那个js shell太难用了,跟这个比
    https://www.squarefree.com/bookmarklets/webdevel.html

    其实js有个shell就能干活了。而且这个还有ie的版本
    http://blog.monstuff.com/archives/000287.html

    兼容性就靠这个了

  • su27根本就没有

    su27根本就没有 (鹿在角下) 2007-12-04 12:07:21

    以前我也用jsenv和shell,不过后来觉得还是firebug对dom和shell整合得更方便。IE也有shell了,我倒是不知道,这是个好东西!哈哈~

  • NullPointer

    NullPointer (我是将被时间摧毁的一切。) 2007-12-04 12:08:47

    ----------------------------------------------------------
    2007-12-04 12:07:21 su27根本就没有 (北京)
      以前我也用jsenv和shell,不过后来觉得还是firebug对dom和shell整合得更方便。IE也有shell了,我倒是不知道,这是个好东西!哈哈~
    ----------------------------------------------------------

    囧rz,完全不懂你们在说什么。虽然我在用firebug

  • 霏昀

    霏昀 (忽然想通了) 2007-12-04 15:02:32

    ----------------------------------------------------------
    2007-12-04 12:07:21 su27根本就没有 (北京)
      以前我也用jsenv和shell,不过后来觉得还是firebug对dom和shell整合得更方便。IE也有shell了,我倒是不知道,这是个好东西!哈哈~
    ----------------------------------------------------------

    话说其实一直没好好研究过js这部分firebug应该怎么用,shell用顺手了就被绑住了。不过其他css之类的还是靠firebug的说

  • 霏昀

    霏昀 (忽然想通了) 2007-12-04 15:06:14

    @NullPointer
    就是一个js的命令行,直观的比firebug方便的地方想想也就是输入函数名可以显示函数的代码。总体来说firebug相当于整了dom,css,js等等的IDE,shell就是一个小js命令行,没太大可比性。

  • su27根本就没有

    su27根本就没有 (鹿在角下) 2007-12-04 23:57:24

    我觉得firebug调试js最舒服的地方是用来找dom元素,在命令行里只需要写出变量/表达式,fb就可以把该表达式引用的dom列出来并且跟页面dom建立关联(鼠标hover显示关联,点击编辑)。在js中用console.info或者console.dir打出来也有同样效果。。。还有Breakpoint和Watch的跟踪方法,我就没怎么用了。

  • V

    V (废人,你在忙什么) 2008-10-29 22:39:45

    看不见效果图啊

  • NullPointer

    NullPointer (我是将被时间摧毁的一切。) 2008-10-29 23:31:21

    ----------------------------------------------------------
    32楼 2008-10-29 22:39:45 19岁 (知耻后勇) (西安) X
      看不见效果图啊
    ----------------------------------------------------------

    嗯,我刚才测试了一下GM版本,似乎已经失效了。。

  • 霏昀

    霏昀 (忽然想通了) 2008-10-29 23:54:21

    挂了很久很久了。。。

  • NullPointer

    NullPointer (我是将被时间摧毁的一切。) 2008-10-30 04:32:21

    海报墙Reloaded.

    改动原海报墙部分代码使之适用于改版后的豆瓣页面

    在每个书影音页面,“喜欢读"这本书"的人也喜欢:” 的标题栏右侧增加 【海报墙】 入口,
    点击则打开海报墙功能,

    下载地址:http://userscripts.org/scripts/show/36244

  • NullPointer

    NullPointer (我是将被时间摧毁的一切。) 2008-10-30 04:34:58

    ----------------------------------------------------------
    34楼 2008-10-29 23:54:21 霏昀 (北京) X
      挂了很久很久了。。。
    ----------------------------------------------------------

    这个功能挺有趣的,挂了可惜。其实就因为页面结构变了,我改了下入口和图片路径就ok了。 :)
      
    霏昀你把主贴里的下载地址更新一下就好了

  • 霏昀

    霏昀 (忽然想通了) 2008-10-30 10:01:45

    ----------------------------------------------------------
    36楼 2008-10-30 04:34:58 NullPointer (北京) X
      ----------------------------------------------------------
      34楼 2008-10-29 23:54:21 霏昀 (北京) X
        挂了很久很久了。。。
      ----------------------------------------------------------
      这个功能挺有趣的,挂了可惜。其实就因为页面结构变了,我改了下入口和图片路径就ok了。 :)
      霏昀你把主贴里的下载地址更新一下就好了
    ----------------------------------------------------------

    done

你的回应

回应请先 , 或 注册

34423 人聚集在这个小组

最新讨论  ( 更多 )

↑回顶部