js点击图片查看大图,并可以拖动,且滚动滑轮放大缩小

JQuery

function hideMax(){
    $(".MAX_div").remove();
    $("#Cover_Div").hide();
 }
    function showMax(url){
        $("#Cover_Div").show();
        var Image=function(){
            return document.createElement("img");
        }
        var DIV=function(){
            return document.createElement("div");
        }
        var div=new DIV();
        var close_div=new DIV();
        var close_img=new Image();
        var img=new Image();
        var _enter=false;
            $(".MAX_div").remove();
            div.setAttribute("class","MAX_div");
            close_div.setAttribute("class","close");
            close_div.setAttribute("title","点击关闭");

            img.setAttribute("class","showMax");
            img.src=url;
            close_img.src="tpl/images/delete.png";
            img.onmouseover=function(){
                _enter=true;
            }
            img.onmouseout=function(){
                _enter=false;
            }
            close_div.onclick=function(){
                hideMax();
            }
            close_div.appendChild(close_img);
            div.appendChild(img);
            div.appendChild(close_div);
            document.body.appendChild(div);

            //var _z=9999;
            var close=$(".close");
            $(document).ready(function(){
             var _move=false;//移动标记
             var _x,_y;//鼠标离控件左上角的相对位置
             var wd;//窗口
                $(".showMax").click(function(){
                    //alert("click");//点击(松开后触发)
                 //this.style.cursor = "default";//鼠标形状
                 //this.style.zIndex = 999;
                    }).mousedown(function(e){
                    _move=true;
                    wd=$(this);

                    //this.style.cursor = "move";//鼠标形状
                   // this.style.zIndex = _z;//窗口层次
                   // _z++;
                    _x=e.pageX-(isNaN(parseInt(wd.css("left")))?0:parseInt(wd.css("left")));
                    _y=e.pageY-(isNaN(parseInt(wd.css("top")))?0:parseInt(wd.css("top")));       

                    c_x=e.pageX-(isNaN(parseInt(close.css("left")))?0:parseInt(close.css("left")));
                    c_y=e.pageY-(isNaN(parseInt(close.css("top")))?0:parseInt(close.css("top"))); 

                    /*  wd.fadeTo(20, 0.25); *///点击后开始拖动并透明显示
                    $(document).mousemove(function(e){
                        if(_move){
                            var x=e.pageX-_x;//移动时根据鼠标位置计算控件左上角的绝对位置
                            var y=e.pageY-_y;

                            var closeX=e.pageX-c_x;
                            var closeY=e.pageY-c_y;
                            wd.css({top:y,left:x});//控件新位置
                            close.css({top:closeY,left:closeX});
                        }
                    }).mouseup(function(){
                    _move=false;
                    /* wd.fadeTo("fast", 1); *///松开鼠标后停止移动并恢复成不透明
                  });
                });

            });

            //$(".showMax").mouseover(function(){

                var scrollTop = $(window).scrollTop();
                var initTop=scrollTop;

                var screenheight = window.screen.availHeight; //获取屏幕高
                $(window).scroll( function() {
                    scrollTop = $(window).scrollTop();;
                    var w=parseInt($(".showMax").css("width"));
                    var h=parseInt($(".showMax").css("height"));

                        if(scrollTop > initTop&&_enter){
                            $(".showMax").css({"width":w+Number(28)+"px","height":h+Number(50)+"px"});
                            close.css("margin-left",(w-125)<125?125:(w-125)+"px");
                            $(window).scrollTop(initTop);//保持滚动条距离底部0px
                        }
                        if(scrollTop <initTop&&_enter){
                            $(".showMax").css({"width":(w-28)<280?280:(w-28)+"px","height":(h-50)<500?500:(h-50)+"px"});
                            close.css("margin-left",(w-155-28)<125?125:(w-155-28)+"px");
                            $(window).scrollTop(initTop);//保持滚动条距离底部0px
                        }

                    //initTop=scrollTop;
                });
            //})

            function imgdragstart(){return false;}
            for(i in document.images)document.images[i].ondragstart=imgdragstart;
        }

CSS

.showMax{
    padding:5px;
    padding-top:30px;
    border-radius:3px;
    position:fixed;
    z-index:999991;
    top:25%;
    width:280px;
    height:500px;
    left:50%;
    margin-left:-140px;
    background-color:orange;
    cursor:move;
}
.MAX_div{

}
.close{
   color:#ffffff;
   position:fixed;
   z-index:999992;
   width:14px;
   height:14px;
   top:25%;
   left:50%;
   margin-left:125px;
   margin-top:8px;

}
li >img:hover{
    border:1px solid orange;
    cursor:crosshair;
}
#Cover_Div{
    position: fixed;
    z-index: 9999;
    width: 100%;
    height: 100%;
    left: 0;
    top: 0;
    min-width: 700px;
    min-height: 740px;
    opacity: 0.5;
    filter: alpha(opacity = 50);
    background-color: #ffffff;
}
.cut{
    font-weight:bold;
    font-weight:normal\0;
    font-size:18px;
    height:30px;
    max-height:35px;
    color:#FFFFFF;
    font-family:楷书;
}

Html

<img  onclick="showMax(‘url")"  src="url" style="width:288px;height:216px;" />
时间: 2024-12-10 11:45:03

js点击图片查看大图,并可以拖动,且滚动滑轮放大缩小的相关文章

移动端点击图片查看大图

一.需求 点击图片查看大图,再点大图隐藏.多用于移动端,因为移动端屏幕小,可能需要查看大图. 二.代码 <!DOCTYPE html> <html> <meta charset="utf-8"/> <head runat="server"> <title>JQuery点击图片查看大图by starof</title> <style type="text/css">

WKWebview点击图片查看大图

大家都知道,WKWebview是没有查看大图的属性或者方法的,所以只能通过js与之交互来实现这一功能,原理:通过js获取页面的图片,把它存放到数组,给图片添加点击事件,通过index显示大图就行了 其实很简单,给WKWebview写个类别,添加两个方法就行了,然后在WKWebview的两个协议中调用下这两个方法就行了 首先声明个数组来接收图片数组,可是有个问题,那就是类别是声明不了属性的,那怎么办呢?我们可以通过runtime来设置属性,runtime非常有用,我们以后的篇章会说到. stati

android开发:点击缩略图查看大图

android中点击缩略图查看大图的方法一般有两种,一种是想新浪微博list页面那样,弹出一个窗口显示大图(原activity为背景).另一种就是直接打开一个新的activity显示大图. 1.第一种方法我们可以使用自定义的AlertDialog来实现,代码如下: ImageView image=(ImageView)findViewById(R.id.small_image); image.setOnClickListener(new OnClickListener() { // 点击放大 p

ionic中点击图片看大图的实现

在页面上显示了几张图片后,因为是手机端,图片会有点小的感觉,就想着怎么样才能让用户点击小图片看到大图呢,项目中ionic结合angularjs实现了这个功能 1.首先是三张小图上应添加一个函数,当点击图片时触发大图,代码如下: HTML: <div class="row padding"> <div class="col" style="width: 100px;height: 100px;padding:3px;-webkit-box-

每天一个JavaScript实例-点击图片显示大图添加鼠标操作

<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>每天一个JavaScript实例-点击图片显示大图添加鼠标操作</title> <style> img{padding:5px;width:100px;height:aut

每天一个JavaScript实例-点击图片显示大图

<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>每天一个JavaScript实例-点击图片显示大图</title> <style> img{padding:5px;width:100px;height:auto;} #o

iOS开发 之 WebView点击图片看大图效果

在webViewDelegate里面添加如下代码: - (void)webViewDidFinishLoad:(UIWebView *)aWebView {     //调整字号     NSString *str = @"document.getElementsByTagName('body')[0].style.webkitTextSizeAdjust= '95%'";     [webView stringByEvaluatingJavaScriptFromString:str]

js点击图片删除子标签li

上图的效果图请看下面 点击图片部分会删除子标签li部分

iOS点击cell查看大图,点击大图还原小图-b

一.项目需求 用collectionView展示很多照片,点击某个照片,用全屏scrollView无限循环的方式查看图片.点击放大的图片,图片缩小到原先的尺寸. 如图gif1.gif所示,点击中间的图片,放大图片,滑动图片.再点击大图,图片回到相应的位置. gif1.gif 如图gif2.gif所示.当前显示的图片不在屏幕中,点击大图后,若图片在屏幕顶部,则回到顶部:若在底部,则回到底部. gif2.gif 二.常见场景 微博.微信的相册:九宫格展示照片,点击某个图片,图片添加到scrollVi