CSS3 animation-- 写一个带有回弹效果的模态对话框----1

这篇文章写法有问题,有空的时候会重新更新

据说大师的成长的路线是这样的:

follow the rule    >>>>>>break the rule >>>>>>>be the rule

而作为前端小白,当然第一步就是空闲的时候多练习造轮子了。

一般来说弹出层都要解决2个问题:

   1.弹出层后,禁用html和body滚动

   2.入场动画的制作

我们先看一下效果图:


1.HTML 页面

<div class="main-container grid">

			<div class="box">
				弹出对话框
			</div>
		</div>

		<div class="dialogue-mask">
			<div class="dialogue-container">
				<div class="dialogue-title border-bottom">
					对话框标题
				</div>

				<div class="dialogue-content border-bottom">
					这里是对话框内容,比如:你确定要提交调查信息吗?
				</div>

				<div class="dialogue-btn clear-float">
					<div class="dialogue-sure">
						确认
					</div>

					<div class="dialogue-cancel">
						取消
					</div>
				</div>
			</div>
		</div>
2.CSS样式

.grid{
	background-image:-webkit-linear-gradient(top,
					transparent 49px,
					#bfbebe 50px),
					-webkit-linear-gradient(left,
					transparent 49px,
					#bfbebe 50px);

	background-size:50px 50px;
	background-repeat:repeat;                     /*先画个网格,便于布局*/
}

/*主容器*/
.main-container{
	position:absolute;
	left:0;
	top:0;
	width:100%;
	height:1000px;
}

/*BOX*/
.box{
	width:100px;
	height:50px;
	background-color:grey;
	margin:100px;
	position:relative;
	color:white;
	text-align:center;
	line-height:50px;
}

.box-style{
/*	margin-top:10px;
	transition-property:margin-top;
	transition-duration:2s;
	transition-timing-function: ease-out;
	transition-delay:0;*/
	width:200px;
	height:100px;
	transition:width 1s ease-in-out,height 4s 1s ease-out;
}

/**/
.good-noon{
	position:relative;
	width:100px;
	height:50px;
	border:1px solid black;
	/*-webkit-animation:demo 10s;*/
	-webkit-animation-name:demo;
	-webkit-animation-duration:2s;
	-webkit-animation-timing-function:ease-in;
	-webkit-animation-delay:0s;
	-webkit-animation-iteration-count:1;
	-webkit-animation-direction:alternate;
	-webkit-animation-fill-mode:backwards;
}

@-webkit-keyframes demo{
	0% {left:0;background-color:white;}
	50% {left:200px;background-color:yellow;}
	100% {left:0px;background-color:red;}
}

/**/
div{
	box-sizing:border-box;
}

.dialogue-mask{
	position:absolute;                        /*弹出层*/
	left:0;
	top:0;
	width:100%;
	height:100%;
	background-color:rgba(128,128,128,0.5);
	display:none;
	overflow:auto;
}



.dialogue-container{
	position:absolute;
	width:80%;
	left:50%;
	top:40%;
	box-sizing:border-box;
	-webkit-transform:translate(-50%,-50%);
	background-color:white;
	box-shadow: 1px 1px 1px 1px #cdcfda;
    border-radius: 10px;
    padding:15px;
    display:block;
    z-index:2;
}

.dialogue-title{
	font-size:16px;
	font-weight:bold;
	line-height:30px;
	position:relative;
}

.border-bottom::after{
	content:"";
	width:100%;
	height:1px;
	position:absolute;
	bottom:0;
	left:0;
	background-color:#b9b9b9;
	-webkit-transform:scaleY(0.5);

}

.dialogue-content{
	font-size:14px;
	line-height:25px;
	position:relative;
}

.dialogue-btn{
	margin-top:10px;
}

.clear-float::after{
	content:"";
	display:block;
	clear:both;
}

.dialogue-cancel{
	float:right;
	margin-right:20px;
	padding: 8px 25px;
	color:grey;
	background-color:white;
	border-radius:3px;
	border:1px solid #e2e1e1;
}

.dialogue-sure{
	float:right;
	padding: 8px 25px;
	color:white;
	background-color:#229ffd;
	border-radius:3px;
}


@-webkit-keyframes dialogue-in{
	0% {top:0;}
	50% {top:40%;}
	90% {top:37%;}
	100% {top:40%;}
}

.animation-dialogue-in{
	display:block;

	-webkit-animation:dialogue-in 0.5s cubic-bezier(0.215, 0.610, 0.355, 1.000);
}


/*隐藏滚动条*/
.forbid-scroll{
	height:100%;
	overflow:hidden;
}




3.JS

$(".box").click(function(){
	$(".dialogue-mask").show();
	$(".dialogue-container").addClass("animation-dialogue-in");
	$("body,html").addClass("forbid-scroll");//弹出层后,禁用body和html滚动

});


$(".dialogue-cancel").click(function(){
	$(".dialogue-mask").hide();
	$(".dialogue-container").removeClass("animation-dialogue-in");
	$("body,html").removeClass("forbid-scroll");
})

$(".dialogue-sure").click(function(){
	console.log("You have clicked the sure button");
});




  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是带有注意力机制的CNN-BiGRU多模态情感识别模型的代码: ```python import tensorflow as tf from tensorflow.keras.layers import Input, Dense, Dropout, Conv1D, MaxPooling1D, GRU, Bidirectional, concatenate, Flatten, Attention from tensorflow.keras.models import Model # 定义模型输入 text_input = Input(shape=(max_text_length,), name='text_input') audio_input = Input(shape=(max_audio_length,), name='audio_input') visual_input = Input(shape=(max_visual_length,), name='visual_input') # 定义CNN层,处理文本输入 text_embed = Embedding(input_dim=vocab_size, output_dim=embedding_size, input_length=max_text_length)(text_input) text_conv = Conv1D(filters=32, kernel_size=3, activation='relu')(text_embed) text_pool = MaxPooling1D(pool_size=2)(text_conv) text_drop = Dropout(0.5)(text_pool) # 定义BiGRU层,处理音频和视觉输入 audio_gru = Bidirectional(GRU(units=32, return_sequences=True))(audio_input) visual_gru = Bidirectional(GRU(units=32, return_sequences=True))(visual_input) # 定义注意力机制 text_att = Attention()([audio_gru, visual_gru, text_drop]) # 将三个模态的特征进行拼接 merged_features = concatenate([audio_gru, visual_gru, text_att], axis=-1) # 定义全连接层,输出情感分类结果 fc1_dropout = Dropout(0.5)(merged_features) fc1 = Dense(64, activation='relu')(fc1_dropout) output = Dense(num_classes, activation='softmax', name='output')(fc1) # 定义模型 model = Model(inputs=[text_input, audio_input, visual_input], outputs=output) model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy']) ``` 在该模型中,我们分别定义了文本、音频和视觉三个输入,并使用CNN和BiGRU分别对它们进行特征提取和编码。然后,我们使用注意力机制,将文本特征与音频和视觉特征进行融合,以获取更全面的多模态特征。最后,我们将三个模态的特征进行拼接,通过全连接层输出情感分类结果。 需要注意的是,该模型的具体实现可能因数据集、任务类型等因素而有所不同,上述代码仅供参考。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值