По сути, есть три части того, что вы хотите сделать.
- Нажатие на изображение покажет изображение относительно высоты браузера
- Вы можете перейти к следующемуизображение, пока вы находитесь в этом режиме
- Повторное нажатие на это изображение перейдет в режим суперразмера, когда положение мыши определяет, на какую часть изображения вы смотрите
Яне собираюсь писать целую скрипку, чтобы продемонстрировать это, потому что это приличный объем работы, но я могу рассказать вам основные идеи.
С # 1, когда вы нажимаете на изображение, вы создаете новый div сz-index
большого числа (например, 9999).Позиция будет fixed
, и вы создадите
$(window).resize(function() {
var windowheight = $(window).height();
$("#imgdiv").css("height", windowheight);
});
, который изменит размер изображения, если пользователь решит изменить размер вашего окна, таким образом, он всегда будет занимать всю высоту вашего браузера.
С # 2 стрелки просто создают новый тег img
.И идея примерно такая:
function loadnew() {
// create the new image
var newimg = "<img id='newimg'></img>"
$("#imgcontainer").append(newimg);
// make sure it has the same classes as the current img
// so that it's in the same position with an higher z-index
// then load the image
$("#newimg").addClass( "class1 class2" );
$("#newimg").css( "z-index", "+=1" );
$("#newimg").css( "opacity", 0 );
$("#newimg").attr("src", "url/to/img");
// animate the thing and then replace the src of the old one with this new one
$("#newimg").animate( {
opacity: 1;
}, 1000, function() {
$(oldimg).attr("src", $("#newimg").attr("src"));
});
}
Теперь с помощью # 3 вы будете изменять размер изображения по ширине.Div fixed
позиционируется.Итак, еще раз, вам нужно
$(window).resize(function() {
var windowwidth= $(window).width();
$("#imgdiv").css("width", windowwidth);
});
, чтобы убедиться, что он всегда занимает весь экран.А для движения мыши вам нужен mousemove
обработчик событий
$("#superimgdiv").mousemove( function(e) {
// need to tell where the mouse is with respect to the window
var height = $(window).height();
var mouseY = e.pageY;
var relativepct = mouseY/height;
// change the position relative to the mouse and the full image height
var imgheight = $("superimg").height();
$("superimgdiv").css("top", -1*relativepct*imgheight);
});
И все.Конечно, я опускаю кучу деталей, но это общая идея.Надеюсь, это поможет вам начать.Удачи.