Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 04.01.2018, 16:05
Новичок на форуме
Отправить личное сообщение для Otvertka12335 Посмотреть профиль Найти все сообщения от Otvertka12335
 
Регистрация: 17.10.2017
Сообщений: 9

Увелечение картинки по клику
У меня есть картинки и скрипт для их увелечения. Он работает, НО. Если нажать на картинку внизу страницы, она увеличится вверху, что не есть удобным, как это изменить?

javascript:
$(document).ready(function() { // Ждём загрузки страницы
	
				$(".image").click(function(){	// Событие клика на маленькое изображение
					var img = $(this);	// Получаем изображение, на которое кликнули
					var src = img.attr('src'); // Достаем из этого изображения путь до картинки
					$("body").append("<div class='popup'>"+ //Добавляем в тело документа разметку всплывающего окна
									 "<div class='popup_bg'></div>"+ // Блок, который будет служить фоном затемненным
									 "<img src='"+src+"' class='popup_img' />"+ // Само увеличенное фото
									 "</div>"); 
					$(".popup").fadeIn(800); // Медленно выводим изображение
					$(".popup_bg").click(function(){	// Событие клика на затемненный фон	   
						$(".popup").fadeOut(800);	// Медленно убираем всплывающее окно
						setTimeout(function() {	// Выставляем таймер
						  $(".popup").remove(); // Удаляем разметку всплывающего окна
						}, 800);
					});
				});
				
			});



CSS:
body {
	margin:0;
}

.image {
	margin:30px; 
	float:left;
	cursor:pointer;
	max-height:100px;
}

.popup {
	position: absolute;
	height:100%;
	width:100%;
	top:0;
	left:0;
	display:none;
	text-align:center;
}

.popup_bg {
	background:rgba(0,0,0,0.4);
	position:absolute;
	z-index:1;
	height:100%;
	width:100%;
}


.popup_img {
	position: relative;
	margin:0 auto;
	z-index:2;
	text-align: center;
	max-height:94%;
	max-width:94%;
	margin:10% 0% 0% 0%;
}
Ответить с цитированием
  #2 (permalink)  
Старый 04.01.2018, 18:59
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,070

preview click img big center
Otvertka12335,
вариант ... картинка в центре окна по клику на preview ...
<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
* {
    box-sizing: border-box;
}

.fixed-overlay {
    position: fixed;
    overflow: auto;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    background-color: transparent;
    background-repeat: no-repeat;
    background-position: center;
    background-size: auto 90%;
    transform: scale(0);
    transition: 1.2s ;


}
.fixed-overlay.open{

  transform: scale(1);
  transition-duration: .8s;
  transition-timing-function:cubic-bezier(.18,1.59,.78,1.6);
  animation: bc 1.2s ease-in-out forwards .8s;
}

.image {
  margin:30px;
  float:left;
  cursor:pointer;
  max-height:100px;
}

p{
  height: 2000px;
}

@keyframes bc{
  100%{
    background-color: rgba(0, 0, 0, .8)
  }

}
@-webkit-keyframes bc{
  100%{
    background-color: rgba(0, 0, 0, .8)
  }

}
</style>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>

  <script>
$(function() {
  var a = $(".fixed-overlay");
  $(".image").on("click", function(e) {
    var o = e.clientX + "px "+e.clientY + "px";
    a.css({"background-image":"url(" + this.src + ")", "transform-origin" : o}).addClass("open");
  });
  a.on("click", function(b) {
    a.removeClass("open");
  });
});
  </script>
</head>

<body>
<img src="http://superwall.us/wallpaper/y5e6_yt_iuyy_yut_abstract_fantasy-SKOI.jpg" alt="" class="image">
<img src="http://mtdata.ru/u18/photoD2A8/20290971193-0/original.jpeg" alt="" class="image">
<img src="https://img3.goodfon.ru/original/1920x1408/b/61/art-devushka-vzglyad-zrachok.jpg" alt="" class="image">
<p></p>
<img src="http://www.снежинки-добавил-dmytrij82-www.setwalls.ru/pic/201304/2560x1440/setwalls.ru-24633.jpg" alt="" class="image">
<img src="https://grandgames.net/puzzle/source/devushka_i_drakoni.jpg" alt="" class="image">
<img src="https://wallpapers.wallhaven.cc/wallpapers/full/wallhaven-281479.jpg" alt="" class="image">
<div class="fixed-overlay"></div>
</body>
</html>
Ответить с цитированием
  #3 (permalink)  
Старый 05.01.2018, 11:34
Новичок на форуме
Отправить личное сообщение для Otvertka12335 Посмотреть профиль Найти все сообщения от Otvertka12335
 
Регистрация: 17.10.2017
Сообщений: 9

Сообщение от рони
вариант ... картинка в центре окна по клику на preview ...
Спасибо. Все работает. НО есть проблемка, фото после закрытия сохраняються внизу страницы Прошу прощения, это мой старый скрип вызывал конфликт

Последний раз редактировалось Otvertka12335, 05.01.2018 в 11:46.
Ответить с цитированием
  #4 (permalink)  
Старый 05.01.2018, 19:03
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,070

Увелечение картинки по клику + плавающая кнопка закрыть
вариант на основе 1 сообщения в теме ... кнопку закрыть смотреть на последнем фото ... строки 65 и 181 для проверки

<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">body{
    margin:0;
  }

  .image{
    margin:30px;
    float:left;
    cursor:pointer;
    max-height:100px;
  }

  .popup{
    position:absolute;
    height:auto;
    width:100%;
    top:0;
    left:0;
    display:none;
    text-align:center;
    min-height:100%;
  }

  .popup_bg{
    background:rgba(0,0,0,0.4);
    position:absolute;
    z-index:1;
    height:100%;
    width:100%;
  }

  .popup_bg:after{
    content:"X";
    color:#FFF;
    font-size:24px;
    position:fixed;
    right:-55px;
    top:40px;
    z-index:100;
  }

  .popup_img{
    position:relative;
    margin:3% auto;
    z-index:2;
    text-align:center;
    max-height:94%;
    max-width:94%;
    border:solid rgba(255,255,255,1) .5em;
  }

  body.hide *{
    display:none;
  }

  body.hide .popup *{
    display:block;
  }

  p{
    height:2000px;
  }

  .open-close-button{
    margin-top:3%;
    top:1%;
    z-index:100;
    left:93%;
    display:inline-block;
    width:.5em;
    height:.5em;
    font-size:3em;
    border-radius:50%;
    position:absolute;
    transition:top 1.2s ease-in-out;
  }

  .open-close-button:before,.open-close-button:after{
    transform:rotate(135deg);
    content:"";
    display:block;
    position:absolute;
    background:#FFF;
    width:80%;
    height:12%;
    left:12%;
    top:44%;
  }

  .open-close-button:after{
    transform:rotate(45deg);
  }

  .open-close-button.shadow{
    animation:bc 1.2s ease-in-out forwards;
  }

  .open-close-button:hover{
    cursor:pointer;
    animation:bc 1.2s ease-in-out infinite;
  }

  @keyframes bc{
    0%{
      background-color:rgba(224,255,255,.3);
      box-shadow:0px 0px 58px 0px rgba(224,255,255,1);
      transform:scale(1.2);
    }

    25%{
      transform:scale(1);
      box-shadow:0px 0px 0px 0px rgba(224,255,255,1);
    }

    50%{
      box-shadow:0px 0px 58px 0px rgba(224,255,255,1);
      transform:scale(1.2);
    }

    75%{
      transform:scale(1);
      box-shadow:0px 0px 0px 0px rgba(224,255,255,1);
    }

    100%{
      background-color:transparent;
      box-shadow:none;
    }
  }
  </style>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>

  <script>
$(function() {
  var d, a = $(window), e = $("body"), f;
  $(".image").click(function() {
    function b() {
      window.clearTimeout(f);
      f = window.setTimeout(function() {
        var b = g.getBoundingClientRect();
      c.style.top = b.top < 0 ? a.scrollTop()+"px" : "";
      c.style.marginTop = b.top < 0 ? '5px' : '3%';
        c.style.left = b.right - 37 + "px";
        c.classList.add("shadow");
      }, 80);
    }
    d = a.scrollTop();
    var h = this.src;
    e.addClass("hide").append("<div class='popup'><div class='open-close-button'></div><div class='popup_bg'></div><img src='" + h + "' class='popup_img' /></div>");
    a.scrollTop(0);
    var g = document.querySelector(".popup_img"), c = document.querySelector(".open-close-button");
    a.resize(b).trigger("resize");
    $(".open-close-button").on("transitionend", function(a) {
      $(this).removeClass("shadow");
    });
    $(".popup").fadeIn(800);
    $(document).on("scroll", b);
    $(".popup_bg, .open-close-button").click(function() {
      $(".popup").fadeOut(800, function() {
        e.removeClass("hide");
        a.scrollTop(d);
        $(document).off("scroll", b);
        a.off("resize", b);
        $(".popup").remove();
      });
    });
  });
});
  </script>
</head>

<body>
<img src="https://img.fonwall.ru/o/0x/devushka-i-drakon-fantastika-art.jpg" alt="" class="image">
<img src="http://mtdata.ru/u18/photoD2A8/20290971193-0/original.jpeg" alt="" class="image">
<img src="https://img3.goodfon.ru/original/1920x1408/b/61/art-devushka-vzglyad-zrachok.jpg" alt="" class="image">
<p></p>
<img src="http://www.снежинки-добавил-dmytrij82-www.setwalls.ru/pic/201304/2560x1440/setwalls.ru-24633.jpg" alt="" class="image">
<img src="https://grandgames.net/puzzle/source/devushka_i_drakoni.jpg" alt="" class="image">
<img src="https://wallpapers.wallhaven.cc/wallpapers/full/wallhaven-281479.jpg" alt="" class="image">

</body>
</html>

Последний раз редактировалось рони, 06.01.2018 в 04:31.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
добавление картинки или видео по клику в div Dmitriy154 Общие вопросы Javascript 12 16.01.2017 14:50
Что-то не работает: смена картинки по клику. pro_moscow Элементы интерфейса 4 05.08.2016 05:01
как сделать выпадающие картинки по клику с перезаписью select thefair Общие вопросы Javascript 5 15.12.2015 22:54
Загрузка картинки по клику Aleksabdra Events/DOM/Window 2 18.11.2014 19:10
получить адрес картинки по клику saxap Общие вопросы Javascript 3 13.11.2012 12:32