鍍金池/ 問答/HTML/ 移動(dòng)端點(diǎn)擊圖片實(shí)現(xiàn)圖片放大

移動(dòng)端點(diǎn)擊圖片實(shí)現(xiàn)圖片放大

clipboard.png
實(shí)現(xiàn)功能,點(diǎn)擊每張圖片,可以實(shí)現(xiàn)圖片放大,再點(diǎn)擊放大圖片。圖片回到原位置(縮?。﹫D片不變形。

回答
編輯回答
未命名

transfrom:scale{2,2}

2017年3月10日 01:06
編輯回答
歆久

圖片放大功能如何做?jquery實(shí)現(xiàn),看看這個(gè)吧
花了很長(zhǎng)時(shí)間擼了個(gè)網(wǎng)站,觀點(diǎn),其中需要一個(gè)圖片放大功能,網(wǎng)上找了半天發(fā)現(xiàn)都沒有中意的,最后無奈之下自己寫了一個(gè),演示地址,演示圖片:
950220-20171217170716249-2037254139.png
自我感覺效果還不錯(cuò),現(xiàn)在分享開來給大家看看,哪里不好還請(qǐng)多多指教,謝謝大家。

css 部分:

.zoomify-dialog-pic {
     position: fixed;
     top: 0;
     bottom: 0;
     left: 0;
     right: 0;
     background: rgba(0,0,0,0.35);
     z-index: 99999;
     display: none;
}
 
.zoomify-dialog-pic .dialog-body {
      
      position:absolute;
      width: 100%;
      max-width: 250px;
      max-height: 300px;
      margin-top:-150px;/*div 高度的一半*/
      margin-left:-125px;/*div 寬度的一半*/
      top:50%;
      left:50%;
      padding:10px;
      border-radius:5px;
      background: white;
}
      
.zoomify-dialog-pic .dialog-body img {
     width: 100%;
}
 
.magnifier {
  cursor: -moz-zoom-out;
  cursor: -webkit-zoom-out;
  cursor: zoom-out;
  cursor:url('icon/magnifier.ico'),auto;
}
 
.un-magnifier {
  cursor: -moz-zoom-in;
  cursor: -webkit-zoom-in;
  cursor: zoom-in;
  cursor:url('icon/unmagnifier.ico'),auto;
}

說明下,上面 css 的 cursor:url 請(qǐng)放到自己的圖片服務(wù)器上,萬惡的 IE 不支持本地

var ROOT = $("input[name='globalPath']").val();
 
function zoomOut(orginImg,times){
     
    var obj=$(".zoomify-dialog-pic .dialog-body");
    var img=$(".zoomify-dialog-pic .dialog-body img");
 
    var imgW=$(orginImg).width();
    var imgH=$(orginImg).height();
 
    var newH=imgH*times;
    var newW=imgW*times;
     
    var bodyH=$("body").height();
    var bodyW=$("body").width();
     
    if(newW>bodyW){
        newW=bodyW-40;
        obj.css("padding","5px");
    }
     
    if(newH>bodyH){
        newH=bodyH-40;
        obj.css("padding","5px");
    }
     
    //圖片新高度、寬度
    img.css("width",newW+"px");
    img.css("height",newH+"px");
     
    //容器新高度、寬度,因?yàn)閳D片放大了,所以容器也必須放大
    //不要用 padding 屬性,ie 下不支持
    var padding=parseInt(obj.css("padding-top"));
     
    cWith=newW+padding*2;
    cHeight=newH+padding*2;
     
    obj.css("max-width",cWith+"px");
    obj.css("max-height",cHeight+"px");
     
    obj.css("margin-left",(cWith/2)*-1+"px");
    obj.css("margin-top",(cHeight/2)*-1+"px");
}
 
function insertPic(url){
    html='<div class="zoomify-dialog-pic">'+
        '<div class="dialog-body">'+
            '<img src="'+url+'" class="un-magnifier">'+
        '</div>'+
    '</div>';
    return html;
}
 
$(".page-content-l").on('click','p img',function(){
 
    var url=$(this).attr('src');
    html=insertPic(url);
    $("body").append(html);
     
    zoomOut(this,1.2);
    $(".zoomify-dialog-pic").show();
});
 
$("html").on('click','.zoomify-dialog-pic',function(){
    $(this).remove();
});
 
$(".page-content-l").on("mouseover mouseout","p img",function(event){
    if(event.type == "mouseover"){
        $(this).addClass("magnifier");
    }else if(event.type == "mouseout"){
        $(this).removeClass("magnifier");
    }
});

代碼是毫無保留公開,絕對(duì)可以使用的,喜歡給我點(diǎn)個(gè)贊

2018年6月29日 04:16
編輯回答
失心人

有很多庫可以做這個(gè)。你試試尤大寫的這個(gè)
https://github.com/yyx990803/...

Demo頁面: http://yyx990803.github.io/zo...

2017年4月1日 05:09