2014-07-20 3 views
0

내 웹 사이트에서이 코드를 사용하고 있습니다. 커서를 이미지에 전달할 때 클릭 대신 작동하도록 고민하고 있습니다. 이것은 자바 스크립트입니다. 사용 : 이미지 미리보기를 onclick하고 다음을 넣으십시오.

$(document).ready(function(){ 

    imagePreview(); 

}); 


$("a.preview").hover(function(e){ 

    this.t = this.title; 

    this.title = ""; 

     var c = (this.t != "") ? "<br/>" + this.t : ""; 

    $("body").append("<p id='preview'><img src='"+ this.href +"' alt='Image preview' />"+ c +"</p>"); 

    $("#preview") 

     .css("top",(e.pageY - xOffset) + "px") 

     .css("left",(e.pageX + yOffset) + "px") 

     .fadeIn("slow"); 

}, 


function(){ 

    this.title = this.t; 

    $("#preview").remove(); 

}); 

$("a.preview").click(function(e){ 

    $("#preview") 

     .css("top",(e.pageY - xOffset) + "px") 

     .css("left",(e.pageX + yOffset) + "px"); 

}); 

// Configuration of the x and y offsets 

this.imagePreview = function(){ 

     xOffset = -20; 

     yOffset = 40; 
}; 

내가 갤러리에 미리보기 사진을 삽입하고있어 방법이 있습니다 :

<a href="images/gallery/Dolmen di Avola.JPG" class="preview" title="Dolmen di Avola"><img src="images/gallery/Dolmen di Avola.JPG" alt="photo" /></a> 

는이 문제 좀 도와 주 시겠어요? 또한 미리보기 이미지에 어떻게 prev와 next를 삽입 할 수 있습니까? 미리 감사드립니다.

+0

문제가 정확히 무엇과 데모 링크입니까? 왜 .remove()를 사용합니까? # 미리보기를 장면에서 완전히 제거합니다. – DennyHiu

+0

휠을 재발행하지 않고 이미지 갤러리 솔루션을 사용할 수있는 많은 준비 도구 중 하나를 사용하지 않는 것이 좋습니다. – slaweet

+0

다른 웹 사이트는 꽤 문제가 있습니다. 내 HTML에 넣기 위해 코드 링크를 제공하므로, "엉망"할 수 없습니다. 그래서 나는 내 자신을 그렇게하고 있습니다. 미리보기는 마우스를 클릭 할 때가 아니라 미리보기 이미지를 클릭 할 때만 나타납니다. 공중 선회를 변경하고 onclick을 가짐으로써 내가 얻은 유일한 것은 전혀 리뷰가 아니 었습니다. 캡션을 삭제하기 위해 제거가 추가되었습니다. – user3353167

답변

1

아직도 문제가 무엇인지 이해하지 못합니다. 이

<a href="images/gallery/Dolmen di Avola.JPG" class="preview" title="Dolmen di Avola"> 
    <img src="images/gallery/Dolmen di Avola.JPG" alt="photo" /> 
</a> 

다음 코드와 사진 뷰어를 달성하기 원한다면하고자 다음과 같습니다

여기
$(document).ready(function(){ 
    var $preview = $("<p id='preview'><img src='' alt='Image preview' /><span></span></p>"); 
    $("body").append($preview); 
    $preview.hide(); 
}); 

$("body").click(function(e){ 
    var isImgClicked = $(e.target).is("img") 

    // if there is click event outside IMG then close the #preview box 
    if(!isImgClicked) 
     $("#preview").fadeOut(); 
    }); 

$("a.preview").click(function(e){ 
    // prevent default click behaviour 
    e.preventDefault(); 

    // get variables 
    var title = $(this).attr("title"); 
    var href = $(this).attr('href') 
    var c = (title != "") ? "<br/>" + title : ""; 
    var status = $("#preview").data("visible"); 

    // set its location and do show 
    $("#preview").css("top",(e.pageY) + "px").css("left",(e.pageX) + "px") 
    $("#preview").fadeIn(); 

    // set #preview content 
    $("#preview span").text(title); 
    $("#preview img").attr('src', href); 

}); 

는 증거 JSFIDDLE DEMO

+0

기본적으로 커서가 thumnail에있을 때 이미지 미리보기가 있습니다. 내가 도달하기를 원하는 것은 그 미리보기가 썸네일 – user3353167

+0

을 클릭 할 때만 팝업되므로 귀하의 질문에 맞는 코드를 편집했습니다. 질문에 대한 답변입니까? – DennyHiu

+0

죄송합니다, 그것은 작동하지 않지만 어쨌든 도와 주셔서 감사합니다 – user3353167

관련 문제