tagator标签输入控件jQuery特效代码

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

以下是 tagator标签输入控件jQuery特效代码 的示例演示效果:

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

部分效果截图:

tagator标签输入控件jQuery特效代码

HTML代码(index.html):

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<meta name="keywords" content="JS代码,其他代码,JS广告代码,JS特效代码" />
<meta name="description" content="此代码内容为tagator标签输入控件(jQuery),属于站长常用代码" />
<title>tagator标签输入控件jQuery</title>
<link rel="stylesheet" href="css/fm.tagator.jquery.css"/>
<script src="js/jquery.min.js"></script>
<script src="js/fm.tagator.jquery.js"></script>
<script>
$(function () {
	$('#inputTagator').tagator({
		// 输入以下单词自动补全, 支持中文
		autocomplete: ['first', 'second', 'third', 'fourth', 'fifth', 'sixth', 'seventh', 'eighth', 'ninth', 'tenth', '标签']
	});
});
</script>
</head>
<body style="text-align:center;">
<div id="wrapper" style="margin-top:200px;" >
	<input style="width:300px;" id="inputTagator" name="inputTagator" value="Test,Best,Rest">
</div>
</body>
</html>

JS代码(fm.tagator.jquery.js):

/* Tagator jQuery Plugin A plugin to make input elements,tag holders version 1.0,Jan 13th,2014 by Ingi P. Jacobsen The MIT License (MIT) Copyright (c) 2014 Faroe Media Permission is hereby granted,free of charge,to any person obtaining a copy of this software and associated documentation files (the "Software"),to deal in the Software without restriction,including without limitation the rights to use,copy,modify,merge,publish,distribute,sublicense,and/or sell copies of the Software,and to permit persons to whom the Software is furnished to do so,subject to the following conditions:The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS",WITHOUT WARRANTY OF ANY KIND,EXPRESS OR IMPLIED,INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,DAMAGES OR OTHER LIABILITY,WHETHER IN AN ACTION OF CONTRACT,TORT OR OTHERWISE,ARISING FROM,OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.*/
(function($){
	$.tagator = function (element,options){
	var defaults ={
	prefix:'tagator_',height:'auto',useDimmer:false,showAllOptionsOnFocus:false,autocomplete:[]}
;
	var plugin = this;
	var selected_index = -1;
	var box_element = null;
	var tags_element = null;
	var input_element = null;
	var textlength_element = null;
	var options_element = null;
	var key ={
	backspace:8,enter:13,escape:27,left:37,up:38,right:39,down:40,comma:188}
;
	plugin.settings ={
}
;
	// INITIALIZE PLUGINplugin.init = function (){
	plugin.settings = $.extend({
}
,defaults,options);
	//// ================== CREATE ELEMENTS ================== ////// dimmerif (plugin.settings.useDimmer){
	if ($('#' + plugin.settings.prefix + 'dimmer').length === 0){
	var dimmer_element = document.createElement('div');
	$(dimmer_element).attr('id',plugin.settings.prefix + 'dimmer');
	$(dimmer_element).hide();
	$(document.body).prepend(dimmer_element);
}
}
// box elementbox_element = document.createElement('div');
	if (element.id !== undefined){
	$(box_element).attr('id',plugin.settings.prefix + element.id);
}
$(box_element).addClass('tagator options-hidden');
	$(box_element).css({
	width:$(element).css('width'),padding:$(element).css('padding'),position:'relative'}
);
	if (plugin.settings.height === 'element'){
	$(box_element).css({
	height:$(element).outerHeight() + 'px'}
);
}
$(element).after(box_element);
	$(element).hide();
	// textlength elementtextlength_element = document.createElement('span');
	$(textlength_element).addClass(plugin.settings.prefix + 'textlength');
	$(textlength_element).css({
	position:'absolute',visibility:'hidden'}
);
	$(box_element).append(textlength_element);
	// tags elementtags_element = document.createElement('div');
	$(tags_element).addClass(plugin.settings.prefix + 'tags');
	$(box_element).append(tags_element);
	// input elementinput_element = document.createElement('input');
	$(input_element).addClass(plugin.settings.prefix + 'input');
	$(input_element).width(20);
	$(input_element).attr('autocomplete','false');
	$(box_element).append(input_element);
	// options elementoptions_element = document.createElement('ul');
	$(options_element).addClass(plugin.settings.prefix + 'options');
	$(box_element).append(options_element);
	//// ================== BIND ELEMENTS EVENTS ================== ////// source element$(element).change(function (){
	refreshTags();
}
);
	// box element$(box_element).bind('focus',function (e){
	e.preventDefault();
	e.stopPropagation();
	showOptions();
	$(input_element).focus();
}
);
	$(box_element).bind('mousedown',function (e){
	e.preventDefault();
	e.stopPropagation();
	input_element.focus();
	if (input_element.setSelectionRange){
	input_element.focus();
	input_element.setSelectionRange(input_element.value.length,input_element.value.length);
}
else if (input_element.createTextRange){
	var range = input_element.createTextRange();
	range.collapse(true);
	range.moveEnd('character',input_element.value.length);
	range.moveStart('character',input_element.value.length);
	range.select();
}
}
);
	$(box_element).bind('mouseup',function (e){
	e.preventDefault();
	e.stopPropagation();
}
);
	$(box_element).bind('click',function (e){
	e.preventDefault();
	e.stopPropagation();
	if (plugin.settings.showAllOptionsOnFocus){
	//showOptions();
	searchOptions();
}
input_element.focus();
}
);
	$(box_element).bind('dblclick',function (e){
	e.preventDefault();
	e.stopPropagation();
	input_element.focus();
	input_element.select();
}
);
	// input element$(input_element).bind('click',function (e){
	e.preventDefault();
	e.stopPropagation();
}
);
	$(input_element).bind('dblclick',function (e){
	e.preventDefault();
	e.stopPropagation();
}
);
	$(input_element).bind('keydown',function (e){
	e.stopPropagation();
	var keyCode = e.keyCode || e.which;
	switch (keyCode){
	case key.up:e.preventDefault();
	if (selected_index > -1){
	selected_index = selected_index - 1;
}
else{
	selected_index = $(options_element).find('.' + plugin.settings.prefix + 'option').length - 1;
}
refreshActiveOption();
	scrollToActiveOption();
	break;
	case key.down:e.preventDefault();
	if (selected_index < $(options_element).find('.' + plugin.settings.prefix + 'option').length - 1){
	selected_index = selected_index + 1;
}
else{
	selected_index = -1;
}
refreshActiveOption();
	scrollToActiveOption();
	break;
	case key.escape:e.preventDefault();
	break;
	case key.comma:e.preventDefault();
	if (selected_index === -1){
	if ($(input_element).val() !== ''){
	addTag($(input_element).val());
}
}
resizeInput();
	break;
	case key.enter:e.preventDefault();
	if (selected_index !== -1){
	selectOption();
}
else{
	if ($(input_element).val() !== ''){
	addTag($(input_element).val());
}
}
resizeInput();
	break;
	case key.backspace:if (input_element.value === ''){
	$(element).val($(element).val().substring(0,$(element).val().lastIndexOf(',')));
	$(element).trigger('change');
	searchOptions();
}
resizeInput();
	break;
	default:resizeInput();
	break;
}
}
);
	$(input_element).bind('keyup',function (e){
	e.preventDefault();
	e.stopPropagation();
	var keyCode = e.keyCode || e.which;
	if (keyCode === key.escape || keyCode === key.enter){
	hideOptions();
}
else if (keyCode < 37 || keyCode > 40){
	searchOptions();
}
if ($(box_element).hasClass('options-hidden') && (keyCode === key.left || keyCode === key.right || keyCode === key.up || keyCode === key.down)){
	searchOptions();
}
resizeInput();
}
);
	$(input_element).bind('focus',function (e){
	e.preventDefault();
	e.stopPropagation();
	if (!$(options_element).is(':empty') || plugin.settings.showAllOptionsOnFocus){
	searchOptions();
	showOptions();
}
}
);
	$(input_element).bind('blur',function (e){
	e.preventDefault();
	e.stopPropagation();
	hideOptions();
}
);
	refreshTags();
}
;
	// RESIZE INPUTvar resizeInput = function (){
	textlength_element.innerHTML = input_element.value;
	$(input_element).css({
	width:($(textlength_element).width() + 20) + 'px'}
);
}
;
	// SET AUTOCOMPLETE LISTplugin.autocomplete = function (autocomplete){
	plugin.settings.autocomplete = autocomplete !== undefined ? autocomplete:[];
}
;
	// REFRESH TAGSplugin.refresh = function (){
	refreshTags();
}
;
	var refreshTags = function (){
	$(tags_element).empty();
	var tags = $(element).val().split(',');
	$.each(tags,function (key,value){
	if (value !== ''){
	var tag_element = document.createElement('div');
	$(tag_element).addClass(plugin.settings.prefix + 'tag');
	$(tag_element).html(value);
	// remove buttonvar button_remove_element = document.createElement('div');
	$(button_remove_element).data('text',value);
	$(button_remove_element).addClass(plugin.settings.prefix + 'tag_remove');
	$(button_remove_element).bind('mousedown',function (e){
	e.preventDefault();
	e.stopPropagation();
}
);
	$(button_remove_element).bind('mouseup',function (e){
	e.preventDefault();
	e.stopPropagation();
	removeTag($(this).data('text'));
	$(element).trigger('change');
}
);
	$(button_remove_element).html('X');
	$(tag_element).append(button_remove_element);
	// clearvar clear_element = document.createElement('div');
	clear_element.style.clear = 'both';
	$(tag_element).append(clear_element);
	$(tags_element).append(tag_element);
}
}
);
	searchOptions();
}
;
	// REMOVE TAG FROM ORIGINAL ELEMENTvar removeTag = function (text){
	var tagsBefore = $(element).val().split(',');
	var tagsAfter = [];
	$.each(tagsBefore,function (key,value){
	if (value !== text && value !== ''){
	tagsAfter.push(value);
}
}
);
	$(element).val(tagsAfter.join(','));
}
;
	// CHECK IF TAG IS PRESENTvar hasTag = function (text){
	var tags = $(element).val().split(',');
	var hasTag = false;
	$.each(tags,function (key,value){
	if ($.trim(value) === $.trim(text)){
	hasTag = true;
}
}
);
	return hasTag;
}
;
	// ADD TAG TO ORIGINAL ELEMENTvar addTag = function (text){
	if (!hasTag(text)){
	$(element).val($(element).val() + ($(element).val() !== '' ? ',':'') + text);
	$(element).trigger('change');
}
$(input_element).val('');
	box_element.focus();
	hideOptions();
}
;
	// OPTIONS SEARCH METHODvar searchOptions = function (){
	$(options_element).empty();
	if (input_element.value.replace(/\s/g,'') !== '' || plugin.settings.showAllOptionsOnFocus){
	var optionsArray = [];
	$.each(plugin.settings.autocomplete,function (key,value){
	if (value.toLowerCase().indexOf(input_element.value.toLowerCase()) !== -1){
	if (!hasTag(value)){
	optionsArray.push(value);
}
}
}
);
	generateOptions(optionsArray);
}
if ($(input_element).is(':focus')){
	if (!$(options_element).is(':empty')){
	showOptions();
}
else{
	hideOptions();
}
}
else{
	hideOptions();
}
selected_index = -1;
}
;
	// GENERATE OPTIONSvar generateOptions = function (optionsArray){
	var index = -1;
	$(optionsArray).each(function (key,value){
	index++;
	var option = createOption(value,index);
	$(options_element).append(option);
}
);
	refreshActiveOption();
}
;
	// CREATE RESULT OPTIONvar createOption = function (text,index){
	// holder livar option = document.createElement('li');
	$(option).data('index',index);
	$(option).data('text',text);
	$(option).html(text);
	$(option).addClass(plugin.settings.prefix + 'option');
	if (this.selected){
	$(option).addClass('active');
}
// BIND EVENTS$(option).bind('mouseover',function (e){
	e.stopPropagation();
	e.preventDefault();
	selected_index = index;
	refreshActiveOption();
}
);
	$(option).bind('mousedown',function (e){
	e.stopPropagation();
	e.preventDefault();
}
);
	$(option).bind('click',function (e){
	e.preventDefault();
	e.stopPropagation();
	selectOption();
}
);
	return option;
}
;
	// SHOW OPTIONS AND DIMMERvar showOptions = function (){
	$(box_element).removeClass('options-hidden').addClass('options-visible');
	if (plugin.settings.useDimmer){
	$('#' + plugin.settings.prefix + 'dimmer').show();
}
$(options_element).css('top',($(box_element).outerHeight()-2) + 'px');
	if ($(box_element).hasClass('single')){
	selected_index = $(options_element).find('.' + plugin.settings.prefix + 'option').index($(options_element).find('.' + plugin.settings.prefix + 'option.active'));
}
scrollToActiveOption();
}
;
	// HIDE OPTIONS AND DIMMERvar hideOptions = function (){
	$(box_element).removeClass('options-visible').addClass('options-hidden');
	if (plugin.settings.useDimmer){
	$('#' + plugin.settings.prefix + 'dimmer').hide();
}
}
;
	// REFRESH ACTIVE IN OPTIONS METHODvar refreshActiveOption = function (){
	$(options_element).find('.active').removeClass('active');
	if (selected_index !== -1){
	$(options_element).find('.' + plugin.settings.prefix + 'option').eq(selected_index).addClass('active');
}
}
;
	// SCROLL TO ACTIVE OPTION IN OPTIONS LISTvar scrollToActiveOption = function (){
	var $active_element = $(options_element).find('.' + plugin.settings.prefix + 'option.active');
	if ($active_element.length > 0){
	$(options_element).scrollTop($(options_element).scrollTop() + $active_element.position().top - $(options_element).height()/2 + $active_element.height()/2);
}
}
;
	// SELECT ACTIVE OPTIONvar selectOption = function (){
	addTag($(options_element).find('.' + plugin.settings.prefix + 'option').eq(selected_index).data('text'));
}
;
	// REMOVE PLUGIN AND REVERT INPUT ELEMENT TO ORIGINAL STATEplugin.destroy = function (){
	$(box_element).remove();
	$.removeData(element,'tagator');
	$(element).show();
	if ($('.tagator').length === 0){
	$('#' + plugin.settings.prefix + 'dimmer').remove();
}
}
;
	// Initialize pluginplugin.init();
}
;
	$.fn.tagator = function(){
	var parameters = arguments[0] !== undefined ? arguments:[{
}
];
	return this.each(function (){
	if (typeof(parameters[0]) === 'object'){
	if (undefined === $(this).data('tagator')){
	var plugin = new $.tagator(this,parameters[0]);
	$(this).data('tagator',plugin);
}
}
else if ($(this).data('tagator')[parameters[0]]){
	$(this).data('tagator')[parameters[0]].apply(this,Array.prototype.slice.call(parameters,1));
}
else{
	$.error('Method ' + parameters[0] + ' does not exist in $.tagator');
}
}
);
}
;
}
(jQuery));
	

CSS代码(lrtk.css):

/* ����ͼ�� �Ѽ����� www.lanrentuku.com */
附件:下载该文件资源,减少时间成本(增值服务)
留言
该资源可下载
File Source
.rar
37.48 KB
Html JS 其它特效2
最新结算
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
打赏文章