html:
<button onclick=""bombClick()" >点击弹框</button>
<div id="bombContain"></div>
<div id="bomb_div"></div>
css:
#bombContain{
z-index: 199412204822//z-index只有在定位元素上生效,默认值static是没有定位的
background-color:#000
opacity:0.6
top:0
left:0
width:100%
height:100%
position:fixed
display:none
}
#bomb_div{
z-index:199412204822
width:34%
height:450px
top:66px
left:36%
margin:0
padding:0
background-color:#fff
box-shadow:1px 1px 50px rgba(0,0,0,.3)
position:fixed
display:none
}
js:
function bombClick(){
$("#bombContain").css("display","block")
$("#bomb_div").css("display","block")
}
思路应该是一个从0%到100%的动画展开的效果,大概需要写0%,50%,100%三个样式。 弹窗的css代码大概是:position: fixedz-index: 2000left: 0top: 0这样弹窗的左上角原点在页面最左上角,如果要调整位置要用CSS变换特效(transform)的平移translate函数达到目的: translate(x, y)(长度值或者百分比):在水平方向、垂直方向平移元素。 translateX(value):水平方向平移。 translateY(value):垂直方向平移。 scale(x, y)、scaleX(value)、scaleY(value):在水平方向、垂直方向或者两个方向上缩放元素。 rotate()、rotateX()、rotateY()、rotateZ():rotate支持3D效果,可在x、y、z轴上旋转元素。 skew()、skewX()、skewY():在水平方向、垂直方向或者两个方向倾斜一定的角度。 另外弹窗展开的动画要用到css3的动画属性: animation-delay:设置动画开始前的延迟时间。 animation-direction:设置动画循环播放的时候是否方向播放,包含normal和alternate两个值。 animation-duration:设置动画播放持续的时间。 animation-interacion-count:设置动画的播放次数,可以为具体数据或者无限循环关键字infinite。 animation-name:指定动画名称。 animation-play-state:允许动画暂停和重新播放,包含running、paused。 animation-timing-function:指定如何计算中间动画值,css 很难实现这个应为css都是设定好后不能被改变的 ,只能通过js重新赋值 ,这种方式就是js里面的多层 jquery ui 里面也有这个插件 自己写个也可以 就是当鼠标移动到指定标签上 触发js效果把原先的div display:none 该变让他显示或者直接写入个div 位置就是当前鼠标的位置 也可以 这个比较好用 。