fixed #12494
This commit is contained in:
@@ -19,7 +19,7 @@
|
||||
* @fileoverview util and every page should be used.
|
||||
*
|
||||
* @author <a href="http://vanessa.b3log.org">Liyuan Li</a>
|
||||
* @version 0.1.0.0, Feb 17, 2017
|
||||
* @version 0.1.0.0, Sep 2, 2018
|
||||
*/
|
||||
|
||||
/**
|
||||
@@ -28,34 +28,27 @@
|
||||
*/
|
||||
var Skin = {
|
||||
_initCommon: function ($goTop) {
|
||||
$('body').on('click', '.content-reset img', function () {
|
||||
window.open(this.src)
|
||||
})
|
||||
|
||||
var $banner = $('header .banner'),
|
||||
$navbar = $('header .navbar')
|
||||
|
||||
$(window).scroll(function () {
|
||||
if ($(window).scrollTop() > 125) {
|
||||
$goTop.show()
|
||||
} else {
|
||||
$goTop.hide()
|
||||
}
|
||||
|
||||
if ($(window).width() < 701) {
|
||||
return false
|
||||
}
|
||||
|
||||
if ($(window).scrollTop() > $banner.height()) {
|
||||
$navbar.addClass('pin')
|
||||
$('.main-wrap').parent().css('margin-top', '86px')
|
||||
} else {
|
||||
$navbar.removeClass('pin')
|
||||
$('.main-wrap').parent().css('margin-top', '0')
|
||||
}
|
||||
})
|
||||
},
|
||||
init: function () {
|
||||
$('body').on('click', '.content-reset img', function () {
|
||||
window.open(this.src)
|
||||
})
|
||||
|
||||
this._initCommon($('.icon__up'))
|
||||
|
||||
$('.header__nav a, .header__m a').each(function () {
|
||||
if (this.href === location.href) {
|
||||
this.className = 'current'
|
||||
}
|
||||
})
|
||||
|
||||
if (!('IntersectionObserver' in window)) {
|
||||
$('.item').addClass('item--active')
|
||||
return false
|
||||
@@ -73,7 +66,8 @@ var Skin = {
|
||||
? entrie.intersectionRatio !== 0 : entrie.isIntersecting) {
|
||||
$(entrie.target).addClass('item--active')
|
||||
} else {
|
||||
if ($(entrie.target).closest('.side').length === 1) {
|
||||
if ($(entrie.target).closest('.side').length === 1 ||
|
||||
$(entrie.target).closest('.article-list').hasClass('content')) {
|
||||
return
|
||||
}
|
||||
$(entrie.target).removeClass('item--active')
|
||||
@@ -84,89 +78,16 @@ var Skin = {
|
||||
window.imageIntersectionObserver.observe(this)
|
||||
})
|
||||
}
|
||||
|
||||
this._initCommon($('.icon-up'))
|
||||
|
||||
$('.navbar nav a').each(function () {
|
||||
if (this.href === location.href) {
|
||||
this.className = 'current'
|
||||
}
|
||||
})
|
||||
|
||||
$('.responsive .list a').each(function () {
|
||||
if (this.href === location.href) {
|
||||
$(this).parent().addClass('current')
|
||||
}
|
||||
})
|
||||
|
||||
$('.responsive .icon-list').click(function () {
|
||||
$('.responsive .list').slideToggle()
|
||||
})
|
||||
},
|
||||
_initArticleCommon: function (tocLabel, siteViewLabel) {
|
||||
// TOC
|
||||
_initArticleCommon: function () {
|
||||
if ($('.b3-solo-list li').length > 0 && $(window).width() > 1000) {
|
||||
// add color to sidebar menu
|
||||
$('aside').addClass('has-toc')
|
||||
|
||||
// append toc to sidebar menu
|
||||
var articleTocHTML = '<ul class="fn-clear"><li class="current" data-tab="toc">' +
|
||||
tocLabel
|
||||
+ '</li><li data-tab="site">' + siteViewLabel +
|
||||
'</li></ul><section></section>'
|
||||
$('aside').prepend(articleTocHTML)
|
||||
var $sectionF = $('aside section:first').html($('.b3-solo-list')),
|
||||
$sectionL = $('aside section:last')
|
||||
$sectionF.height($(window).height() - 154).
|
||||
css({'overflow': 'auto', 'width': $('aside').width() + 'px'})
|
||||
$sectionL.hide()
|
||||
// 切换 tab
|
||||
$('aside > ul > li').click(function () {
|
||||
if ($(this).data('tab') === 'toc') {
|
||||
$sectionL.animate({
|
||||
'opacity': '0',
|
||||
'top': '-50px',
|
||||
}, 300, function () {
|
||||
$sectionF.show().css('top', '-50px')
|
||||
$sectionF.animate({
|
||||
'opacity': '1',
|
||||
'top': '0',
|
||||
}, 300).show()
|
||||
})
|
||||
} else {
|
||||
$sectionF.animate({
|
||||
'opacity': '0',
|
||||
'top': '-50px',
|
||||
}, 300, function () {
|
||||
$sectionF.hide().css('top', '-50px')
|
||||
$sectionL.animate({
|
||||
'opacity': '1',
|
||||
'top': '0',
|
||||
}, 300).show()
|
||||
}).hide()
|
||||
}
|
||||
$('aside > ul > li').removeClass('current')
|
||||
$(this).addClass('current')
|
||||
})
|
||||
|
||||
$(window).scroll(function () {
|
||||
if ($(window).scrollTop() > 125) {
|
||||
$('aside section:eq(0)').css({
|
||||
position: 'fixed',
|
||||
top: '51px',
|
||||
backgroundColor: '#fff',
|
||||
})
|
||||
} else {
|
||||
$('aside section:eq(0)').css({
|
||||
position: 'inherit',
|
||||
borderLeft: 0,
|
||||
})
|
||||
}
|
||||
})
|
||||
$('.side').
|
||||
prepend('<div class="module"><div class="module__list"></div></div>')
|
||||
$('.side .module:eq(0) .module__list').html($('.b3-solo-list'))
|
||||
}
|
||||
},
|
||||
initArticle: function (tocLabel, siteViewLabel) {
|
||||
this._initArticleCommon(tocLabel, siteViewLabel)
|
||||
initArticle: function () {
|
||||
this._initArticleCommon()
|
||||
|
||||
setTimeout(function () {
|
||||
if ($('#externalRelevantArticlesWrap li').length === 0) {
|
||||
|
Reference in New Issue
Block a user