div上下切換(新增、刪除、上下div切換)

来源:http://www.cnblogs.com/zhangyingqin/archive/2017/12/21/8080470.html
-Advertisement-
Play Games

jQuery代碼: css代碼: 公共樣式css: tips彈框js: 代碼所需圖片: 實現效果: ...


<!DOCTYPE html>
<html>

	<head>
		<meta charset="utf-8" />
		<title>div上下切換</title>
		<link rel="stylesheet" href="css/cssreset-min.css" />
		<link rel="stylesheet" href="css/storemanage.css" />
		<script type="text/javascript" src="js/jquery-1.11.1.min.js"></script>
		<script type="text/javascript" src="js/tips.js"></script>
		<script type="text/javascript" src="js/storemanage.js"></script>
	</head>

	<body>
		<div class="fwge">
			<div class="fwge_lanmu clearfix">
				<div class="fwge_lanmu_left">名稱</div>
				<div class="fwge_lanmu_right">操作</div>
			</div>
			<div class="fwge_main">
				<div class="fuge_content">
					<div class="banner_bottom">
						<div class="fuge_content_input">
							<div class="fuge_block">
								<input class="fuge_item" maxlength="30">
								<div class="fuge_count">
									<span class="textareaInput">0</span>/<span class="textareaTotal">30</span>
								</div>
							</div>
						</div>
						<div class="fuge_content_cz clearfix">
							<div class="fuge_top"></div>
							<div class="fuge_down"></div>
							<div class="fuge_sc picflag"></div>
						</div>
					</div>
				</div>
			</div>
			<div class="fuge_add">+添加規格</div>
		</div>
	</body>

</html>

  jQuery代碼:

$(function() {
	//規格文本框字數提示代碼
	var lenInput = $(".fuge_content").find('.fuge_item').val().length;
	$(".fuge_item").keyup(function() {
		lenInput = $(this).val().length;
		var str = $(this).siblings().find(".textareaInput");
		if(lenInput >= 0 && lenInput <= 30) {
			$(str).html(lenInput);
		}
	});
	
	//添加服務規格追加代碼
	var lifwge='<div class="banner_bottom">'+
					'<div class="fuge_content_input">'+
						'<div class="fuge_block">'+
				            '<input class="fuge_item" maxlength="30">'+
				            '<div class="fuge_count">'+
				                '<span class="textareaInput">0</span>/<span class="textareaTotal">30</span>'+
				            '</div>'+
				        '</div>'+
					'</div>'+
					'<div class="fuge_content_cz clearfix">'+
						'<div class="fuge_top"></div>'+
						'<div class="fuge_down"></div>'+
						'<div class="fuge_sc picflag"></div>'+
					'</div>'+
				'</div>';
				
	//添加服務規格(最多添加4條規格)
	$(".fwge").on("click", ".fuge_add", function() {
		var bannerSize = $(".banner_bottom").size();
		if(bannerSize >= 4) {
			$.tips.tip("最多添加服務規格4條", function() {
				$.tips.close();
			});
		} else {
			$(".fuge_content").append(lifwge);
			var lenInput = $(".fuge_content").find('.fuge_item').val().length;
			$(".fuge_item").keyup(function() {
				lenInput = $(this).val().length;
				var str = $(this).siblings().find(".textareaInput");
				if(lenInput >= 0 && lenInput <= 30) {
					$(str).html(lenInput);
				}
			});
		}
	});
	
	//刪除服務規格(至少存在2條規格)
	$(".fwge").on("click", ".fuge_sc", function() {
		var bannerSize = $(".banner_bottom").size();
		if(bannerSize <= 1) {
			$.tips.tip("服務規格不能小於一條",function(){
                $.tips.close();
            });
		} else {
			$(this).parent().parent(".banner_bottom").remove();
		}
	});

	//規格向下移動
	$(".fwge").on("click",".fuge_down",function(){
		var box = $(this).parent().parent(); //獲取按鈕的父元素
		var box_next = box.next(); //父元素的下一個同胞元素
		var box_next_left = parseInt(box_next.css('top')); //父元素下一個同胞元素的top值
		var box_left = parseInt(box.css('top')); //父元素的top值
		if(box_next_left) {
			box.animate({
				top: box_next_left.toString()
			});
			box_next.animate({
				top: box_left.toString()
			});
			box.insertAfter(box_next);
		}
	});

	//規格向上移動
	$(".fwge").on("click",".fuge_top",function(){
		var box = $(this).parent().parent(); //獲取按鈕的父元素
		var box_left = parseInt(box.css('top')); //父元素的top值
		var box_prev = box.prev(); //父元素的上一個同胞元素
		var box_prev_left = parseInt(box_prev.css('top')); //父元素下一個同胞元素的top值
		if(box_left) {
			box.animate({
				top: box_prev_left.toString()
			});
			box_prev.animate({
				top: box_left.toString()
			});
			box.insertBefore(box_prev);
		}
	});
});

  css代碼:

.fwge{
	width: 500px;
	height: 300px;
	margin-left: 10px;
	border: 1px solid #e4e4e4;
}

.fwge_lanmu{
	width: 500px;
	height: 25px;
}

.fwge_lanmu_left{
	width: 350px;
	height: 25px;
	float: left;
}

.fwge_lanmu_right{
	width: 150px;
	height: 25px;
	float: left;
	text-align: center;
}

.fuge_content{
	width: 500px;
	height: auto;
	display: table;
}

.banner_bottom{
	width: 500px;
    height: 30px;
    top:30px;
    margin-bottom: 10px;
}

.fuge_content_input{
	width: 350px;
	height: 30px;
	float: left;
}

.input_text{
	width: 300px;
	height: auto;
	outline: none;
}

.fuge_content_cz{
	width: 150px;
	height: 30px;
	float: left;
}

.fuge_top{
	width: 25px;
    height: 30px;
    float: left;
    margin-left: 20px;
    background: url(../images/tongke_service_icon.png) no-repeat 6px -96px;
}


.fuge_down{
	width: 25px;
    height: 30px;
    float: left;
    margin-left: 20px;
    background: url(../images/tongke_service_icon.png) no-repeat -19px -96px;
}

.fuge_sc{
	width: 25px;
    height: 30px;
    float: left;
    margin-left: 20px;
    background: url(../images/tongke_service_icon.png) no-repeat -44px -96px;
}

.fuge_block {
	position: relative;
}

.fuge_item {
	width: 290px;
	height: 15px;
	border: 1px solid #ccc;
	padding: 6px;
	resize: none;
	outline: none;
}

.fuge_items {
	width: 290px;
	height: 15px;
	border: 1px solid #ccc;
	padding: 6px;
	resize: none;
	outline: none;
}

.fuge_count {
	position: absolute;
	bottom: 5px;
	right: 60px;
	color: #999;
}

.fuge_add{
	width: 70px;
    height: 20px;
    color: #00b1bb;
    line-height: 20px;
    cursor: pointer;
} 

 

公共樣式css:

html {
	color: #333;
	background: #FFF;
	min-height: 100%;
    margin: 0;
    padding: 0;
    position: relative;
    min-width: 1200px;
}
input, textarea, keygen, select, button{
	font-family:"Hiragino Sans GB", "Microsoft YaHei", "Helvetica Neue",
	Helvetica, Arial, sans-serif;
}

body{
	overflow-y: scroll;
	font-size: 14px;
	font-family:"Hiragino Sans GB", "Microsoft YaHei", "Helvetica Neue",
	Helvetica, Arial, sans-serif;
	min-width:1200px;
	position:relative\9;
	min-height: 100%;
}

.tk_footermain {  /*公共代碼: 當內容不滿一屏時,底部footer內容始終位於顯示屏的底部;當內容超過一屏時,則位於內容底部。 */
	height: auto;
	min-height: 100%;
	_height: 100%;
}

body,
div,
dl,
dt,
dd,
ul,
ol,
li,
h1,
h2,
h3,
h4,
h5,
h6,
pre,
code,
form,
fieldset,
legend,
input,
textarea,
p,
blockquote,
th,
td,
button
{
	margin: 0;
	padding: 0;
}
textarea{
	resize:none;
}
table {
	border-collapse: collapse;
	border-spacing: 0
}

fieldset,
img {
	border: 0
}

ol,
ul {
	list-style: none
}

caption,
th {
	text-align: left
}

h1,
h2,
h3,
h4,
h5,
h6 {
	font-size: 100%;
	font-weight: normal
}

q:before,
q:after {
	content: ''
}

abbr,
acronym {
	border: 0;
	font-variant: normal
}

sup {
	vertical-align: text-top
}

sub {
	vertical-align: text-bottom
}

input,
textarea,
select,
button
{
	font-family: inherit;
	font-size: inherit;
	font-weight: inherit
}

input,
textarea,
select {
	*font-size: 100%
}

legend {
	color: #000
}

/*html5*/
article, aside, dialog, footer, header, section, footer, nav, figure, menu {
	display: block;
}

/*清浮動*/
.clearfix:after,.clearfix:after {
	content: '.';
	display: block;
	height: 0;
	clear: both;
	visibility: hidden;
}

.clearfix {
	display: inline-block;
}

* html .clearfix {
	height: 1%;
}

.clearfix {
	display: block;
}



/*錨鏈接初始化*/
a {
	text-decoration: none;
	outline: none;
	color:#5d5d5d;
}

a:hover {
	text-decoration: none;
}

a:focus {
	outline: none;
	-moz-outline: none;
}

/*佈局樣式*/
.tc{
	text-align:center;
}
.fl {
	float: left;
	display: inline;
}

.fr {
	float: right;
	display: inline;
}
.pr {
	position: relative;
}

.pa {
	position: absolute;
}
.hide{
	display:none;
}
.show{
	display:block;
}

  tips彈框js:

/**
 * javascript-tips
 * @author zyq
 * @version 1.0.1
 */
(function($) {
	$.tips = {
		tip : function(text, callback) {
			var me = this, layer = '<div id="J_mengban" style="z-index:5000;top:0;-webkit-transform: translateZ(0);opacity:0.5;-moz-opacity:0.5;filter:alpha(opacity=50);width:100%;height:100%;position:fixed;background-color:#000000;"></div>', options = '<div id="J_conform" style="width:360px;height:190px;position:fixed;z-index:200001; border: 1px solid #00b1bb; background-color:#ffffff;margin:auto;left:0;right:0;top:200px; border-radius: 5px;"><div style="height: 14px ;background-color: #00b1bb;margin-bottom: 30px;"></div><div style="color:#2b2e30;width: 300px;height: 50px;margin:80px auto;text-align: center;font-size:16px;padding-bottom: 10px;">'
					.concat(text, "</div></div>");
			me.cancel();
			$("body").append(layer);
			$("body").append(options);
			if (callback) {
				window.setTimeout(function() {
					callback(true);
				}, 1000);
			}
		},
		alert : function(text, callback) {
			var me = this, layer = '<div id="J_mengban" style="top:0;z-index: 5000;-webkit-transform: translateZ(0);opacity:0.5;-moz-opacity:0.5;filter:alpha(opacity=50);width: 100%;height: 100%;position: fixed;background-color: #000000;"></div>', options = '<div id="J_alert" style="width:360px;height: 190px;position: fixed;z-index: 200001; border: 1px solid #00b1bb;background-color: #ffffff;margin: auto;left:48%;top:45%;margin-top:-100px;margin-left:-150px;border-radius: 5px;"><div style="height: 14px ;background-color: #00b1bb;margin-bottom:35px;border-top-left-radius: 5px; border-top-right-radius: 5px;"></div><div style="width:300px;color:#2b2e30;height: auto;min-height:50px;margin:0 auto;text-align: center;line-height:25px;font-size:16px;padding-bottom:10px;">'
					.concat(
							text,
							'</div><div id="J_alert_ok" style="border-radius:4px;-webkit-border-radius: 4px;-moz-border-radius: 4px; cursor: pointer; color:#ffffff;margin-top:10px;bottom: 10px;margin: auto;left:0;right: 0;  width: 55%;height: 40px;background-color: #00b1bb;text-align: center;line-height: 40px;font-size:16px;">確定</div></div>');
			me.cancel();
			$("body").append(layer);
			$("body").append(options);
			$("#J_alert_ok").on("click", function() {
				me.cancel();
				if (callback) {
					callback();
				}
			});
		},
		conform : function(text, callback) {
			var me = this, layer = '<div id="J_mengban" style="z-index: 5000;-webkit-transform: translateZ(0);top:0;opacity:0.5;-moz-opacity:0.5;filter:alpha(opacity=50);width: 100%;height: 100%;position: fixed;background-color: #000000;"></div>', options = '<div id="J_conform" style="width:360px;height: 190px;position: fixed;z-index: 200001; border: 1px solid #00b1bb;background-color: #ffffff;margin: auto;left:0;right: 0;top:40%;margin-top:-100px;border-radius: 5px;"><div style="height: 14px ;background-color: #00b1bb;margin-bottom: 30px;-webkit-border-top-right-radius: 5px;-webkit-border-top-left-radius: 5px;"></div><div style="width:300px;color:#2b2e30;height: 50px;margin: auto;text-align: center;font-size:16px;padding-bottom: 10px;">'
					.concat(
							text,
							'</div><div id="J_alert_cancel" style="border-radius:4px;-webkit-border-radius: 4px;-moz-border-radius: 4px; cursor: pointer; color:#ffffff; position: absolute;bottom: 10px;left:20px;  width: 40%;height: 40px;background-color: #aaaaaa;text-align: center;line-height: 40px;font-size:16px;">取消</div><div id="J_alert_sure" style="border-radius:4px;-webkit-border-radius: 4px;-moz-border-radius: 4px; cursor: pointer; color:#ffffff; position: absolute;bottom: 10px;right:20px;  width: 40%;height: 40px;background-color: #00b1bb;text-align: center;line-height: 40px; font-size:16px;">確定</div></div>');
			me.cancel();
			$("body").append(layer);
			$("body").append(options);
			$("#J_alert_sure").on("click", function() {
				me.cancel();
				if (callback) {
					callback(true);
				}
			});
			$("#J_alert_cancel").on("click", function() {
				me.cancel();
				if (callback) {
					callback(false);
				}
			});
		},
		confirm : function(text, callback) {
			this.conform(text, callback);
		},
		toast : function(text, callback) {
			var me = this, content = '<div id="J_toast" style="position: fixed;z-index:5000;-webkit-transform: translateZ(0); text-align:center; left:0;right:0; bottom:100px; margin:auto; text-align: center;"><span style="padding: 5px 10px;background-color:#000000;border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;color:#ffffff; ">'
					.concat(text, "</span></div>");
			me.cancel();
			$("body").append(content);
			window.setTimeout(hideToast, 2000);
			function hideToast() {
				me.cancel();
				if (callback) {
					callback(true);
				}
			}
		},
		prompt : function(callback) {
			var me = this, layer = '<div id="J_mengban" style="top:0;z-index: 5000;-webkit-transform: translateZ(0);opacity:0.5;-moz-opacity:0.5;filter:alpha(opacity=50);width: 100%;height: 100%;position: fixed;background-color: #000000;"> </div>', content = '<div id="J_alert" style="width:300px;height: 200px;position: fixed;z-index: 200001;background-color: #ffffff;margin: auto;left:0;right: 0;top:34%;"><div style="height: 14px ;background-color: #58cbc3;margin-bottom: 30px;"></div><textarea class="btn_textarea" id="J_prompt_content" style="width: 265px; margin-left: 15px; height: 90px; border-color:1px solid #e4e4e4;"></textarea><div style="color:#2b2e30;width: 300px;height: 50px;margin: auto;text-align: center;"></div><div id="J_alert_sure" style="border-radius:4px;-webkit-border-radius: 4px;-moz-border-radius: 4px; cursor: pointer; color:#ffffff; position: absolute;bottom: 10px;margin: auto;left:-100px;right: 0; float:left; width: 30%;height: 35px;background-color: #58cbc3;text-align: center;line-height: 35px;">確定</div><div id="J_alert_cancel" style="border-radius:4px;-webkit-border-radius: 4px;-moz-border-radius: 4px; cursor: pointer; color:#ffffff; position: absolute;bottom: 10px;margin: auto;left:110px;right: 0; float:left; width: 30%;height: 35px;background-color: #58cbc3;text-align: center;line-height: 35px;">取消</div></div>';
			me.cancel();
			$("body").append(layer);
			$("body").append(content);
			$("#J_alert_sure").on("click", function() {
				var txt = $("#J_prompt_content").val();
				if ($.trim(txt).length > 0) {
					me.cancel();
					if (callback) {
						callback(true, txt);
					}
				}
			});
			$("#J_alert_cancel").on("click", function() {
				me.cancel();
				if (callback) {
					callback(false, $("#J_prompt_content").val());
				}
			});
		},
		cancel : function() {
			$("#J_mengban,#J_conform,#J_alert,#J_toast").remove();
			return this;
		},
		close : function() {
			return this.cancel();
		}
	};
})($);

  

代碼所需圖片:

 實現效果:


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 自從ES6流行起來,Promise 的使用變得更頻繁更廣泛了,比如非同步請求一般返回一個 Promise 對象,Generator 中 yield 後面一般跟 Promise 對象,ES7中 Async 函數中 await 後面一般也是 Promise 對象,還有更多的 NodeAPI 也會返回 Pr ...
  • 如果覺得設置樣式太麻煩,或者頁面上選中的樣式太複雜,也可以用背景圖去修改樣式<div class=""> <label><input type="radio" name="1"><i class="spot"></i>123456</label> <label><input type="radio" ...
  • 近年來,前端技術的發展迅速,但因為前端知識面龐大,在實際學習當中往往無法理清其中的脈絡。下麵從各種庫、框架、插件的層面上,對前端知識點做一些簡單的梳理。從軟體工程上,將前端分為四個由淺及深的層面或階段。 一、基礎層(瀏覽器原生支持html/css/js) HTML超文本標記語言,用標簽構建網頁的內容 ...
  • 總體過了一下後面的流程,發現Compiler模塊確實不適合單獨講解,這裡繼續講解後面的代碼: 這行代碼與之前設置options預設值非常相似,但是複雜程度根本不是一個次元的。 這一節只能簡單的看一眼內部到底有多少東西,整理後源碼如下: 這個模塊除去父類引入,其餘插件光頂部引入就有34個,簡直就是插件 ...
  • openlayers3教材詳解及demo(完整) OpenLayers 3對OpenLayers網路地圖庫進行了根本的重新設計。版本2雖然被廣泛使用,但從JavaScript開發的早期發展階段開始,已日益現實出它的落後。 OL3已運用現代的設計模式從底層重寫。 最初的版本旨在支持第2版提供的功能,提 ...
  • HTML5 var uaTest = /Android|webOS|Windows Phone|iPhone|ucweb|ucbrowser|iPod|iPad|BlackBerry/i.test(navigator.userAgent.toLowerCase());var touchTest = ...
  • 深入ES6 模塊系統 本文轉載自: "眾成翻譯" 譯者: "neck" 鏈接: "http://www.zcfy.cc/article/4436" 原文: "https://ponyfoo.com/articles/es6 modules in depth the es6 module system ...
  • JavaScript中的工廠方法、構造函數與class 本文轉載自: "眾成翻譯" 譯者: "謝於中" 鏈接: "http://www.zcfy.cc/article/1129" 原文: "https://medium.com/javascript scene/javascript factory ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...