> 웹 프론트엔드 > JS 튜토리얼 > 슬라이더 검증 기능 구현

슬라이더 검증 기능 구현

一个新手
풀어 주다: 2018-05-18 09:26:22
원래의
3961명이 탐색했습니다.

최근에 슬라이딩 인증이라는 작은 글을 썼어요

<em><html>
<head>
	<meta charset="UTF-8">
	<title></title>
	<style type="text/css">
		*{
			margin: 0px;
			padding: 0px;
		}
		body{
			background: #000000;
		}
		.sliding{
			width: 400px;
			height: 40px;
			margin: 50px auto;
			background: #ccc;
			text-align: center;
			line-height: 40px;
			position: relative;
		}
		.sliding > p{
			width: 0px;
			height: 100%;
			position: absolute;
			top: 0;
			left: 0;
			background: green;
			z-index: 99;
			color: #FFFFFF;
			text-align: center;
			overflow: hidden;
		}
		.sliding > span{
			display: block;
			width: 46px;
			height: 100%;
			position: absolute;
			top: 0;
			left: 0;
			background-size: cover;
			cursor: pointer;
			z-index: 999;
			}
		.span1_back{
			background: url(img/sli1.png) no-repeat center center;
		}
		.span2_back{
			background: url(img/sli2.png)no-repeat center center;
		}
	</style>
</head>
<body>
	<p class="sliding">
		请按住滑块,拖至最右侧。
		<p></p>
		<span class="span1_back">
		</span>
	</p>
	<!-- 布局方面主要是使用定位把p标签和span都定位在 p 左边 --><br/><br/>
	<script src="js/jquery.js" type="text/javascript" charset="utf-8"></script>
	<script type="text/javascript">
		$(function(){
			
			$(&#39;.sliding > span&#39;).on(&#39;mousedown&#39;,function(ev){
				var down_X=ev.clientX;     //获取鼠标摁下的位置
				var p_W=$(&#39;.sliding > p&#39;).get(0).offsetWidth;   //获取p的宽度当然这其实这个可有可无
				var span_X=$(&#39;.sliding > span&#39;).get(0).offsetLeft;  //与上同理
				$(document).get(0).onmousemove=function(ev){
					var move_X=ev.clientX; //获取鼠标移动的位置
					var size = move_X - down_X + p_W; //用移动过后的位置减去鼠标摁下的位置加上p的宽度或者 span 的left 值 因为俩者是同步的 所以 减去 其中一个就好					
					if(size>0){// 移动的时候判断size>0的时候执行,Math.min选取最小值,让拖动过程中不至于超出
						size=Math.min(($(&#39;.sliding&#39;).get(0).offsetWidth - $(&#39;.sliding > span&#39;).get(0).offsetWidth),size);
					}else{ //小于0的时候 size =0; 防止有无聊的用户拖回 超出边界。 
						size=0;
					}
					$(&#39;.sliding > p&#39;).css(&#39;width&#39;, size + &#39;px&#39;); 
					$(&#39;.sliding > span&#39;).css(&#39;left&#39;, size + &#39;px&#39;);
					return false;//防止拖拽过程中选中文字
				}
				$(document).get(0).onmouseup=function(){ //鼠标松开执行<br/>                                              //判段span到达边界时候执行
					if(($(&#39;.sliding > span&#39;).get(0).offsetLeft) >= ($(&#39;.sliding&#39;).get(0).offsetWidth - $(&#39;.sliding > span&#39;).get(0).offsetWidth)){
						$(&#39;.sliding > span&#39;).attr(&#39;class&#39;,&#39;span2_back&#39;); //更改span的背景图片
						$(&#39;.sliding > p&#39;).text(&#39;验证通过&#39;); //更改p标签中的内容
						$(&#39;.sliding > span&#39;).off(&#39;mousedown&#39;);//删除鼠标摁下方法防止用户 无聊往回 推拽
					}else{//判断没到达边界让它再回到起点
						$(&#39;.sliding > span&#39;).animate({left:&#39;0px&#39;},300); //利用jquery让p 和 span 回到起始状态
						$(&#39;.sliding > p&#39;).animate({width:&#39;0px&#39;},300);
					}
					$(document).get(0).onmousemove=null; //最后让 鼠标移动 和 鼠标松开 事件停止  
					$(document).get(0).onmouseup=null;
				}
			})
				
		})
	</script>
</body>
</html></em>
로그인 후 복사

위 내용은 슬라이더 검증 기능 구현의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿