기본적으로 FancyBox의 약간 비표준적인 구현이 있습니다. 기본적으로 Lightbox에 표시 할 수 있도록 이미지의 큰 버전에 대한 링크를 포함해야합니다. 그러나 구현시 이미지 링크 URL은 이미지 파일에 직접 연결되는 것이 아니라 스크립트를 가리 킵니다. 그래서, 대신 예 :라이트 박스 이미지/링크 URL
<a href="mysite/images/myimage.jpg" rel="gallery">
내가 가진 :
<a href="mysite/photos/view/abc123" rel="gallery">
위의 URL 포인트를 함수에 :
public function actionPhotos($view)
{
$photo=Photo::model()->find('name=:name', array(':name'=>$view));
if(!empty($photo))
{
$this->renderPartial('_photo', array('photo'=>$photo, true));
}
}
은 "$ this-> renderPartial()"비트를 출력 할 표준 HTML 태그가 포함 된 레이아웃 파일을 호출하기 만하면됩니다.
사용자가 미리보기 이미지를 클릭하면 위의 함수가 호출되고 라이트 박스에 큰 이미지가 표시됩니다.
사용자가 미리보기 이미지를 마우스 오른쪽 버튼으로 클릭하고 "새 탭/창에서 열기"를 선택하면 이미지가 일반 이미지 즉 브라우저에 표시됩니다. 이 레이아웃을 변경하여 레이아웃 내에 이미지를 표시하려고합니다. 나는 다음과 IF 문에 넣어 포함 할 수 있습니다 위의 코드에서
:.
$this->render('photos', array('photo'=>$photo));
이있는 이미지를 표시 할 수있는 레이아웃을 포함하는 레이아웃 파일 "사진을"호출을
여기에 특정 제한이 있습니다. 이미지 URL은 동일하게 유지되어야합니다. 즉, URL에 추가 GET 변수가 없어야합니다. 그러나 백그라운드에서 GET 변수를 전달할 수 있다면 OK입니다.
이 기능을 위해 다른 파일을 호출 할 수 있도록 위 기능을 변경해야 할 가능성이 높습니다.
편집 : 사진 탭으로
http://www.starnow.co.uk/KimberleyMarren
이동을하고, 미리보기 이미지에 마우스를 가져가 - URL을 참고 : 다음 체크 아웃, 내가 할 노력하고 있어요 정확히 보여주기 위해. 미리보기 이미지를 클릭하면 라이트 박스에 열립니다. 그런 다음 동일한 축소판을 마우스 오른쪽 단추로 클릭하고 "새 탭/새 창에서 열기"를 선택하십시오. 이미지가 이제 레이아웃에 표시됩니다. Lightbox와 자체 페이지에 이미지를 표시 할 때 동일한 URL이 사용됩니다.
StarNow가 수행 한 방식은 일부 미친 긴 JavaScript 기능을 사용하고 있습니다. 복제에는 너무 열광하지 않습니다.
건배 동료, 그게 정확히 내가 한 것입니다. 완벽하게 작동합니다! – GSTAR
당신을 환영합니다! – steffenbew