Greasy Fork

Greasy Fork is available in English.

豆瓣悬停式导航栏

为豆瓣增加悬停式二级导航

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Greasemonkey 油猴子Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Userscripts ,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name         Sliding Navbar for douban
// @name:zh-CN   豆瓣悬停式导航栏
// @namespace    caomu.douban.sliding.navbar
// @version      0.4
// @description  Add Sliding Sub-Navbar for douban.com
// @description:zh-CN 为豆瓣增加悬停式二级导航
// @author       footroot <caomu>
// @include      https://*.douban.com/*
// @include      http://*.douban.com/*
// @require      https://cdn.bootcss.com/jquery/1.8.3/jquery.min.js
// @grant        GM_addStyle
// ==/UserScript==

var cssStr =
'.bn-sp a[data-moreurl-dict]{color:#d5d5d5 !important}'
+'.bn-sp a[data-moreurl-dict]:hover{color:#fff !important}'
+'.subnav{position: absolute !important;left: -999em !important;display: block !important;z-index:90 !important;padding: 10px 0; border: 1px solid #e6e6e6; background: #fff; white-space: nowrap; top: 28px;}'
+'.subnav{} .bn-sp:hover .subnav {left: auto !important;display: block !important}'
+'.subnav a {color: #3d3d3d !important;display: block !important;padding: 0 20px !important;line-height: 28px !important;}'
+'.subnav a:hover {background-color: #f6f6f6 !important;}'

GM_addStyle(cssStr)

var _uid = $('.global-nav-items ul li a').data('moreurl-dict').uid;
var _mine = (_uid === "0") ? "mine" : "people/" + _uid;
$('.top-nav-doubanapp').hide();

var _navList = {
  'main': [
    {'name':'浏览发现', 'link':'explore'},
    {'name':'发现条目', 'link':'subject/explore'},
    {'name':'移动应用', 'link':'app'},
    {'name':'游戏', 'link':'game'},
    {'name':'线上活动', 'link':'online'},
    {'name':'我的主页', 'link':'mine'},
    {'name':'广播', 'link':'mine/statuses'},
    {'name':'相册', 'link':'mine/photos'},
    {'name':'日记', 'link':'mine/notes'},
    {'name':'喜欢', 'link':_mine + '/likes'},
    {'name':'豆列', 'link':'mine/doulists'},
    {'name':'地方', 'link':'trip/mine'}
  ],
  'book': [
    {'name':'我读', 'link':'mine'},
    {'name':'书评', 'link':_mine + '/reviews'},
    {'name':'笔记', 'link':_mine + '/annotation'},
    {'name':'豆列', 'link':_mine + '/doulists'},
    {'name':'动态', 'link':'updates'},
    {'name':'豆瓣猜', 'link':'recommended'},
    {'name':'分类浏览', 'link':'tag'},
    {'name':'购书单', 'link':'cart'},
    {'name':'排行榜', 'link':'chart'},
    {'name':'书评专区', 'link':'review/best'}
  ],
  'movie':[
    {'name':'我看', 'link':'mine'},
    {'name':'影评', 'link':_mine + '/reviews'},
    {'name':'问答', 'link':_mine + '/question'},
    {'name':'豆列', 'link':_mine + '/doulists'},
    {'name':'影讯', 'link':'nowplaying'},
    {'name':'选电影', 'link':'explore'},
    {'name':'电视剧', 'link':'tv'},
    {'name':'排行榜', 'link':'chart'},
    {'name':'豆瓣猜', 'link':'recommended'},
    {'name':'分类', 'link':'tag'},
    {'name':'热门影评', 'link':'review/best'}
  ],
  'music':[
    {'name':'我听', 'link':'mine'},
    {'name':'音乐动态', 'link':_mine + '/update'},
    {'name':'乐评', 'link':_mine + '/reviews'},
    {'name':'我的歌单', 'link':_mine + '/programme'},
    {'name':'豆列', 'link':_mine + '/doulists'},
    {'name':'音乐人', 'link':'artists'},
    {'name':'专题', 'link':'topics'},
    {'name':'排行榜', 'link':'chart'},
    {'name':'豆瓣猜', 'link':'recommended'},
    {'name':'分类浏览', 'link':'tag'},
    {'name':'最新乐评', 'link':'review/latest'},
    {'name':'歌单', 'link':'programmes'}
  ],
  'location':[
    {'name':'我的同城', 'link':'mine'},
    {'name':'近期活动', 'link':'evets'},
    {'name':'舞台剧', 'link':'drama'},
    {'name':'剧评', 'link':'drama/review/best'}
  ],
  'group':[
    {'name':'我的小组', 'link':'mine'},
    {'name':'加入', 'link':_mine + '/joins'},
    {'name':'发起', 'link':_mine + '/publish'},
    {'name':'回应', 'link':_mine + '/reply'},
    {'name':'喜欢', 'link':_mine + '/likes'},
    {'name':'推荐', 'link':_mine + '/recommendations'},
    {'name':'话题精选', 'link':'explore'}
  ],
  'read':[
    {'name':'我的订阅', 'link':'subscriptions'},
    {'name':'最近阅读', 'link':'reader'},
    {'name':'购物车', 'link':'account/wishlist'}
  ],
  'fm':[
    {'name':'兆赫', 'link':'explore/channels'},
    {'name':'歌单', 'link':'explore/songlists'},
    {'name':'我的FM', 'link':'mine'}
  ],
  'commodity':[
    {'name':'我的东西', 'link':_mine},
    {'name':'豆列', 'link':'doulists'},
    {'name':'海淘', 'link':'haitao'},
    {'name':'图文', 'link':'articles'}
  ],
  'market':[
    {'name':'个人中心', 'link':'people'},
    {'name':'购物车', 'link':'cart'}
  ]
};

function init(){
  var aInLi = $('.global-nav-items ul li').children('a[data-moreurl-dict]');
  aInLi.parent().addClass('bn-sp');
  aInLi.each(function(){
    var _t = $(this), _dict = _t.data('moreurl-dict');
    if(_dict){
      var _from = _dict.from;
      var _navClass = _from.replace('top-nav-click-','');
      newSubNav(_t, _navClass);
    }
  })
}

function newSubNav(that, navClass){
  var _t = that, _nc = navClass, _nl = _navList[_nc], _loc = _t.prop('origin') + _t.prop('pathname');
  _loc = _loc.replace(/\/$/,'') + '/';
  var _targetOn = _t.parent().hasClass('on'), _target = _targetOn ? '' : '_blank'
  if (_nl){
    _t.after($('<div class="more-items subnav nav-' + _nc + '">'));
    $('.nav-' + _nc).append($('<table>'));
    for (var i in _nl) {
      var _str = '<tr><td><a href="' + _loc + _nl[i].link
      + '" target="'+_target+'">' + _nl[i].name + '</a></td></tr>'
      _t.next().children('table').append($(_str))
    }
  }
}

var _nav = $('#db-global-nav');
if(_nav.length > 0){
  init();
}