js+css实现图片弹框并放大图片

news/2024/7/19 12:58:31 标签: css, js, javascript, html, html5

Tips:虽然代码有点长,但是你只需要改掉一个图片链接再下载个jQuery.html" title=js>js就可以得到要展示的效果。

话不多说,先上效果图
点击图片之后会将图片放大1.5倍放大,背景遮罩层根据情况进行设置
在这里插入图片描述
今晚找了很多博客都讲不清楚,所以自己就动脑子想想怎么做吧。。。
然后,根据之前设置弹出框的思想,搞出这个图片的放大效果,也挺有成就感,但是代码还是太Low,需要系统学一下呀。。。

思路:
1.设置遮罩层div,遮罩层根据body和clientHeight取大值进行设置;
2.设置弹出框div,添加img标签;
3.获取图片的链接、高度、宽度等性质;
4.向弹出框中添加src链接并设置图片属性,显示完毕。

上代码,这里加入了jQuery:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>test</title>
    <script type="text/html" title=javascript>javascript" src="jquery-3.4.1.html" title=js>js"></script>
</head>
<style type="text/html" title=css>css">
    ul li{
        list-style: none;
    }
    #container{
        overflow: hidden;
    }
    #container img{
        transition: all 0.8s;
    }
    #container img:hover{
        transform: scale(1.03);
    }
    #layer{
        display: none;
        background-color: #B3B3B3;
        position: absolute;
        width: 100%;
        height: 100%;
        z-index: 10;
        -moz-opacity: 0.8;
        opacity:.80;
    }
    #popBox{
        display: none;
        z-index: 11;
        position:fixed;
        top:0;
        right:0;
        left:0;
        bottom:0;
        margin:auto;
    }
</style>
<script type="text/html" title=javascript>javascript">
    // $(function () {
    //     $('.bigImg').click(function () {
    //
    //     })
    // })
    function BigBig(src, width, height) {
        //获取body高度和宽度,当然是包括下拉框在内的长度
        var bkgWidth = document.body.clientWidth +'px';
        var bkgHeight = document.body.clientHeight + 'px';
        //获取可见高度
        var clientHeight = document.documentElement.clientHeight;

        if(clientHeight > document.body.clientHeight){
            bkgHeight = clientHeight + 'px';
        }else{
            bkgHeight = document.body.clientHeight + 'px';
        }

        var layer = document.getElementById('layer');

        $('#layer').html" title=css>css({"width":bkgWidth, "height":bkgHeight});

        var popBox = document.getElementById('popBox');
        var BigImage = document.getElementById('BigImage');
        layer.style.display = 'block';
        popBox.style.display = 'block';
        // var src = $('#Image1').attr("src")
        console.log(src)

        // var realwidth = $('#Image1').width();
        // var realheight = $('#Image1').height();
        var realwidth = width;
        var realheight = height;
        // console.log(realwidth)
        // console.log(realheight)
        // console.log(width)
        // console.log(height)

        var bigWidth = realwidth*1.5;
        var bigHeight = realheight*1.5;

        $('#BigImage').html" title=css>css({"width":bigWidth, "height":bigHeight})
        $('#BigImage').attr("src", src)

        var leftwidth = (document.body.clientWidth - realwidth*1.5)/2;
        var topheight = (clientHeight - realheight*1.5)/2
        BigImage.style.marginTop = topheight - 10 + 'px';
        BigImage.style.marginLeft = leftwidth + 'px';

        // console.log(bigWidth)
        // console.log(bigHeight)


    }
    function Close(){
        var layer = document.getElementById('layer');
        var popBox = document.getElementById('popBox');

        layer.style.display = 'none';
        popBox.style.display = 'none';
    }
</script>
<body>
<div id="layer">
</div>
<div id="popBox">
    <div>
        <a onclick="Close();" style="cursor: pointer;color: #2D2C3B;">关闭</a>
    </div>
    <img id="BigImage" src="" style="">
</div>
<div id="container">
    <img onclick="BigBig(this.src, this.width, this.height);" style="margin-left: 100px;width: 40%;" src="Image/1001181.jpg">
</div>
</body>
</html>

还是有点成就感的,,,,
多多点赞呀!!!!


http://www.niftyadmin.cn/n/1689001.html

相关文章

JQuery+Bootstrap利用模态框Modal实现图片弹窗并放大图片(单击任意区域图片还原)

上一篇博客写了有关图片弹窗的比较原始的代码 有许多地方不太方便&#xff0c;不太好看 百度了一下&#xff0c;度娘说模态框能够帮助我实现这个功能 于是就试了一下&#xff0c;将固定弹窗改成图片 主要思路&#xff1a; 点击图片&#xff0c;调用js方法BigBig(src, width, …

Windows新建django文件

winR打开命令行终端 cd 到指定目录 django-admin startproject 项目名 cd 到该项目根目录 python manage.py startapp APP名称 在项目名同名的目录下找到settings.py 文件&#xff0c;找到INSTALLED_APPS&#xff0c;将APP名称相关的配置写进去&#xff0c;形如下图&#…

修改Django项目启动IP及端口

命令行上输入&#xff1a; python manage.py runserver ip:port之前在Edit configuration中修改&#xff0c;发现不行&#xff0c;就试了一下上面的那种方法&#xff0c;可以了。。。。

Django前端通过URL传参数到后端(非Ajax版本.simple)

代码结构如下&#xff08;以多个参宿为例&#xff09;&#xff1a; template里的前端代码这样写&#xff1a; action "{% url urlName studentInfo.name studentInfo.Id %}"或者 href "{% url urlName studentInfo.name studentInfo.Id %}"urls.py里这样…

爬虫程序中Xpath的使用

在爬虫过程中有时要定位到某个标签、某个输入框等位置&#xff0c;需要在程序中捕捉到Xpath的信息 一般我们在写程序的时候也会打开网页一步一步查看细节 所以Xpath路径也是很重要的&#xff0c;以下是快速获取Xpath路径的方法&#xff1a; F12进入查看网页源码的界面–>…

bootstrap下table如何设置固定列宽,并让多余内容用省略号(...)代替

首先 table-layout: fixed <table class"table table-hover" style"table-layout: fixed">然后 <td colspan2></td>table的CSS设置 .table thead tr th, .table tbody tr td {vertical-align: middle;/*画像居中*/white-space: nowr…

Django+paginator实现分页+省略号代替多余页码+页面跳转(分页最全功能all_in)

个人拙见&#xff0c;可能还有更好的办法&#xff0c;望指正&#xff01; 先上图看一下效果&#xff1a; js插件引入&#xff1a; jQuerybootstrap 借图分析功能点&#xff08;注意参数代表的意义&#xff09;&#xff1a; 页数 num_pages < 12 时&#xff1a;页码不加省…

Django前端通过URL传参数到后端(Ajax版本)

直接上代码进行注释说明了&#xff1a; HTML中js代码&#xff1a; //向后端请求单条数据Info&#xff0c;使用Ajax,不刷新页面$.ajax({url: {% url "selectDataInfo" %},type: POST,async: true,datatype: json,data: {Id: Id},success: function(data){//这里可以…