基于Jquery的简易限时购物导航滚动栏

#基于Jquery的简易限时购物导航滚动栏
1.可以左右拖动滚动条;
2.点击日期对应日期居于正中且字体颜色变为红色;

在这里插入图片描述
实现2功能的原理图为:
在这里插入图片描述

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">	
		<meta http-equiv="X-UA-Compatible" content="IE=edge">		
		<meta name="viewport" content="width=device-width,initial-scale=1.0">//自适应手机尺寸
		<script src="../jquery.js"></script>
		<title>限时导航栏</title>
		<style>
			.item{
				width: 70px;
				
			}
		</style>
	</head>
	<body style="background: darkgray;">
		<div id="outer" style="background: pink;width:100%;overflow: hidden;position:relative;height: 50px;">
		//此外容器必须限定宽度,且设定overflow: hidden;
		<div id='container' style="background: pink; display: flex;flex-direction: row;flex-wrap: nowrap;position: absolute;left:0px;top:0px">
		//此容器为内容器,滚动就是利用其定位为absolute,通过改变left实现的;
			<div class="item"><span>1月2日</span><span>22:00</span></div>
			<div class="item"><span>1月3日</span><span>22:00</span></div>
			<div class="item"><span>1月4日</span><span>22:00</span></div>
			<div class="item"><span>1月5日</span><span>22:00</span></div>
			<div class="item"><span>1月6日</span><span>22:00</span></div>
			<div class="item"><span>1月7日</span><span>22:00</span></div>
			<div class="item"><span>1月8日</span><span>22:00</span></div>
			<div class="item"><span>1月9日</span><span>22:00</span></div>
		</div>
		</div>
	</body>
	<script>
			$(document).ready(function(){
				console.log('已加载');
				var container=document.getElementById('container');
				var bgX;//触摸起始点的坐标
				var evX;//触摸移动过程中每一触摸点的坐标
				var left;//内容器的left值
				//获取元素样式的方法
					function getStyle(ele,attr){
						//考虑兼容性
						var res=null;
						if(ele.currentStyle){
							res=ele.currentStyle[attr];
						}else{
							res=window.getComputedStyle(ele,null)[attr]
						}
						return parseFloat(res)		
					}
					//内容器触摸开始回调函数
				container.ontouchstart=function(event){
					console.log('touchstart')
					bgX=event.targetTouches[0].clientX;
					console.log(bgX);
					left=container.style.left
					console.log('left:'+left)
					
				}
					//内容器触摸移动回调函数
				container.ontouchmove=function(){
					console.log('touchmove');
					evX=event.targetTouches[0].clientX;					
					console.log(bgX-evX)										
					container.style.left=(bgX-evX)+'px'
					console.log('left:'+container.style.left)
					
				}
					//内容器触摸结束回调函数
				container.ontouchend=function(){
					console.log('touchend')
				}
				$('.item').click(function(event){
					$('.item').css({//每次点击前现回到原始字体颜色
						color:'black'
					})
					var wid=this.style.width;
					console.log('点击')
					console.log(event)
					var bX=event.clientX;
					console.log(bX-344/2);
					var lX= getStyle(container,'left');
					console.log('lx:'+lX)
					container.style.left=lX-(bX-344/2)+'px';
					this.style.color='red' //点击对象跟换字体颜色
				})
			})
	</script>
</html>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值