支持目录搜索

This commit is contained in:
fofolee 2020-06-07 09:55:34 +08:00
parent 42f50b26cf
commit 6a0a0b9976
2 changed files with 58 additions and 19 deletions

View File

@ -46,7 +46,8 @@
var height = typeof opts.height === 'number' && opts.height; var height = typeof opts.height === 'number' && opts.height;
var padding = typeof opts.padding === 'number' && opts.padding; var padding = typeof opts.padding === 'number' && opts.padding;
that.$element.width(width + padding * 2); that.$element.width(width + padding * 2);
var html = '<ul style="height: ' + height + 'px;padding:' + padding + 'px">'; var html = `<ul style="height: ${height}px;padding: ${padding}px">
<input type="text" placeholder="搜索标题" style="width: ${width}px">`;
var num = 0; var num = 0;
$('*').each(function() { $('*').each(function() {
var _this = $(this); var _this = $(this);
@ -105,24 +106,42 @@
}, },
bindEvent: function() { bindEvent: function() {
var _this = this; var _this = this;
$('#manual').scroll(function() { $('#manual').scroll(function () {
_this.$element.find('input').prop('value', '')
_this.$element.find('li').show()
_this.setActive() _this.setActive()
var actived = $('#manual .active').get(0) // scroll
if(actived) actived.scrollIntoView({ behavior: "smooth", block: "center" }); var actived = _this.$element.find('.active')
if (actived.length != 0) {
var top = actived.offset().top
if (top < 0 || top > _this.settings.height) {
actived.get(0).scrollIntoView({ behavior: "smooth", block: "center" });
}
}
}); });
_this.$element.off() _this.$element.off()
_this.$element.on('click', '.btn-box', function() { _this.$element.on('click', '.btn-box', function() {
if ($(this).find('span').hasClass('icon-minus-sign')) { if ($(this).find('span').hasClass('icon-minus-sign')) {
$(this).find('span').removeClass('icon-minus-sign').addClass('icon-plus-sign'); $(this).find('span').removeClass('icon-minus-sign').addClass('icon-plus-sign');
_this.$element.find('ul').fadeOut(); _this.$element.find('ul').fadeOut();
// $('#manualBody').removeClass('withNaviBar')
} else { } else {
$(this).find('span').removeClass('icon-plus-sign').addClass('icon-minus-sign'); $(this).find('span').removeClass('icon-plus-sign').addClass('icon-minus-sign');
_this.$element.find('ul').fadeIn(); _this.$element.find('ul').fadeIn();
// $('#manualBody').addClass('withNaviBar') _this.$element.find('input').focus()
} }
}) })
// 目录搜索
_this.$element.on('input', 'input', function () {
var keyword = $(this).prop('value')
_this.$element.find('li').each(function(){
if ($(this).find('a').text().toUpperCase().includes(keyword.toUpperCase())) {
$(this).show()
} else {
$(this).hide()
}
})
})
} }
}; };
@ -162,7 +181,7 @@
levelTwo: 'h2', //二级标题(暂不支持更多级) levelTwo: 'h2', //二级标题(暂不支持更多级)
levelThree: 'h3', //二级标题(暂不支持更多级) levelThree: 'h3', //二级标题(暂不支持更多级)
width: 220, //容器宽度 width: 220, //容器宽度
height: 480, //容器高度 height: 460, //容器高度
padding: 20, //内部间距 padding: 20, //内部间距
offTop: 100, //滚动切换导航时离顶部的距离 offTop: 100, //滚动切换导航时离顶部的距离

View File

@ -48,7 +48,7 @@ a:focus {
/*-------main---------*/ /*-------main---------*/
#manualNavi { #manual #manualNavi {
position: fixed; position: fixed;
bottom: 0; bottom: 0;
right: 15px; right: 15px;
@ -56,19 +56,39 @@ a:focus {
text-align: left; text-align: left;
} }
#manualNavi ul { #manual #manualNavi ul {
line-height: 2; line-height: 2;
overflow-y: auto; overflow-y: auto;
background: #ffffffe0; background: #ffffffe0;
-webkit-box-shadow: 0 0 10px #CCC; -webkit-box-shadow: 0 0 10px #CCC;
-moz-box-shadow: 0 0 10px #CCC; -moz-box-shadow: 0 0 10px #CCC;
box-shadow: 0 0 10px #CCC; box-shadow: 0 0 10px #CCC;
margin: 0 0 5px 0;
} }
#manualNavi li { #manual #manualNavi input {
border-bottom: 1px solid #64c699;
outline: none;
border-top: none;
border-left: none;
border-right: none;
margin-bottom: 10px !important;
font-size: 16px;
min-width: unset;
box-shadow: none;
}
#manual #manualNavi li {
list-style: none; list-style: none;
} }
#manual #manualNavi a {
color: #42b983;
text-decoration: none;
font-weight: normal;
user-select: none
}
#manualNavi ul>li.sub { #manualNavi ul>li.sub {
padding-left: 20px; padding-left: 20px;
} }
@ -81,11 +101,11 @@ a:focus {
color: #399c9c; color: #399c9c;
} */ } */
#manualNavi ul>li.active>a { #manual #manualNavi ul>li.active>a {
color: #ff5370; color: #ff5370;
} }
.btn-box { #manual #manualNavi .btn-box {
display: inline-block; display: inline-block;
width: 40px; width: 40px;
height: 40px; height: 40px;
@ -94,7 +114,7 @@ a:focus {
position: relative; position: relative;
} }
.icon-plus-sign { #manual #manualNavi .icon-plus-sign {
display: inline-block; display: inline-block;
width: 26px; width: 26px;
height: 26px; height: 26px;
@ -106,8 +126,8 @@ a:focus {
left: 235px; left: 235px;
} }
.icon-plus-sign:before, #manual #manualNavi .icon-plus-sign:before,
.icon-plus-sign:after { #manual #manualNavi .icon-plus-sign:after {
content: ''; content: '';
display: inline-block; display: inline-block;
width: 4px; width: 4px;
@ -119,11 +139,11 @@ a:focus {
left: 7px; left: 7px;
} }
.icon-plus-sign:after { #manual #manualNavi .icon-plus-sign:after {
-webkit-transform: rotate(90deg); transform: rotate(90deg);
} }
.icon-minus-sign { #manual #manualNavi .icon-minus-sign {
display: inline-block; display: inline-block;
width: 26px; width: 26px;
height: 26px; height: 26px;
@ -135,7 +155,7 @@ a:focus {
left: 235px; left: 235px;
} }
.icon-minus-sign:before { #manual #manualNavi .icon-minus-sign:before {
content: ''; content: '';
display: inline-block; display: inline-block;
width: 18px; width: 18px;