700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 原生js实现锚点定位 tab跟随内容变化 PC/移动端均适用

原生js实现锚点定位 tab跟随内容变化 PC/移动端均适用

时间:2021-08-20 20:31:20

相关推荐

原生js实现锚点定位 tab跟随内容变化 PC/移动端均适用

最近做到相关的业务,发现关于tab锚点定位的问题很多文章采用的方法略有差异,现在采用最直观的方式实现锚点定位,tab跟随内容变化而变化。

逻辑通了之后,在任何框架和场景下都能使用,不一定要靠组件来完成。以下是简单实现的HTML代码,结合移动端和PC端平台不同,更改注册事件类型就可以达到一样的效果。

锚点定位效果图

一、html代码

<div class="test"><div class="title"><span class="tab active">tab1</span><span class="tab">tab2</span></div><div class="content"><p class="con con1">内容一:果然纹风不动,不是平静,却是酝酿风暴了。蒸闷的暑天,风重重地把天压低了一半,树梢头的小叶子都沉沉垂着,风一丝不动,可是何曾平静呢?风的力量,已经可以预先觉到,好像蹲伏的猛兽,不在睡觉,正要纵身远跳。只有拂拂微风最平静,没有东西去阻挠它:树叶儿由它撩拨,杨柳顺着它弯腰,花儿草儿都随它俯仰,门里窗里任它出进,轻云附着它浮动,水面被它偎着,也柔和地让它搓揉。随着早晚的温凉、四季的寒暖,一阵微风,像那悠远轻淡的情感,使天地浮现出忧喜不同的颜色。有时候一阵风是这般轻快,这般高兴,顽皮似的一路拍打拨弄。有时候淡淡的带些清愁,有时候润润的带些温柔;有时候亢爽,有时候凄凉。谁说天地无情?它只微微的笑,轻轻的叹息,只许抑制着的风拂拂吹动。因为一放松,天地便主持不住。协议一:果然纹风不动,不是平静,却是酝酿风暴了。蒸闷的暑天,风重重地把天压低了一半,树梢头的小叶子都沉沉垂着,风一丝不动,可是何曾平静呢?风的力量,已经可以预先觉到,好像蹲伏的猛兽,不在睡觉,正要纵身远跳。只有拂拂微风最平静,没有东西去阻挠它:树叶儿由它撩拨,杨柳顺着它弯腰,花儿草儿都随它俯仰,门里窗里任它出进,轻云附着它浮动,水面被它偎着,也柔和地让它搓揉。随着早晚的温凉、四季的寒暖,一阵微风,像那悠远轻淡的情感,使天地浮现出忧喜不同的颜色。有时候一阵风是这般轻快,这般高兴,顽皮似的一路拍打拨弄。有时候淡淡的带些清愁,有时候润润的带些温柔;有时候亢爽,有时候凄凉。谁说天地无情?它只微微的笑,轻轻的叹息,只许抑制着的风拂拂吹动。因为一放松,天地便主持不住。协议一:果然纹风不动,不是平静,却是酝酿风暴了。蒸闷的暑天,风重重地把天压低了一半,树梢头的小叶子都沉沉垂着,风一丝不动,可是何曾平静呢?风的力量,已经可以预先觉到,好像蹲伏的猛兽,不在睡觉,正要纵身远跳。只有拂拂微风最平静,没有东西去阻挠它:树叶儿由它撩拨,杨柳顺着它弯腰,花儿草儿都随它俯仰,门里窗里任它出进,轻云附着它浮动,水面被它偎着,也柔和地让它搓揉。随着早晚的温凉、四季的寒暖,一阵微风,像那悠远轻淡的情感,使天地浮现出忧喜不同的颜色。有时候一阵风是这般轻快,这般高兴,顽皮似的一路拍打拨弄。有时候淡淡的带些清愁,有时候润润的带些温柔;有时候亢爽,有时候凄凉。谁说天地无情?它只微微的笑,轻轻的叹息,只许抑制着的风拂拂吹动。因为一放松,天地便主持不住。协议一:果然纹风不动,不是平静,却是酝酿风暴了。蒸闷的暑天,风重重地把天压低了一半,树梢头的小叶子都沉沉垂着,风一丝不动,可是何曾平静呢?风的力量,已经可以预先觉到,好像蹲伏的猛兽,不在睡觉,正要纵身远跳。只有拂拂微风最平静,没有东西去阻挠它:树叶儿由它撩拨,杨柳顺着它弯腰,花儿草儿都随它俯仰,门里窗里任它出进,轻云附着它浮动,水面被它偎着,也柔和地让它搓揉。随着早晚的温凉、四季的寒暖,一阵微风,像那悠远轻淡的情感,使天地浮现出忧喜不同的颜色。有时候一阵风是这般轻快,这般高兴,顽皮似的一路拍打拨弄。有时候淡淡的带些清愁,有时候润润的带些温柔;有时候亢爽,有时候凄凉。谁说天地无情?它只微微的笑,轻轻的叹息,只许抑制着的风拂拂吹动。因为一放松,天地便主持不住。协议一:果然纹风不动,不是平静,却是酝酿风暴了。蒸闷的暑天,风重重地把天压低了一半,树梢头的小叶子都沉沉垂着,风一丝不动,可是何曾平静呢?风的力量,已经可以预先觉到,好像蹲伏的猛兽,不在睡觉,正要纵身远跳。只有拂拂微风最平静,没有东西去阻挠它:树叶儿由它撩拨,杨柳顺着它弯腰,花儿草儿都随它俯仰,门里窗里任它出进,轻云附着它浮动,水面被它偎着,也柔和地让它搓揉。随着早晚的温凉、四季的寒暖,一阵微风,像那悠远轻淡的情感,使天地浮现出忧喜不同的颜色。有时候一阵风是这般轻快,这般高兴,顽皮似的一路拍打拨弄。有时候淡淡的带些清愁,有时候润润的带些温柔;有时候亢爽,有时候凄凉。谁说天地无情?它只微微的笑,轻轻的叹息,只许抑制着的风拂拂吹动。因为一放松,天地便主持不住。协议一:果然纹风不动,不是平静,却是酝酿风暴了。蒸闷的暑天,风重重地把天压低了一半,树梢头的小叶子都沉沉垂着,风一丝不动,可是何曾平静呢?风的力量,已经可以预先觉到,好像蹲伏的猛兽,不在睡觉,正要纵身远跳。只有拂拂微风最平静,没有东西去阻挠它:树叶儿由它撩拨,杨柳顺着它弯腰,花儿草儿都随它俯仰,门里窗里任它出进,轻云附着它浮动,水面被它偎着,也柔和地让它搓揉。随着早晚的温凉、四季的寒暖,一阵微风,像那悠远轻淡的情感,使天地浮现出忧喜不同的颜色。有时候一阵风是这般轻快,这般高兴,顽皮似的一路拍打拨弄。有时候淡淡的带些清愁,有时候润润的带些温柔;有时候亢爽,有时候凄凉。谁说天地无情?它只微微的笑,轻轻的叹息,只许抑制着的风拂拂吹动。因为一放松,天地便主持不住。协议一:果然纹风不动,不是平静,却是酝酿风暴了。蒸闷的暑天,风重重地把天压低了一半,树梢头的小叶子都沉沉垂着,风一丝不动,可是何曾平静呢?风的力量,已经可以预先觉到,好像蹲伏的猛兽,不在睡觉,正要纵身远跳。只有拂拂微风最平静,没有东西去阻挠它:树叶儿由它撩拨,杨柳顺着它弯腰,花儿草儿都随它俯仰,门里窗里任它出进,轻云附着它浮动,水面被它偎着,也柔和地让它搓揉。随着早晚的温凉、四季的寒暖,一阵微风,像那悠远轻淡的情感,使天地浮现出忧喜不同的颜色。有时候一阵风是这般轻快,这般高兴,顽皮似的一路拍打拨弄。有时候淡淡的带些清愁,有时候润润的带些温柔;有时候亢爽,有时候凄凉。谁说天地无情?它只微微的笑,轻轻的叹息,只许抑制着的风拂拂吹动。因为一放松,天地便主持不住。协议一:果然纹风不动,不是平静,却是酝酿风暴了。蒸闷的暑天,风重重地把天压低了一半,树梢头的小叶子都沉沉垂着,风一丝不动,可是何曾平静呢?风的力量,已经可以预先觉到,好像蹲伏的猛兽,不在睡觉,正要纵身远跳。只有拂拂微风最平静,没有东西去阻挠它:树叶儿由它撩拨,杨柳顺着它弯腰,花儿草儿都随它俯仰,门里窗里任它出进,轻云附着它浮动,水面被它偎着,也柔和地让它搓揉。随着早晚的温凉、四季的寒暖,一阵微风,像那悠远轻淡的情感,使天地浮现出忧喜不同的颜色。有时候一阵风是这般轻快,这般高兴,顽皮似的一路拍打拨弄。有时候淡淡的带些清愁,有时候润润的带些温柔;有时候亢爽,有时候凄凉。谁说天地无情?它只微微的笑,轻轻的叹息,只许抑制着的风拂拂吹动。因为一放松,天地便主持不住。协议一:果然</p><p class="con con2">内容二:也许最平静的风,还是拂拂微风。果然纹风不动,不是平静,却是酝酿风暴了。蒸闷的暑天,风重重地把天压低了一半,树梢头的小叶子都沉沉垂着,风一丝不动,可是何曾平静呢?风的力量,已经可以预先觉到,好像蹲伏的猛兽,不在睡觉,正要纵身远跳。只有拂拂微风最平静,没有东西去阻挠它:树叶儿由它撩拨,杨柳顺着它弯腰,花儿草儿都随它俯仰,门里窗里任它出进,轻云附着它浮动,水面被它偎着,也柔和地让它搓揉。随着早晚的温凉、四季的寒暖,一阵微风,像那悠远轻淡的情感,使天地浮现出忧喜不同的颜色。有时候一阵风是这般轻快,这般高兴,顽皮似的一路拍打拨弄。有时候淡淡的带些清愁,有时候润润的带些温柔;有时候亢爽,有时候凄凉。谁说天地无情?它只微微的笑,轻轻的叹息,只许抑制着的风拂拂吹动。因为一放松,天地便主持不住。协议三:也许最平静的风,还是拂拂微风。果然纹风不动,不是平静,却是酝酿风暴了。蒸闷的暑天,风重重地把天压低了一半,树梢头的小叶子都沉沉垂着,风一丝不动,可是何曾平静呢?风的力量,已经可以预先觉到,好像蹲伏的猛兽,不在睡觉,正要纵身远跳。只有拂拂微风最平静,没有东西去阻挠它:树叶儿由它撩拨,杨柳顺着它弯腰,花儿草儿都随它俯仰,门里窗里任它出进,轻云附着它浮动,水面被它偎着,也柔和地让它搓揉。随着早晚的温凉、四季的寒暖,一阵微风,像那悠远轻淡的情感,使天地浮现出忧喜不同的颜色。有时候一阵风是这般轻快,这般高兴,顽皮似的一路拍打拨弄。有时候淡淡的带些清愁,有时候润润的带些温柔;有时候亢爽,有时候凄凉。谁说天地无情?它只微微的笑,轻轻的叹息,只许抑制着的风拂拂吹动。因为一放松,天地便主持不住。协议三:也许最平静的风,还是拂拂微风。果然纹风不动,不是平静,却是酝酿风暴了。蒸闷的暑天,风重重地把天压低了一半,树梢头的小叶子都沉沉垂着,风一丝不动,可是何曾平静呢?风的力量,已经可以预先觉到,好像蹲伏的猛兽,不在睡觉,正要纵身远跳。只有拂拂微风最平静,没有东西去阻挠它:树叶儿由它撩拨,杨柳顺着它弯腰,花儿草儿都随它俯仰,门里窗里任它出进,轻云附着它浮动,水面被它偎着,也柔和地让它搓揉。随着早晚的温凉、四季的寒暖,一阵微风,像那悠远轻淡的情感,使天地浮现出忧喜不同的颜色。有时候一阵风是这般轻快,这般高兴,顽皮似的一路拍打拨弄。有时候淡淡的带些清愁,有时候润润的带些温柔;有时候亢爽,有时候凄凉。谁说天地无情?它只微微的笑,轻轻的叹息,只许抑制着的风拂拂吹动。因为一放松,天地便主持不住。协议三:也许最平静的风,还是拂拂微风。果然纹风不动,不是平静,却是酝酿风暴了。蒸闷的暑天,风重重地把天压低了一半,树梢头的小叶子都沉沉垂着,风一丝不动,可是何曾平静呢?风的力量,已经可以预先觉到,好像蹲伏的猛兽,不在睡觉,正要纵身远跳。只有拂拂微风最平静,没有东西去阻挠它:树叶儿由它撩拨,杨柳顺着它弯腰,花儿草儿都随它俯仰,门里窗里任它出进,轻云附着它浮动,水面被它偎着,也柔和地让它搓揉。随着早晚的温凉、四季的寒暖,一阵微风,像那悠远轻淡的情感,使天地浮现出忧喜不同的颜色。有时候一阵风是这般轻快,这般高兴,顽皮似的一路拍打拨弄。有时候淡淡的带些清愁,有时候润润的带些温柔;有时候亢爽,有时候凄凉。谁说天地无情?它只微微的笑,轻轻的叹息,只许抑制着的风拂拂吹动。因为一放松,天地便主持不住。协议三:也许最平静的风,还是拂拂微风。果然纹风不动,不是平静,却是酝酿风暴了。蒸闷的暑天,风重重地把天压低了一半,树梢头的小叶子都沉沉垂着,风一丝不动,可是何曾平静呢?风的力量,已经可以预先觉到,好像蹲伏的猛兽,不在睡觉,正要纵身远跳。只有拂拂微风最平静,没有东西去阻挠它:树叶儿由它撩拨,杨柳顺着它弯腰,花儿草儿都随它俯仰,门里窗里任它出进,轻云附着它浮动,水面被它偎着,也柔和地让它搓揉。随着早晚的温凉、四季的寒暖,一阵微风,像那悠远轻淡的情感,使天地浮现出忧喜不同的颜色。有时候一阵风是这般轻快,这般高兴,顽皮似的一路拍打拨弄。有时候淡淡的带些清愁,有时候润润的带些温柔;有时候亢爽,有时候凄凉。谁说天地无情?它只微微的笑,轻轻的叹息,只许抑制着的风拂拂吹动。因为一放松,天地便主持不住。协议三:也许最平静的风,还是拂拂微风。果然纹风不动,不是平静,却是酝酿风暴了。蒸闷的暑天,风重重地把天压低了一半,树梢头的小叶子都沉沉垂着,风一丝不动,可是何曾平静呢?风的力量,已经可以预先觉到,好像蹲伏的猛兽,不在睡觉,正要纵身远跳。只有拂拂微风最平静,没有东西去阻挠它:树叶儿由它撩拨,杨柳顺着它弯腰,花儿草儿都随它俯仰,门里窗里任它出进,轻云附着它浮动,水面被它偎着,也柔和地让它搓揉。随着早晚的温凉、四季的寒暖,一阵微风,像那悠远轻淡的情感,使天地浮现出忧喜不同的颜色。有时候一阵风是这般轻快,这般高兴,顽皮似的一路拍打拨弄。有时候淡淡的带些清愁,有时候润润的带些温柔;有时候亢爽,有时候凄凉。谁说天地无情?它只微微的笑,轻轻的叹息,只许抑制着的风拂拂吹动。因为一放松,天地便主持不住。协议三:也许最平静的风,还是拂拂微风。果然纹风不动,不是平静,却是酝酿风暴了。蒸闷的暑天,风重重地把天压低了一半,树梢头的小叶子都沉沉垂着,风一丝不动,可是何曾平静呢?风的力量,已经可以预先觉到,好像蹲伏的猛兽,不在睡觉,正要纵身远跳。只有拂拂微风最平静,没有东西去阻挠它:树叶儿由它撩拨,杨柳顺着它弯腰,花儿草儿都随它俯仰,门里窗里任它出进,轻云附着它浮动,水面被它偎着,也柔和地让它搓揉。随着早晚的温凉、四季的寒暖,一阵微风,像那悠远轻淡的情感,使天地浮现出忧喜不同的颜色。有时候一阵风是这般轻快,这般高兴,顽皮似的一路拍打拨弄。有时候淡淡的带些清愁,有时候润润的带些温柔;有时候亢爽,有时候凄凉。谁说天地无情?它只微微的笑,轻轻的叹息,只许抑制着的风拂拂吹动。因为一放松,天地便主持不住。协议三:也许最平静的风,还是拂拂微风。果然纹风不动,不是平静,却是酝酿风暴了。蒸闷的暑天,风重重地把天压低了一半,树梢头的小叶子都沉沉垂着,风一丝不动,可是何曾平静呢?风的力量,已经可以预先觉到,好像蹲伏的猛兽,不在睡觉,正要纵身远跳。只有拂拂微风最平静,没有东西去阻挠它:树叶儿由它撩拨,杨柳顺着它弯腰,花儿草儿都随它俯仰,门里窗里任它出进,轻云附着它浮动,水面被它偎着,也柔和地让它搓揉。随着早晚的温凉、四季的寒暖,一阵微风,像那悠远轻淡的情感,使天地浮现出忧喜不同的颜色。有时候一阵风是这般轻快,这般高兴,顽皮似的一路拍打拨弄。有时候淡淡的带些清愁,有时候润润的带些温柔;有时候亢爽,有时候凄凉。谁说天地无情?它只微微的笑,轻轻的叹息,只许抑制着的风拂拂吹动。因为一放松,天地便主持不住。协议三:也许最平静的风,</p></div></div>

二、CSS代码

.test {width: 300px;height: 400px;margin: 0 auto;}.tab {margin: 0;width: 50px;height: 20px;display: inline-block;text-align: center;background: rgb(227, 226, 226);color: #000;border: 1px solid black;border-radius: 10px;}.active {color: beige;background: rgb(131, 107, 107);}.content {width: 300px;height: 400px;overflow: auto;border: black solid 1px;}.con1 {margin: 0;background-color: pink;}.con2 {margin: 0;background-color: rgb(159, 219, 243);}

三、JS逻辑代码

// 步骤一:// 获取tab与内容的DOMconst tab = document.querySelectorAll('.tab');const con = document.querySelectorAll('.con');// 步骤二:// 实现逻辑一:点击tab,滑动到相应位置,简单来说就是调用scrollIntoView方法就可以实现tab[0].onclick = function () {con[0].scrollIntoView();tab[0].className = 'tab active';tab[1].className = 'tab';};tab[1].onclick = function () {con[1].scrollIntoView();tab[1].className = 'tab active';tab[0].className = 'tab';};// 步骤三:// 实现逻辑二:tab跟随页面滚动内容变化// 这里注册的事件跟随要求变化//pc端可使用鼠标移入事件触发onmouseenter(只触发一次),onmouseover(只要在节点内就一直触发)con[0].onmouseenter = function () {// con[0].ontouchend = function () {// 将当前触摸到的元素的样式中加上激活样式,实现选中的效果tab[0].className = 'tab active';// 没有触摸到的元素,将样式设置为初始样式tabtab[1].className = 'tab';};con[1].onmouseenter = function () {// 移动端可以使用触摸事件达到效果,根据具体场景的不同,也可改为注册监听器的形式,// eg: document.addEventListener('touched',function(){},false);// 注意:必须在适当的位置清除监听器,以免造成不必要的资源浪费,removeEventListener('touchend', function(){});// con[1].ontouchend = function () {tab[1].className = 'tab active';tab[0].className = 'tab';};

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。