mirror of
https://github.com/twbs/bootstrap.git
synced 2024-11-29 11:24:18 +01:00
fix affix…
This commit is contained in:
parent
124d7e6279
commit
f5f04ae4a0
@ -737,7 +737,6 @@ input.focused {
|
|||||||
right: 15px;
|
right: 15px;
|
||||||
bottom: 15px;
|
bottom: 15px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.bs-header {
|
.bs-header {
|
||||||
font-size: 21px;
|
font-size: 21px;
|
||||||
text-align: left;
|
text-align: left;
|
||||||
@ -793,12 +792,22 @@ input.focused {
|
|||||||
@media screen and (min-width: 992px) {
|
@media screen and (min-width: 992px) {
|
||||||
|
|
||||||
/* Widen the fixed sidebar */
|
/* Widen the fixed sidebar */
|
||||||
.bs-sidebar.affix {
|
.bs-sidebar.affix,
|
||||||
position: fixed; /* Undo the static from mobile-first approach */
|
.bs-sidebar.affix-bottom {
|
||||||
top: 50px;
|
|
||||||
width: 213px;
|
width: 213px;
|
||||||
}
|
}
|
||||||
|
.bs-sidebar.affix {
|
||||||
|
position: fixed; /* Undo the static from mobile-first approach */
|
||||||
|
top: 80px;
|
||||||
|
}
|
||||||
|
.bs-sidebar.affix-bottom {
|
||||||
|
position: absolute; /* Undo the static from mobile-first approach */
|
||||||
|
}
|
||||||
|
.bs-sidebar.affix-bottom .bs-sidenav,
|
||||||
|
.bs-sidebar.affix .bs-sidenav {
|
||||||
|
margin-top: 0;
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
.bs-header h1,
|
.bs-header h1,
|
||||||
.bs-header p {
|
.bs-header p {
|
||||||
margin-right: 380px;
|
margin-right: 380px;
|
||||||
@ -818,6 +827,7 @@ input.focused {
|
|||||||
@media screen and (min-width: 1200px) {
|
@media screen and (min-width: 1200px) {
|
||||||
|
|
||||||
/* Widen the fixed sidebar again */
|
/* Widen the fixed sidebar again */
|
||||||
|
.bs-sidebar.affix-bottom,
|
||||||
.bs-sidebar.affix {
|
.bs-sidebar.affix {
|
||||||
width: 270px;
|
width: 270px;
|
||||||
}
|
}
|
||||||
|
@ -13,12 +13,23 @@
|
|||||||
e.preventDefault()
|
e.preventDefault()
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
// back to top
|
// back to top
|
||||||
setTimeout(function () {
|
setTimeout(function () {
|
||||||
$('.bs-sidebar').affix({
|
var $sideBar = $('.bs-sidebar')
|
||||||
|
|
||||||
|
$sideBar.affix({
|
||||||
offset: {
|
offset: {
|
||||||
top: function () { return $window.width() <= 980 ? 290 : 210 }
|
top: function () {
|
||||||
, bottom: 270
|
var offsetTop = $sideBar.offset().top
|
||||||
|
var sideBarMargin = parseInt($sideBar.children(0).css('margin-top'), 10)
|
||||||
|
var navOuterHeight = $('.bs-docs-nav').height()
|
||||||
|
|
||||||
|
return (this.top = offsetTop - navOuterHeight - sideBarMargin)
|
||||||
|
}
|
||||||
|
, bottom: function () {
|
||||||
|
return (this.bottom = $('.bs-footer').outerHeight(true))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}, 100)
|
}, 100)
|
||||||
|
10
dist/js/bootstrap.js
vendored
10
dist/js/bootstrap.js
vendored
@ -1842,6 +1842,8 @@ if (!jQuery) throw new Error("Bootstrap requires jQuery")
|
|||||||
this.checkPosition()
|
this.checkPosition()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Affix.RESET = 'affix affix-top affix-bottom'
|
||||||
|
|
||||||
Affix.DEFAULTS = {
|
Affix.DEFAULTS = {
|
||||||
offset: 0
|
offset: 0
|
||||||
}
|
}
|
||||||
@ -1859,7 +1861,6 @@ if (!jQuery) throw new Error("Bootstrap requires jQuery")
|
|||||||
var offset = this.options.offset
|
var offset = this.options.offset
|
||||||
var offsetTop = offset.top
|
var offsetTop = offset.top
|
||||||
var offsetBottom = offset.bottom
|
var offsetBottom = offset.bottom
|
||||||
var reset = 'affix affix-top affix-bottom'
|
|
||||||
|
|
||||||
if (typeof offset != 'object') offsetBottom = offsetTop = offset
|
if (typeof offset != 'object') offsetBottom = offsetTop = offset
|
||||||
if (typeof offsetTop == 'function') offsetTop = offset.top()
|
if (typeof offsetTop == 'function') offsetTop = offset.top()
|
||||||
@ -1870,11 +1871,16 @@ if (!jQuery) throw new Error("Bootstrap requires jQuery")
|
|||||||
offsetTop != null && (scrollTop <= offsetTop) ? 'top' : false
|
offsetTop != null && (scrollTop <= offsetTop) ? 'top' : false
|
||||||
|
|
||||||
if (this.affixed === affix) return
|
if (this.affixed === affix) return
|
||||||
|
if (this.unpin) this.$element.css('top', '')
|
||||||
|
|
||||||
this.affixed = affix
|
this.affixed = affix
|
||||||
this.unpin = affix == 'bottom' ? position.top - scrollTop : null
|
this.unpin = affix == 'bottom' ? position.top - scrollTop : null
|
||||||
|
|
||||||
this.$element.removeClass(reset).addClass('affix' + (affix ? '-' + affix : ''))
|
this.$element.removeClass(Affix.RESET).addClass('affix' + (affix ? '-' + affix : ''))
|
||||||
|
|
||||||
|
if (affix == 'bottom') {
|
||||||
|
this.$element.offset({ top: document.body.offsetHeight - offsetBottom - this.$element.height() })
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
2
dist/js/bootstrap.min.js
vendored
2
dist/js/bootstrap.min.js
vendored
File diff suppressed because one or more lines are too long
10
js/affix.js
10
js/affix.js
@ -36,6 +36,8 @@
|
|||||||
this.checkPosition()
|
this.checkPosition()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Affix.RESET = 'affix affix-top affix-bottom'
|
||||||
|
|
||||||
Affix.DEFAULTS = {
|
Affix.DEFAULTS = {
|
||||||
offset: 0
|
offset: 0
|
||||||
}
|
}
|
||||||
@ -53,7 +55,6 @@
|
|||||||
var offset = this.options.offset
|
var offset = this.options.offset
|
||||||
var offsetTop = offset.top
|
var offsetTop = offset.top
|
||||||
var offsetBottom = offset.bottom
|
var offsetBottom = offset.bottom
|
||||||
var reset = 'affix affix-top affix-bottom'
|
|
||||||
|
|
||||||
if (typeof offset != 'object') offsetBottom = offsetTop = offset
|
if (typeof offset != 'object') offsetBottom = offsetTop = offset
|
||||||
if (typeof offsetTop == 'function') offsetTop = offset.top()
|
if (typeof offsetTop == 'function') offsetTop = offset.top()
|
||||||
@ -64,11 +65,16 @@
|
|||||||
offsetTop != null && (scrollTop <= offsetTop) ? 'top' : false
|
offsetTop != null && (scrollTop <= offsetTop) ? 'top' : false
|
||||||
|
|
||||||
if (this.affixed === affix) return
|
if (this.affixed === affix) return
|
||||||
|
if (this.unpin) this.$element.css('top', '')
|
||||||
|
|
||||||
this.affixed = affix
|
this.affixed = affix
|
||||||
this.unpin = affix == 'bottom' ? position.top - scrollTop : null
|
this.unpin = affix == 'bottom' ? position.top - scrollTop : null
|
||||||
|
|
||||||
this.$element.removeClass(reset).addClass('affix' + (affix ? '-' + affix : ''))
|
this.$element.removeClass(Affix.RESET).addClass('affix' + (affix ? '-' + affix : ''))
|
||||||
|
|
||||||
|
if (affix == 'bottom') {
|
||||||
|
this.$element.offset({ top: document.body.offsetHeight - offsetBottom - this.$element.height() })
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user