分享好友 教程首页 教程搜索 频道列表

利用jq实现横向tab分类切换自动居中

2022-02-23 19:491690
+关注2
核心提示:用代码测试即可

css:用flex布局自动处理浮动,也不用去计算ul的宽度。

js:

1.当前点击的li距离屏幕左边的距离

2.li的宽度的一半

3.总屏幕宽度的一半

4.当前滚动条滚动的距离

最后结果:

当前滚动条滚动的距离+(当前点击的li距离屏幕左边的距离-总屏幕宽度的一半)+li的宽度的一半


效果如图:


代码(jquery-1.12.4.min.js可去百度下载)

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover" />
		<title>css3 title 滑动显示</title>
		
		<style>
			.tab {
				width: 100%;
				background: #fff;
				overflow: auto;
			}
			
			.tab::-webkit-scrollbar {
				display: none;
			}
			.tab-ul {
				display: flex;
				display: -webkit-flex;
				padding: 0;
			}
			.tab-ul li {
				flex: 0 0 20%;
				text-align: center;
				list-style: none;
			}
			.tab-ul li.active {
				background: pink;
			}
		</style>
	</head>
	<body>
		<div class="tab">
			<ul class="tab-ul">
				<li class="active">1</li>
				<li>2</li>
				<li>3</li>
				<li>4</li>
				<li>5</li>
				<li>6</li>
				<li>7</li>
				<li>8</li>
				<li>9</li>
				<li>10</li>
			</ul>
		</div>
		
		<script src="js/jquery-1.12.4.min.js"></script>
		
		<script>
			$(function(){
				$('.tab-ul li').on('click', function() {
					
					$('.tab-ul li').removeClass('active');
					$(this).addClass('active');
					
					var liLeft = $(this).offset().left;
					var liWidth = $(this).width()/2;
					var widths = $(window).width()/2;
					var scrollL = $('.tab').scrollLeft();
					
					$('.tab').animate({
						scrollLeft: scrollL + (liLeft - widths) + liWidth
					})
					
				})
			})
		</script>
	</body>
</html>


本文标签: #居中 #tab #切换
整理员:网络转载
免责声明:凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。
生成海报
您可能在找更多

在css中使用display: flex;时两头对齐,上下居中的方案

    使用 display: flex; 布局时,可以通过设置 justify-content: space-between; 属性将子元素两端对齐。

小黑 CSS教程2023-04-15

img标签的水平居中、靠左、靠右

    //水平靠左.alignleft{display:inline;float:left;}imgsrc=class=alingleft//水平靠右.alignright{display:inline;float:right;}imgsrc=class=alignright//水平居中.aligncenter{clear:both;display:block;margin:au

网络转载 CSS教程2022-05-19

文章p标签css首行缩进text-indent后,导致图片img也跟着缩进从而无法居中问题

    段落前面空两个字的距离,不要再使用空格了。应该使用首行缩进text-indent。text-indent可以使得容器内首行缩进一定单位。比如中文段落一般每段前空两个汉字。p{text-indent:2em;}注:div标签不要忘记起始符。text-i

小黑 CSS教程 12022-04-29

关于touchslider.js滑动切换页面的使用

    需用代码测试

网络转载 移动端模板制作2022-03-19

下一篇
我来说两句
抢沙发