Java学习者论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

恭喜Java学习者论坛(https://www.javaxxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,购买链接:点击进入购买VIP会员
JAVA高级面试进阶视频教程Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程

Go语言视频零基础入门到精通

Java架构师3期(课件+源码)

Java开发全终端实战租房项目视频教程

SpringBoot2.X入门到高级使用教程

大数据培训第六期全套视频教程

深度学习(CNN RNN GAN)算法原理

Java亿级流量电商系统视频教程

互联网架构师视频教程

年薪50万Spark2.0从入门到精通

年薪50万!人工智能学习路线教程

年薪50万!大数据从入门到精通学习路线年薪50万!机器学习入门到精通视频教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程 MySQL入门到精通教程
查看: 1031|回复: 0

仿QQ空间图片弹出效果 js代码

[复制链接]

该用户从未签到

发表于 2011-10-28 13:54:16 | 显示全部楼层 |阅读模式
参考网上代码,自己做了一个仿QQ空间图片弹出效果,但现在还无法在弹出层切换图片。
以下是js代码:
Js代码
function imageShow(which_click) {   
        var image_path = which_click.src;   
        //alert(image_path);   
        var tag_top = Math.max(document.documentElement.scrollTop, document.body.scrollTop);   
           
        //创建底层灰色DIV   
        var index_tag = document.createElement("div");   
        index_tag.style.cssText = "width:100%;height:"+Math.max(document.body.clientHeight,document.body.offsetHeight,document.documentElement.clientHeight)+"px;position:absolute;background:black;top:0;filter: Alpha(Opacity=80);Opacity:0.8;";   
        document.body.appendChild(index_tag);   
        index_tag.ondblclick = closeIndexTag;   
           
        //创建图片DIV   
        var img_tag = document.createElement("div");   
        img_tag.style.cssText = "font:12px /18px verdana;overflow:auto;text-align:center;position:absolute;width:200px;border:5px solid white;background:white;color:white;left:"+(parseInt(document.body.offsetWidth)/2-100)+"px;top:"+(document.documentElement.clientHeight/3+tag_top)+"px;";   
        img_tag.innerHTML = "<div style='padding:10px;background:#cccccc;border:1px solid white'><img src='images/loading.gif' /><br /><br /><b style='color:#999999;font-weight:normal'>Image loading...</b><br /></div>";   
        img_tag.oncontextmenu = function() {   
            var clsOK=confirm("是否确定关闭图片显示");     
            if(clsOK)   
                closeIndexTag();   
            return false;   
        }   
        img_tag.onmousemove = barDidplay;   
        document.body.appendChild(img_tag);   
           
        //构建图片关闭按钮   
        var close_tag = document.createElement("div");   
        close_tag.style.cssText = "display:none;position:absolute;left:10px;top:10px;color:black;";   
        close_tag.innerHTML = "<b style='background:red;border:1px solid white;filter:Alpha(Opacity=50);Opacity:0.5;cursor:pointer;'> 关闭 </b>";   
        close_tag.onclick = closeIndexTag;   
           
        var img = new Image();   
        img.src = image_path;   
        img.style.cssText = "border:1px solid #cccccc;filter: Alpha(Opacity=0);Opacity:0;cursor:pointer";   
        img.onload = imgOK();   
           
        function imgOK() {   
            var temp = 0;   
               
            var stop_x = false;   
            var stop_y = false;   
            var img_tag_x = img_tag.offsetWidth;   
            var img_tag_y = img_tag.offsetHeight;   
            var img_x = img.width;   
            var img_y = img.height;   
            var scroll_x=document.documentElement.clientWidth;   
            var scroll_y=window.innerHeight||document.documentElement.clientHeight;   
            var yy = 0;   
            var xx = 0;   
            if(img_y > scroll_y || img_x > scroll_x){   
                yy = scroll_y - 100;   
                xx = (img_x / img_y) * yy;   
            }else{   
                xx = img_x + 4;   
                yy = img_y + 3;   
            }   
            img.style.width=xx-4+'px';   
            img.style.height=yy-3+'px';   
               
            var maxTime = setInterval(function() {   
                temp += 30;   
                if((img_tag_x + temp) < xx) {   
                    img_tag.style.width = (img_tag_x + temp) + "px";   
                    img_tag.style.left = (scroll_x - img_tag_x - temp)/2 + "px";   
                } else {   
                    stop_x = true;   
                    img_tag.style.width = xx + "px";   
                    img_tag.style.left = (scroll_x - xx)/2 + "px";   
                }   
                if((img_tag_y + temp) < yy) {   
                    img_tag.style.height = (img_tag_y + temp) + "px";   
                    img_tag.style.top = (tag_top + (scroll_y - img_tag_y - temp)/2) + "px";   
                } else {   
                    stop_y = true;   
                    img_tag.style.height = yy + "px";   
                    img_tag.style.top = (tag_top + (scroll_y - yy)/2) + "px";   
                }   
                if(stop_x && stop_y) {   
                    clearInterval(maxTime);   
                    img_tag.appendChild(img);   
                    temp = 0;   
                    imgOpacity(temp);   
                }   
            }, 1);   
            img_tag.innerHTML="";   
            img_tag.appendChild(close_tag);   
        }           
           
        function closeIndexTag() {   
            document.body.removeChild(index_tag);   
            document.body.removeChild(img_tag);   
        }   
           
        function imgOpacity(temp_imgOpacity) {   
                    var temp = temp_imgOpacity;   
                    temp += 10;   
                    img.style.filter = "alpha(opacity=" + temp + ")";   
                    img.style.opacity = temp/100;   
                    var imgTime = setTimeout(function() {imgOpacity(temp);}, 10);   
                    if(temp > 100)   
                        clearTimeout(imgTime);   
        }   
           
        var bar_show;   
        function barDidplay(){   
            clearTimeout(bar_show);   
            close_tag.style.display = "block";   
            bar_show = setTimeout(function() {close_tag.style.display = "none"}, 1000);   
        }   
}   

function imageShow(which_click) {
        var image_path = which_click.src;
        //alert(image_path);
        var tag_top = Math.max(document.documentElement.scrollTop, document.body.scrollTop);
         
        //创建底层灰色DIV
        var index_tag = document.createElement("div");
        index_tag.style.cssText = "width:100%;height:"+Math.max(document.body.clientHeight,document.body.offsetHeight,document.documentElement.clientHeight)+"px;position:absolute;background:black;top:0;filter: Alpha(Opacity=80);Opacity:0.8;";
        document.body.appendChild(index_tag);
        index_tag.ondblclick = closeIndexTag;
         
        //创建图片DIV
        var img_tag = document.createElement("div");
        img_tag.style.cssText = "font:12px /18px verdana;overflow:auto;text-align:center;position:absolute;width:200px;border:5px solid white;background:white;color:white;left:"+(parseInt(document.body.offsetWidth)/2-100)+"px;top:"+(document.documentElement.clientHeight/3+tag_top)+"px;";
        img_tag.innerHTML = "<div style='padding:10px;background:#cccccc;border:1px solid white'><img src='images/loading.gif' /><br /><br /><b style='color:#999999;font-weight:normal'>Image loading...</b><br /></div>";
        img_tag.oncontextmenu = function() {
            var clsOK=confirm("是否确定关闭图片显示");
            if(clsOK)
                closeIndexTag();
            return false;
        }
        img_tag.onmousemove = barDidplay;
        document.body.appendChild(img_tag);
         
        //构建图片关闭按钮
        var close_tag = document.createElement("div");
        close_tag.style.cssText = "display:none;position:absolute;left:10px;top:10px;color:black;";
        close_tag.innerHTML = "<b style='background:red;border:1px solid white;filter:Alpha(Opacity=50);Opacity:0.5;cursor:pointer;'> 关闭 </b>";
        close_tag.onclick = closeIndexTag;
         
        var img = new Image();
        img.src = image_path;
        img.style.cssText = "border:1px solid #cccccc;filter: Alpha(Opacity=0);Opacity:0;cursor:pointer";
        img.onload = imgOK();
         
        function imgOK() {
            var temp = 0;
            
            var stop_x = false;
            var stop_y = false;
            var img_tag_x = img_tag.offsetWidth;
            var img_tag_y = img_tag.offsetHeight;
            var img_x = img.width;
            var img_y = img.height;
            var scroll_x=document.documentElement.clientWidth;
            var scroll_y=window.innerHeight||document.documentElement.clientHeight;
            var yy = 0;
            var xx = 0;
            if(img_y > scroll_y || img_x > scroll_x){
                yy = scroll_y - 100;
                xx = (img_x / img_y) * yy;
            }else{
                xx = img_x + 4;
                yy = img_y + 3;
            }
            img.style.width=xx-4+'px';
            img.style.height=yy-3+'px';
            
            var maxTime = setInterval(function() {
                temp += 30;
                if((img_tag_x + temp) < xx) {
                    img_tag.style.width = (img_tag_x + temp) + "px";
                    img_tag.style.left = (scroll_x - img_tag_x - temp)/2 + "px";
                } else {
                    stop_x = true;
                    img_tag.style.width = xx + "px";
                    img_tag.style.left = (scroll_x - xx)/2 + "px";
                }
                if((img_tag_y + temp) < yy) {
                    img_tag.style.height = (img_tag_y + temp) + "px";
                    img_tag.style.top = (tag_top + (scroll_y - img_tag_y - temp)/2) + "px";
                } else {
                    stop_y = true;
                    img_tag.style.height = yy + "px";
                    img_tag.style.top = (tag_top + (scroll_y - yy)/2) + "px";
                }
                if(stop_x && stop_y) {
                    clearInterval(maxTime);
                    img_tag.appendChild(img);
                    temp = 0;
                    imgOpacity(temp);
                }
            }, 1);
            img_tag.innerHTML="";
            img_tag.appendChild(close_tag);
        }         
         
        function closeIndexTag() {
            document.body.removeChild(index_tag);
            document.body.removeChild(img_tag);
        }
         
        function imgOpacity(temp_imgOpacity) {
                    var temp = temp_imgOpacity;
                    temp += 10;
                    img.style.filter = "alpha(opacity=" + temp + ")";
                    img.style.opacity = temp/100;
                    var imgTime = setTimeout(function() {imgOpacity(temp);}, 10);
                    if(temp > 100)
                        clearTimeout(imgTime);
        }
         
        var bar_show;
        function barDidplay(){
            clearTimeout(bar_show);
            close_tag.style.display = "block";
            bar_show = setTimeout(function() {close_tag.style.display = "none"}, 1000);
        }
}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|Java学习者论坛 ( 声明:本站资料整理自互联网,用于Java学习者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

GMT+8, 2025-1-8 13:27 , Processed in 0.753273 second(s), 36 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表