function fnCreate(src) {

            /* 要创建的div的classname */
            var ClassName = "thumbviewbox" ;
 
            if (src == '' ) {
                return false ;
            }
 
           /* 优先创建图片,如果图片没有加载成功,回调自己 */
            var img = document.createElement('img' );
            img.setAttribute( 'src', src);
         //显示图片的大小
            var imgwd = "300px" ;
            var imghg = "300px" ;
 
            if (imgwd < 1) {
                var timer = setTimeout("fnCreate('" + src + "')", 100);
                return false ;
            } else {
                clearInterval(timer);
            }
 
            /* 清除已经弹出的窗口,防止冒泡 */
            em = document.getElementsByClassName(ClassName)
 
            for (var i = em.length - 1; i >= 0; i--) {
                var p = em[i];
                p.parentNode.removeChild(p);
            }
 
           /* 各项参数 */
            var htmlWidth = window.innerWidth;             //可见区域宽度
            var htmlHeight = window.innerHeight;           //可见区域高度
            var divleft = 0;                                                 //将要创建的div的左边距
            var divtop = 0;                                                //将要创建的div的右边距
            var closefunction = 'em=document.getElementsByClassName("' + ClassName + '");for(var i=em.length-1;i>=0;i--){var p=em[i];p.parentNode.removeChild(p);}';     //关闭div的代码
 
            img.setAttribute( 'onclick', closefunction);
 
           /* 计算通过图片计算div应该在的位置,保证弹窗在页面中央 */
            if (imgwd > htmlWidth * 0.8) {
                img.setAttribute( 'width', htmlWidth * 0.8);
                divleft = htmlWidth * 0.1;
                if (imghg > htmlHeight * 0.8) {
                    divtop = htmlHeight * 0.1;
                } else {
                    divtop = (htmlHeight - imgwd) / 2;
                }
            } else {
                img.setAttribute( 'width', imgwd);
                divleft = (htmlWidth - imgwd) / 2;
                if (imghg > htmlHeight * 0.8) {
                    divtop = htmlHeight * 0.1;
                }
                else {
                    divtop = (htmlHeight - imgwd) / 2;
                }
            }
 
            /* 创建关闭按钮 */
            var closebtn = document.createElement('a');
            closebtn.setAttribute( 'class', 'close' );
            closebtn.setAttribute( 'href', 'javascript:;' );
            closebtn.setAttribute( 'style', 'position:absolute;top:-20px;right:-5px;cursor:pointer;background:#444;color:#FFF;' );
            closebtn.innerHTML = '[close/关?闭??]';
            closebtn.setAttribute( 'onclick', closefunction);
 
            /* 创建弹窗 */
            var element = document.createElement('div');
            element.appendChild(img);
            element.appendChild(closebtn);
            element.setAttribute( 'class', ClassName);
            element.setAttribute( 'style', 'border:5px solid #444;position:absolute;top:' + Math.round(divtop) + 'px;left:' + Math.round(divleft) + 'px;border-radius:5px;background:#FFF;z-index:9999;' );
            document.body.appendChild(element);
        }

JavaScript 图片弹框显示的更多相关文章

  1. JavaScript实现弹框

    提起JS弹框,我首先想到的是Alert,然后想到的还是Alert,最后我竟然就只知道Alert.然后面试就死在这个Alert上了.恼火. 根据网上各位大神的总结,我整理了一下,也顺便学习了一下. 一. ...

  2. 【jquery+easyUI】-- $.messager.show 弹框显示

    三种基本弹框 1.提示框,一秒停留 $.messager.show({ title: '提示', msg: '修改成功!', showType: 'fade', //设置显示类型 style: { l ...

  3. javascript的弹框

    学习js最先了解到的两种种简单测试手段就是alert("blah");和console.log("blah");了. 除了alert之外,js还有两种弹框 co ...

  4. weui 图片弹框

    添加图片与弹出效果对比: HTML: <!DOCTYPE html> <html> <head> <meta charset="UTF-8" ...

  5. odoo学习之弹框显示

    按条件隐藏: <xpath expr="//group[1]" position="attributes"> <attribute name= ...

  6. win10系统rational rose 安装后打开弹框显示java.lang.ClassNotFoundException 解决方案

    场景复现:安装Rational Rose,按照破解方法完成后,打开程序,会弹出对话框显示java.lang.ClassNotFoundException,在关闭程序时也会弹出一个对话框,并且程序不能关 ...

  7. 单击HighCharts柱形体弹框显示详细信息

    上篇博客介绍了如何在HighCharts统计图表下生成表格,二者相互结合,可以对数据进行更好的统计分析.在统计的同时,如果需要想要及时查看详细信息的话,就得再加一个功能,就是单击柱形体,显示该项下的详 ...

  8. vux弹框显示

    //点击按钮,执行什么成功,失败用这个合适this.$vux.toast.show({ text: '添加成功'}) //点击按钮,提示出现的问题 this.$vux.toast.show({ tex ...

  9. Android原生代码拦截H5 Web页面中JavaScript弹窗/弹框

    <html> <body> <script> function showAlert(){ alert("JavaScript - hello , worl ...

随机推荐

  1. Monitor类:Object synchronization method was called from an unsynchronized block of code.

    最近,在维护以前老系统的时候,发现了这样一个错误:Object synchronization method was called from an unsynchronized block of co ...

  2. all about

    1.三次握手和四次挥手?2.什么是OSI七层结构?3.http vs https?4.what is Ping?基于什么协议?使用方法?5.DNS?6.cookie vs session?7.LDAP ...

  3. unigui+fastreport报表打印

    unigui+fastreport报表打印   unigui+fastreport报表打印 FASTREPORT导出成PDF报表,UNIGUI的TUniURLFrame显示PDF报表并打印. func ...

  4. elasticSearch新认知

    之前已经学习使用过ElasticSearch的使用,今天补充巩固一下... 上一次的环境是在 linux下使用 EalsticSearch(安装教程详见:https://www.cnblogs.com ...

  5. java处理数据库不支持的emoji表情符

    一般数据库的编码是utf8,utf8是不支持存储表情符的,当存入的微信昵称带有表情符时就会出现乱码情况,有两种解决方法: 1.mysql数据库升级到5.5版本以上,utf8改为utf8mb4,utf8 ...

  6. es5

    var arr1=["上海","北京","广州"]; var arr2=[12,22, 33,58,32,45,92]; // 数组.方法( ...

  7. Java核心技术卷一基础知识-第9章-Swing用户界面组件-读书笔记

    第9章 Swing用户界面组件 本章内容: * Swing与模型-视图-控制器设计模式 * 布局管理概述 * 文本输入 * 选择组件 * 菜单 * 复杂的布局管理 * 对话框 本章将介绍构造功能更加齐 ...

  8. 关于DB Link

    概述 DB Link是一个定义了本地数据库到远程数据库路径的对象,是schema object,它是单向连接 通过DB Link可查询remote数据库的对象及运行其程序 在分布式环境里,DB Lin ...

  9. 屌炸天,Oracle 发布了一个全栈虚拟机 GraalVM,支持 Python!

    前阵子,Oracle 发布了一个黑科技 "GraalVM",号称是一个全新的通用全栈虚拟机,并具有高性能.跨语言交互等逆天特性,真有这么神奇? GraalVM 简介 GraalVM ...

  10. Python 高度定制化自己的线程类和进程类代码,获取启动进程或线程方法的结果(兼容Py2和Py3)

    #encoding=utf-8 from threading import Thread from multiprocessing import Process import multiprocess ...