先上效果图,在点击栏目后导航条会带有自动滚动到中间的特效。
流程说明
如果单个栏目超过屏幕中间位置。那么滚动条就会自动居中到中间的位置。如果是最后几个栏目则不会发生变化。
代码因为是根据自身网站所设计,会有一些多余的代码可以删除。
HTML代码
全部小程序h5家居百货政府机构企业官网
JS部分的代码
$("#box").attr("style", "min-height:" + ($(window).height()-250) + "px") Let my = { option: {}, Ajax() { $("#loding").html(loading.h0); setTimeout(() => { ajax.get("/Api/TemplateDetails/", my.option).then(res => { if (res.state == 200) { let db = res.data; let code = ""; db.forEach((e) => { code += ''; code += ''; code += '' + e.title + '|' + my.getlistname(e.list) + ''; code += '' + e.content + ' '; }) $("#obj").Append(code); my.option.id = db[db.length - 1].id; $("#loding").html("") my.set.kg = 0; } if (res.state == 204) { $("#loding").html(loading.h1) } }).catch(res => { $("#loding").html(loading.h3) my.set.kg = 0; }) }, 500) }, set: { kg: 0 }, db: "", csh() { $("#obj").html(""); my.option = {}; my.set.kg = 0; $("#sid").val(0); $("#slist").val(0) }, setid() { let sid = parseInt($("#sid").val()); if (sid > 0) { my.option.id = sid; } }, setlist() { let slist = parseInt($("#slist").val()); if (slist > 0) { my.option.list = slist; } }, list: JSON.parse($("#mylist").val()), getlistname(e) { let name = ""; for (let i in my.list) { if (my.list[i].id == e) { return my.list[i].name; } } return name; } } my.setid(); my.setlist(); $(window).scroll(function () { if ($(this).scrollTop() + $(this).height() >= ($(document).height() - 100)) { if (my.set.kg == 0) { my.set.kg = 1; my.ajax(); } } }); let s = $("#template_nav li").eq(0).width(); $("#line").attr("style", "width: " + s + "px;"); //$("#loding").html(loading.h0) $(shownav.li).click(function () { shownav.show(this); $(shownav.li).removeClass(); $(this).addClass("active"); my.csh(); $("#slist").val($(this).attr("data-id")); my.setlist(); my.ajax(); })
CSS部分代码
.template_icon { height: 2rem; overflow: hidden; border-radius: 0.1rem; } .template_icon img { width: 100%; } .template_list_title { padding: 0.2rem 0; } .template_list_title dd { color: #333333; font-size: 0.2rem; line-height: 0.28rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .template_list_title a { color: #333333; white-space: nowrap; } .template_list_title dd span { font-size: 0.16rem; } .template_list_title dt { color: #999999; font-size: 0.13rem; margin-top: 0.05rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .template_nav { width: 100%; overflow: hidden; background-color: #fff; height: 0.45rem; } .template_nav_box { line-height: 0.45rem; height: 0.55rem; overflow: hidden; overflow-x: auto; -webkit-overflow-scrolling: touch; position: relative; } .template_nav_box ul { display: flex; } .template_nav li { box-sizing: border-box; text-align: center; flex-shrink: 0; transition: all 0.5s ease; -webkit-transform: all 0.5s ease; } .template_nav .active { font-weight: 900; } .template_nav span { padding: 0 0.1rem; } .tabs_line { width: 100%; position: absolute; bottom: 0.05rem; } .tabs_line_s { height: 0.03rem; transition: all 0.5s ease; -webkit-transform: all 0.5s ease; position: relative; } .tabs_line_s::after { content: ''; background-color: #EE0A24; width: 50%; height: 0.03rem; position: absolute; bottom: 0.1rem; left: 0; right: 0; margin: auto; }