javascript层上加载flash问题
我想要一种效果,就是点击一个链接文字,网页即变暗,显示一个浮动层.除了这个浮动层外,网页上其它地方都不能操作.这个浮动层上加载一个flash,当点击这个flash上设的关...
我想要一种效果,就是点击一个链接文字,网页即变暗,显示一个浮动层.除了这个浮动层外,网页上其它地方都不能操作.这个浮动层上加载一个flash,当点击这个flash上设的关闭按钮后,浮动层隐藏.
请问:这个javascript怎么写?flash中的关闭按钮的代码怎么写?要用到xml吗?请高手指点.谢谢!
详见www.huawei.com.cn中,右上角,点击:选择地区/语言 的效果 展开
请问:这个javascript怎么写?flash中的关闭按钮的代码怎么写?要用到xml吗?请高手指点.谢谢!
详见www.huawei.com.cn中,右上角,点击:选择地区/语言 的效果 展开
4个回答
展开全部
1.设置一个遮罩层,透明度为20%;
2.点击链接文字的时候执行一个js函数,函数内容为计算页面高度和宽度,然后设置这个遮罩层的宽度和高度与其相等,这样就实现了页面变暗。
3.设置一个窗口层,同样在点击链接的js函数中,计算当前可视屏的宽度和高度以及top和left,然后设置这个窗口层居中。
4.编写一个函数closePop(),实现隐藏遮罩层和居中的窗口层,当点击flash中的关闭按钮后,调用js中的closePop()以实现关闭层。
只需要编写两个js函数,一个用来显示层,一个用来隐藏层。难点就是显示层的时候,要计算页面高度宽度等信息,以实现让遮罩层完全遮罩网页,以及让窗口层居中。在flash中调用js函数的方法,网上很多。
具体代码就不写出来了,主要是思路。
当然,你最好可以将这种显示及关闭遮罩层的代码封装为一个js类,抽取共同部分,方便在以后调用。
网上也有许多类似的案例和代码可以参考。
2.点击链接文字的时候执行一个js函数,函数内容为计算页面高度和宽度,然后设置这个遮罩层的宽度和高度与其相等,这样就实现了页面变暗。
3.设置一个窗口层,同样在点击链接的js函数中,计算当前可视屏的宽度和高度以及top和left,然后设置这个窗口层居中。
4.编写一个函数closePop(),实现隐藏遮罩层和居中的窗口层,当点击flash中的关闭按钮后,调用js中的closePop()以实现关闭层。
只需要编写两个js函数,一个用来显示层,一个用来隐藏层。难点就是显示层的时候,要计算页面高度宽度等信息,以实现让遮罩层完全遮罩网页,以及让窗口层居中。在flash中调用js函数的方法,网上很多。
具体代码就不写出来了,主要是思路。
当然,你最好可以将这种显示及关闭遮罩层的代码封装为一个js类,抽取共同部分,方便在以后调用。
网上也有许多类似的案例和代码可以参考。
参考资料: http://hi.baidu.com/289766516/blog/item/9b6b7f12c2f6238a6438db6b.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" />
<title></title>
<STYLE>
#login{
position: relative;
display: none;
top: 20px;
left: 30px;
background-color: #ffffff;
text-align: center;
border: solid 1px;
padding: 10px;
z-index: 1;
}
</STYLE>
<script type="text/javascript">
var W = screen.width;//取得屏幕分辨率宽度
var H = screen.height;//取得屏幕分辨率高度
function M(id){
return document.getElementById(id);//用M()方法代替document.getElementById(id)
}
function MC(t){
return document.createElement(t);//用MC()方法代替document.createElement(t)
};
//判断浏览器是否为IE
function isIE(){
return (document.all && window.ActiveXObject && !window.opera) ? true : false;
}
//取得页面的高宽
function getBodySize(){
var bodySize = [];
with(document.documentElement) {
bodySize[0] = (scrollWidth>clientWidth)?scrollWidth:clientWidth;//如果滚动条的宽度大于页面的宽度,取得滚动条的宽度,否则取页面宽度
bodySize[1] = (scrollHeight>clientHeight)?scrollHeight:clientHeight;//如果滚动条的高度大于页面的高度,取得滚动条的高度,否则取高度
}
return bodySize;
}
//创建遮盖层
function popCoverDiv(){
if (M("cover_div")) {
//如果存在遮盖层,则让其显示
M("cover_div").style.display = 'block';
} else {
//否则创建遮盖层
var coverDiv = MC('div');
document.body.appendChild(coverDiv);
coverDiv.id = 'cover_div';
with(coverDiv.style) {
position = 'absolute';
background = '#333333';
left = '0px';
top = '0px';
var bodySize = getBodySize();
width = bodySize[0] + 'px'
height = bodySize[1] + 'px';
zIndex = 0;
if (isIE()) {
filter = "Alpha(Opacity=60)";//IE逆境
} else {
opacity = 0.6;
}
}
}
}
//让登陆层显示为块
function showLogin()
{
var login=M("login");
login.style.display = "block";
}
//设置DIV层的样式
function change(){
var login = M("login");
login.style.position = "absolute";
login.style.border = "1px solid #CCCCCC";
login.style.background ="#F6F6F6";
var i=0;
var bodySize = getBodySize();
login.style.left = (bodySize[0]-i*i*4)/2+"px";
login.style.top = (bodySize[1]/2-100-i*i)+"px";
login.style.width = i*i*4 + "px";
login.style.height = i*i*1.5 + "px";
popChange(i);
}
//让DIV层大小循环增大
function popChange(i){
var login = M("login");
var bodySize = getBodySize();
login.style.left = (bodySize[0]-i*i*4)/2+"px";
login.style.top = (bodySize[1]/2-100-i*i)+"px";
login.style.width = i*i*4 + "px";
login.style.height = i*i*1.5+ "px";
if(i<=10){
i++;
setTimeout("popChange("+i+")",10);//设置超时10毫秒
}
}
//打开DIV层
function open()
{
change();
showLogin();
popCoverDiv()
void(0);//不进行任何操作,如:<a href="#">aaa</a>
}
//关闭DIV层
function close(){
M('login').style.display = 'none';
M("cover_div").style.display = 'none';
void(0);
}
</script>
</head>
<body>
<a href="javascript:open();">点击出现层</a>
<div id="login"> <a href="javascript:close();">关闭</a>
<div id="panel"> 你的flash插入代码 </div>
</div>
</body>
</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" />
<title></title>
<STYLE>
#login{
position: relative;
display: none;
top: 20px;
left: 30px;
background-color: #ffffff;
text-align: center;
border: solid 1px;
padding: 10px;
z-index: 1;
}
</STYLE>
<script type="text/javascript">
var W = screen.width;//取得屏幕分辨率宽度
var H = screen.height;//取得屏幕分辨率高度
function M(id){
return document.getElementById(id);//用M()方法代替document.getElementById(id)
}
function MC(t){
return document.createElement(t);//用MC()方法代替document.createElement(t)
};
//判断浏览器是否为IE
function isIE(){
return (document.all && window.ActiveXObject && !window.opera) ? true : false;
}
//取得页面的高宽
function getBodySize(){
var bodySize = [];
with(document.documentElement) {
bodySize[0] = (scrollWidth>clientWidth)?scrollWidth:clientWidth;//如果滚动条的宽度大于页面的宽度,取得滚动条的宽度,否则取页面宽度
bodySize[1] = (scrollHeight>clientHeight)?scrollHeight:clientHeight;//如果滚动条的高度大于页面的高度,取得滚动条的高度,否则取高度
}
return bodySize;
}
//创建遮盖层
function popCoverDiv(){
if (M("cover_div")) {
//如果存在遮盖层,则让其显示
M("cover_div").style.display = 'block';
} else {
//否则创建遮盖层
var coverDiv = MC('div');
document.body.appendChild(coverDiv);
coverDiv.id = 'cover_div';
with(coverDiv.style) {
position = 'absolute';
background = '#333333';
left = '0px';
top = '0px';
var bodySize = getBodySize();
width = bodySize[0] + 'px'
height = bodySize[1] + 'px';
zIndex = 0;
if (isIE()) {
filter = "Alpha(Opacity=60)";//IE逆境
} else {
opacity = 0.6;
}
}
}
}
//让登陆层显示为块
function showLogin()
{
var login=M("login");
login.style.display = "block";
}
//设置DIV层的样式
function change(){
var login = M("login");
login.style.position = "absolute";
login.style.border = "1px solid #CCCCCC";
login.style.background ="#F6F6F6";
var i=0;
var bodySize = getBodySize();
login.style.left = (bodySize[0]-i*i*4)/2+"px";
login.style.top = (bodySize[1]/2-100-i*i)+"px";
login.style.width = i*i*4 + "px";
login.style.height = i*i*1.5 + "px";
popChange(i);
}
//让DIV层大小循环增大
function popChange(i){
var login = M("login");
var bodySize = getBodySize();
login.style.left = (bodySize[0]-i*i*4)/2+"px";
login.style.top = (bodySize[1]/2-100-i*i)+"px";
login.style.width = i*i*4 + "px";
login.style.height = i*i*1.5+ "px";
if(i<=10){
i++;
setTimeout("popChange("+i+")",10);//设置超时10毫秒
}
}
//打开DIV层
function open()
{
change();
showLogin();
popCoverDiv()
void(0);//不进行任何操作,如:<a href="#">aaa</a>
}
//关闭DIV层
function close(){
M('login').style.display = 'none';
M("cover_div").style.display = 'none';
void(0);
}
</script>
</head>
<body>
<a href="javascript:open();">点击出现层</a>
<div id="login"> <a href="javascript:close();">关闭</a>
<div id="panel"> 你的flash插入代码 </div>
</div>
</body>
</html>
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
貌似EXT里面就有现成的代码,这个效果就是类似JavaScript自带的alert弹出一样。只要这个对话框不消失,就不能进行别的操作,是吗?而且其他部分还变暗。
http://www.extjs.com/examples-dev/explorer.html#messagebox
就像这个。
可以放个window上去,window加载个页面,你的flash放到那个准备加载的页面就OK拉,还可以引入脚本语言,都没有问题。
http://www.extjs.com/examples-dev/explorer.html#messagebox
就像这个。
可以放个window上去,window加载个页面,你的flash放到那个准备加载的页面就OK拉,还可以引入脚本语言,都没有问题。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
一个遮罩层,绝对定位,css z-index 属性仅次于flash所在层。
如果你有firefox+firebug,可以看他的源代码。可惜我在用别人的电脑。
就是javascript 操纵dom,css
用不到xml
如果你有firefox+firebug,可以看他的源代码。可惜我在用别人的电脑。
就是javascript 操纵dom,css
用不到xml
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询