jQuery移动端滑块拖动设置代码

版权:原创 更新时间:1年以上
[该文章底部包含文件资源,可根据自己情况,决定是否下载资源使用,时间>金钱,如有需要,立即查看资源]

以下是 jQuery移动端滑块拖动设置代码 的示例演示效果:

当前平台(PC电脑)
  • 平台:

部分效果截图:

jQuery移动端滑块拖动设置代码

HTML代码(index.html):

<!DOCTYPE HTML>

<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<title>jQuery移动端滑块拖动设置代码</title>
<style type="text/css">
.demo{width:350px; margin:100px auto 10px auto}
#g1,#g2{margin-top:50px}
</style>

<link rel="stylesheet" href="css/jquery.range.css" />

<script type="text/javascript" src="js/jquery-1.7.2.min.js"></script>
<script type="text/javascript" src="js/jquery.range.js"></script>
<script type="text/javascript">
$(function(){
	$('.single-slider').jRange({
		from: 0,
		to: 100,
		step: 1,
		scale: [0,25,50,75,100],
		format: '%s',
		width: 300,
		showLabels: true,
		showScale: true
	});

	$('.range-slider').jRange({
		from: 0,
		to: 100,
		step: 1,
		scale: [0,25,50,75,100],
		format: '%s',
		width: 300,
		showLabels: true,
		isRange : true
	});

	$("#g1").click(function(){
		var aa = $(".single-slider").val();
		alert(aa);
	});

	$("#g2").click(function(){
		var aa = $(".range-slider").val();
		alert(aa);
	});
});
</script>
</head>
<body>

<div class="demo">
<input type="hidden" class="single-slider" value="0" />
<!-- <button id="g1">获取值</button> -->
</div>

<div class="demo">
<input class="range-slider" type="hidden" value="10,89"/>
<!-- <button id="g2">获取值</button> -->
</div>
</body>
</html>

JS代码(jquery.range.js):

/*jshint multistr:true,curly:false */
/*global jQuery:false,define:false */
/** * jRange - Awesome range control * * Written by * ---------- * Nitin Hayaran (nitinhayaran@gmail.com) * * Licensed under the MIT (MIT-LICENSE.txt). * * @author Nitin Hayaran * @version 0.1-RELEASE * * Dependencies * ------------ * jQuery (http://jquery.com) * **/
;
	(function($,window,document,undefined){
	'use strict';
	var jRange = function(){
	return this.init.apply(this,arguments);
}
;
	jRange.prototype ={
	defaults:{
	onstatechange:function(){
}
,isRange:false,showLabels:true,showScale:true,step:1,format:'%s',theme:'theme-green',width:300,disable:false}
,template:'<div class="slider-container">\<div class="back-bar">\ <div class="selected-bar"></div>\ <div class="pointer low"></div><div class="pointer-label">123456</div>\ <div class="pointer high"></div><div class="pointer-label">456789</div>\ <div class="clickable-dummy"></div>\ </div>\ <div class="scale"></div>\</div>',init:function(node,options){
	this.options = $.extend({
}
,this.defaults,options);
	this.inputNode = $(node);
	this.options.value = this.inputNode.val() || (this.options.isRange ? this.options.from + ',' + this.options.from:this.options.from);
	this.domNode = $(this.template);
	this.domNode.addClass(this.options.theme);
	this.inputNode.after(this.domNode);
	this.domNode.on('change',this.onChange);
	this.pointers = $('.pointer',this.domNode);
	this.lowPointer = this.pointers.first();
	this.highPointer = this.pointers.last();
	this.labels = $('.pointer-label',this.domNode);
	this.lowLabel = this.labels.first();
	this.highLabel = this.labels.last();
	this.scale = $('.scale',this.domNode);
	this.bar = $('.selected-bar',this.domNode);
	this.clickableBar = this.domNode.find('.clickable-dummy');
	this.interval = this.options.to - this.options.from;
	this.render();
}
,render:function(){
	// Check if inputNode is visible,and have some width,so that we can set slider width accordingly.if (this.inputNode.width() === 0 && !this.options.width){
	console.log('jRange:no width found,returning');
	return;
}
else{
	this.domNode.width(this.options.width || this.inputNode.width());
	this.inputNode.hide();
}
if (this.isSingle()){
	this.lowPointer.hide();
	this.lowLabel.hide();
}
if (!this.options.showLabels){
	this.labels.hide();
}
this.attachEvents();
	if (this.options.showScale){
	this.renderScale();
}
this.setValue(this.options.value);
}
,isSingle:function(){
	if (typeof(this.options.value) === 'number'){
	return true;
}
return (this.options.value.indexOf(',') !== -1 || this.options.isRange) ?false:true;
}
,attachEvents:function(){
	this.clickableBar.click($.proxy(this.barClicked,this));
	this.pointers.on('mousedown touchstart',$.proxy(this.onDragStart,this));
	this.pointers.bind('dragstart',function(event){
	event.preventDefault();
}
);
}
,onDragStart:function(e){
	if ( this.options.disable || (e.type === 'mousedown' && e.which !== 1)){
	return;
}
e.stopPropagation();
	e.preventDefault();
	var pointer = $(e.target);
	this.pointers.removeClass('last-active');
	pointer.addClass('focused last-active');
	this[(pointer.hasClass('low') ? 'low':'high') + 'Label'].addClass('focused');
	$(document).on('mousemove.slider touchmove.slider',$.proxy(this.onDrag,this,pointer));
	$(document).on('mouseup.slider touchend.slider touchcancel.slider',$.proxy(this.onDragEnd,this));
}
,onDrag:function(pointer,e){
	e.stopPropagation();
	e.preventDefault();
	if (e.originalEvent.touches && e.originalEvent.touches.length){
	e = e.originalEvent.touches[0];
}
else if (e.originalEvent.changedTouches && e.originalEvent.changedTouches.length){
	e = e.originalEvent.changedTouches[0];
}
var position = e.clientX - this.domNode.offset().left;
	this.domNode.trigger('change',[this,pointer,position]);
}
,onDragEnd:function(e){
	this.pointers.removeClass('focused');
	this.labels.removeClass('focused');
	$(document).off('.slider');
}
,barClicked:function(e){
	if(this.options.disable) return;
	var x = e.pageX - this.clickableBar.offset().left;
	if (this.isSingle())this.setPosition(this.pointers.last(),x,true,true);
	else{
	var pointer = Math.abs(parseInt(this.pointers.first().css('left'),10) - x + this.pointers.first().width() / 2) < Math.abs(parseInt(this.pointers.last().css('left'),10) - x + this.pointers.first().width() / 2) ?this.pointers.first():this.pointers.last();
	this.setPosition(pointer,x,true,true);
}
}
,onChange:function(e,self,pointer,position){
	var min,max;
	if (self.isSingle()){
	min = 0;
	max = self.domNode.width();
}
else{
	min = pointer.hasClass('high') ? self.lowPointer.position().left + self.lowPointer.width() / 2:0;
	max = pointer.hasClass('low') ? self.highPointer.position().left + self.highPointer.width() / 2:self.domNode.width();
}
var value = Math.min(Math.max(position,min),max);
	self.setPosition(pointer,value,true);
}
,setPosition:function(pointer,position,isPx,animate){
	var leftPos,lowPos = this.lowPointer.position().left,highPos = this.highPointer.position().left,circleWidth = this.highPointer.width() / 2;
	if (!isPx){
	position = this.prcToPx(position);
}
if (pointer[0] === this.highPointer[0]){
	highPos = Math.round(position - circleWidth);
}
else{
	lowPos = Math.round(position - circleWidth);
}
pointer[animate ? 'animate':'css']({
	'left':Math.round(position - circleWidth)}
);
	if (this.isSingle()){
	leftPos = 0;
}
else{
	leftPos = lowPos + circleWidth;
}
this.bar[animate ? 'animate':'css']({
	'width':Math.round(highPos + circleWidth - leftPos),'left':leftPos}
);
	this.showPointerValue(pointer,position,animate);
	this.isReadonly();
}
,// will be called from outsidesetValue:function(value){
	var values = value.toString().split(',');
	this.options.value = value;
	var prc = this.valuesToPrc(values.length === 2 ? values:[0,values[0]]);
	if (this.isSingle()){
	this.setPosition(this.highPointer,prc[1]);
}
else{
	this.setPosition(this.lowPointer,prc[0]);
	this.setPosition(this.highPointer,prc[1]);
}
}
,renderScale:function(){
	var s = this.options.scale || [this.options.from,this.options.to];
	var prc = Math.round((100 / (s.length - 1)) * 10) / 10;
	var str = '';
	for (var i = 0;
	i < s.length;
	i++){
	str += '<span style="left:' + i * prc + '%">' + (s[i] != '|' ? '<ins>' + s[i] + '</ins>':'') + '</span>';
}
this.scale.html(str);
	$('ins',this.scale).each(function(){
	$(this).css({
	marginLeft:-$(this).outerWidth() / 2}
);
}
);
}
,getBarWidth:function(){
	var values = this.options.value.split(',');
	if (values.length > 1){
	return parseInt(values[1],10) - parseInt(values[0],10);
}
else{
	return parseInt(values[0],10);
}
}
,showPointerValue:function(pointer,position,animate){
	var label = $('.pointer-label',this.domNode)[pointer.hasClass('low') ? 'first':'last']();
	var text;
	var value = this.positionToValue(position);
	if ($.isFunction(this.options.format)){
	var type = this.isSingle() ? undefined:(pointer.hasClass('low') ? 'low':'high');
	text = this.options.format(value,type);
}
else{
	text = this.options.format.replace('%s',value);
}
var width = label.html(text).width(),left = position - width / 2;
	left = Math.min(Math.max(left,0),this.options.width - width);
	label[animate ? 'animate':'css']({
	left:left}
);
	this.setInputValue(pointer,value);
}
,valuesToPrc:function(values){
	var lowPrc = ((values[0] - this.options.from) * 100 / this.interval),highPrc = ((values[1] - this.options.from) * 100 / this.interval);
	return [lowPrc,highPrc];
}
,prcToPx:function(prc){
	return (this.domNode.width() * prc) / 100;
}
,positionToValue:function(pos){
	var value = (pos / this.domNode.width()) * this.interval;
	value = value + this.options.from;
	return Math.round(value / this.options.step) * this.options.step;
}
,setInputValue:function(pointer,v){
	// if(!isChanged) return;
	if (this.isSingle()){
	this.options.value = v.toString();
}
else{
	var values = this.options.value.split(',');
	if (pointer.hasClass('low')){
	this.options.value = v + ',' + values[1];
}
else{
	this.options.value = values[0] + ',' + v;
}
}
if (this.inputNode.val() !== this.options.value){
	this.inputNode.val(this.options.value);
	this.options.onstatechange.call(this,this.options.value);
}
}
,getValue:function(){
	return this.options.value;
}
,isReadonly:function(){
	this.domNode.toggleClass('slider-readonly',this.options.disable);
}
,disable:function(){
	this.options.disable = true;
	this.isReadonly();
}
,enable:function(){
	this.options.disable = false;
	this.isReadonly();
}
,toggleDisable:function(){
	this.options.disable = !this.options.disable;
	this.isReadonly();
}
}
;
	/*$.jRange = function (node,options){
	var jNode = $(node);
	if(!jNode.data('jrange')){
	jNode.data('jrange',new jRange(node,options));
}
return jNode.data('jrange');
}
;
	$.fn.jRange = function (options){
	return this.each(function(){
	$.jRange(this,options);
}
);
}
;
	*/
var pluginName = 'jRange';
	// A really lightweight plugin wrapper around the constructor,// preventing against multiple instantiations$.fn[pluginName] = function(option){
	var args = arguments,result;
	this.each(function(){
	var $this = $(this),data = $.data(this,'plugin_' + pluginName),options = typeof option === 'object' && option;
	if (!data){
	$this.data('plugin_' + pluginName,(data = new jRange(this,options)));
	$(window).resize(function(){
	data.setValue(data.getValue());
}
);
	// Update slider position when window is resized to keep it in sync with scale}
// if first argument is a string,call silimarly named function// this gives flexibility to call functions of the plugin e.g.// - $('.dial').plugin('destroy');
	// - $('.dial').plugin('render',$('.new-child'));
	if (typeof option === 'string'){
	result = data[option].apply(data,Array.prototype.slice.call(args,1));
}
}
);
	// To enable plugin returns valuesreturn result || this;
}
;
}
)(jQuery,window,document);
	

CSS代码(jquery.range.css):

.slider-container{width:300px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;}
.slider-container .back-bar{height:10px;position:relative;}
.slider-container .back-bar .selected-bar{position:absolute;height:100%;}
.slider-container .back-bar .pointer{position:absolute;width:10px;height:10px;background-color:red;cursor:col-resize;opacity:1;z-index:2;}
.slider-container .back-bar .pointer.last-active{z-index:3;}
.slider-container .back-bar .pointer-label{position:absolute;top:-17px;font-size:8px;background:white;white-space:nowrap;line-height:1;}
.slider-container .back-bar .focused{z-index:10;}
.slider-container .clickable-dummy{cursor:pointer;position:absolute;width:100%;height:100%;z-index:1;}
.slider-container .scale{top:2px;position:relative;}
.slider-container .scale span{position:absolute;height:5px;border-left:1px solid #999;font-size:0;}
.slider-container .scale ins{font-size:9px;text-decoration:none;position:absolute;left:0;top:5px;color:#999;line-height:1;}
.slider-container.slider-readonly .clickable-dummy,.slider-container.slider-readonly .pointer{cursor:auto;}
.theme-green .back-bar{height:15px;border-radius:2px;background-color:#eeeeee;background-color:#e7e7e7;background-image:-moz-linear-gradient(top,#eeeeee,#dddddd);background-image:-webkit-gradient(linear,0 0,0 100%,from(#eeeeee),to(#dddddd));background-image:-webkit-linear-gradient(top,#eeeeee,#dddddd);background-image:-o-linear-gradient(top,#eeeeee,#dddddd);background-image:linear-gradient(to bottom,#eeeeee,#dddddd);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffeeeeee',endColorstr='#ffdddddd',GradientType=0);}
.theme-green .back-bar .selected-bar{border-radius:2px;background-color:#a1fad0;background-image:-moz-linear-gradient(top,#FABDE3,#E67BD6);background-image:-webkit-gradient(linear,0 0,0 100%,from(#FABDE3),to(#E67BD6));background-image:-webkit-linear-gradient(top,#FABDE3,#E67BD6);background-image:-o-linear-gradient(top,#FABDE3,#E67BD6);background-image:linear-gradient(to bottom,#FABDE3,#E67BD6);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FABDE3',endColorstr='#E67BD6',GradientType=0);}
.theme-green .back-bar .pointer{width:14px;height:25px;top:-5px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;/*border-radius:10px;*/
 /*border:1px solid #AAA;*/
 background-color:#e7e7e7;background-image:-moz-linear-gradient(top,#eeeeee,#dddddd);background-image:-webkit-gradient(linear,0 0,0 100%,from(#eeeeee),to(#dddddd));background-image:-webkit-linear-gradient(top,#eeeeee,#dddddd);background-image:-o-linear-gradient(top,#eeeeee,#dddddd);background-image:linear-gradient(to bottom,#eeeeee,#dddddd);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffeeeeee',endColorstr='#fdddddd',GradientType=0);}
.theme-green .back-bar .pointer-label{color:#999;}
.theme-green .back-bar .focused{color:#333;}
.theme-green .scale span{border-left:1px solid #e5e5e5;}
.theme-green .scale ins{color:#999;}
.theme-blue .back-bar{height:5px;border-radius:2px;background-color:#eeeeee;background-color:#e7e7e7;background-image:-moz-linear-gradient(top,#eeeeee,#dddddd);background-image:-webkit-gradient(linear,0 0,0 100%,from(#eeeeee),to(#dddddd));background-image:-webkit-linear-gradient(top,#eeeeee,#dddddd);background-image:-o-linear-gradient(top,#eeeeee,#dddddd);background-image:linear-gradient(to bottom,#eeeeee,#dddddd);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffeeeeee',endColorstr='#ffdddddd',GradientType=0);}
.theme-blue .back-bar .selected-bar{border-radius:2px;background-color:#92c1f9;background-image:-moz-linear-gradient(top,#b1d1f9,#64a8f9);background-image:-webkit-gradient(linear,0 0,0 100%,from(#b1d1f9),to(#64a8f9));background-image:-webkit-linear-gradient(top,#b1d1f9,#64a8f9);background-image:-o-linear-gradient(top,#b1d1f9,#64a8f9);background-image:linear-gradient(to bottom,#b1d1f9,#64a8f9);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffb1d1f9',endColorstr='#ff64a8f9',GradientType=0);}
.theme-blue .back-bar .pointer{width:14px;height:14px;top:-5px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;border-radius:10px;border:1px solid #AAA;background-color:#e7e7e7;background-image:-moz-linear-gradient(top,#eeeeee,#dddddd);background-image:-webkit-gradient(linear,0 0,0 100%,from(#eeeeee),to(#dddddd));background-image:-webkit-linear-gradient(top,#eeeeee,#dddddd);background-image:-o-linear-gradient(top,#eeeeee,#dddddd);background-image:linear-gradient(to bottom,#eeeeee,#dddddd);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffeeeeee',endColorstr='#ffdddddd',GradientType=0);}
.theme-blue .back-bar .pointer-label{color:#999;}
.theme-blue .back-bar .focused{color:#333;}
.theme-blue .scale span{border-left:1px solid #e5e5e5;}
.theme-blue .scale ins{color:#999;}
.demo button{appearance:none;-webkit-appearance:none;padding:8px 15px;border:none;color:#fff;font-size:1em;border-radius:5px;background:#aaa;}
附件:下载该文件资源,减少时间成本(增值服务)
留言
该资源可下载
File Source
.rar
37.13 KB
jquery特效6
最新结算
jquery虚拟键盘中文打字效果js代码
类型: .rar 金额: CNY 2.31¥ 状态: 待结算 详细>
jquery虚拟键盘中文打字效果js代码
类型: .rar 金额: CNY 0.29¥ 状态: 待结算 详细>
HTML5实现CSS滤镜图片切换特效代码
类型: .rar 金额: CNY 2.31¥ 状态: 待结算 详细>
jQuery头像裁剪插件cropbox js代码
类型: .rar 金额: CNY 0.29¥ 状态: 待结算 详细>
jQuery头像裁剪插件cropbox js代码
类型: .rar 金额: CNY 2.31¥ 状态: 待结算 详细>
CSS3制作3D图片立方体旋转特效
类型: .rar 金额: CNY 2.31¥ 状态: 待结算 详细>
CSS3制作3D图片立方体旋转特效
类型: .rar 金额: CNY 0.29¥ 状态: 待结算 详细>
CSS3制作3D图片立方体旋转特效
类型: .rar 金额: CNY 2.31¥ 状态: 待结算 详细>
CSS3制作3D图片立方体旋转特效
类型: .rar 金额: CNY 0.29¥ 状态: 待结算 详细>
jQuery+css3实现信封效果
类型: .rar 金额: CNY 0.29¥ 状态: 待结算 详细>
我们力求给您提供有用的文章,再此基础上,会附加营收资源,不做任何广告,让平台可以更好发展 若您发现您的权利被侵害,或使用了您的版权,请发邮件联系 sunlifel@foxmail.com ggbig觉得 : 不提供源码的文章不是好文章
合作伙伴
联系我们
  • QQ:21499807
  • 邮箱:sunlifel@foxmail.com
  • QQ扫一扫加QQ
    QQ扫一扫
Copyright 2023-2024 ggbig.com·皖ICP备2023004211号-1
打赏文章