Heim > Datenbank > MySQL-Tutorial > Hauptteil

JQuery steuert die schrittweise Vergrößerung des Bildes vom Mittelpunkt aus

黄舟
Freigeben: 2017-03-01 14:44:07
Original
1632 Leute haben es durchsucht

Manchmal müssen wir ein Bild erstellen. Wenn wir die Maus auf das Bild legen, hoffen wir, dass das Bild allmählich größer wird, das heißt, die Breite und Höhe des Bildes werden allmählich größer, aber zu diesem Zeitpunkt Sein linker Wert und sein oberer Wert haben sich nicht geändert, siehe. Es scheint nicht vom Mittelpunkt aus zu skalieren. Wie unten gezeigt:


Zoom vom Mittelpunkt aus

Der Implementierungscode lautet wie folgt:


<meta charset="utf-8">
<style type="text/css">
#p1{ width:600px; height:400px; margin:50px auto; position:relative;  text-align: center; padding-left:50px;}
#p1 img{ position:absolute; left:0; top:0; margin: 0 auto;}
</style>
<p id="p1">
	<img src="images/1.jpg" width="100px" height="80px">
</p>
<script type="text/javascript" src="js/jquery-1.7.1.min.js"></script>
<script type="text/javascript">
	$(function(){
		$(&#39;#p1 img&#39;).mouseenter(function(){
			var wValue=1.5 * $(this).width();
			var hValue=1.5 * $(this).height();		
			$(this).animate({width: wValue,
							height: hValue,
							left:("-"+(0.5 * $(this).width())/2),
							top:("-"+(0.5 * $(this).height())/2)}, 1000);
		}).mouseleave(function(){
			$(this).animate({width: "100",
										 height: "80",
										 left:"0px",
										 top:"0px"}, 1000 );
		});
	});
</script>
Nach dem Login kopieren



/********************************Nachtrag vom 26. Juni 2016*************** *** ********************************************** *****/

Nachtrag vom 26. Juni 2016

Heute habe ich festgestellt, dass es tatsächlich ein kleines Problem mit der Animation oben gibt. Das heißt, wenn ich die entsprechenden Elemente mehrmals hinein- und hinausbewege, werden Mouseenter und Mouseleave mehrmals ausgeführt. Natürlich werden einige Leute denken, was das Problem daran ist. Dann schauen Sie sich das Bild unten an



Das heißt, wenn sich meine Maus herausbewegt, werden Mouseenter und Mouseleave immer noch wiederholt ausgeführt. Warum passiert das? Da in der JS-Ereigniswarteschlange mehrere Animationen darauf warten, ausgeführt zu werden, halte ich es für notwendig, die Ereigniswarteschlange später zusammenzufassen.


Änderungsplan

Jquery bietet die Stop-Methode, um alle Animationen zu stoppen, die auf dem angegebenen Element ausgeführt werden, wie unten gezeigt


Der geänderte Effekt ist unten dargestellt


Der endgültige JS-Code lautet wie folgt


<script type="text/javascript">
	$(function(){
		$(&#39;#p1 img&#39;).mouseenter(function(){
			var wValue=1.5 * $(this).width();
			var hValue=1.5 * $(this).height();		
			$(this).stop().animate({width: wValue,
							height: hValue,
							left:("-"+(0.5 * $(this).width())/2),
							top:("-"+(0.5 * $(this).height())/2)}, 1000);
		}).mouseleave(function(){
			$(this).stop().animate({width: "100",
										 height: "80",
										 left:"0px",
										 top:"0px"}, 1000 );
		});
	});
</script>
Nach dem Login kopieren


Hinzugefügt am 28. Februar 2017


Lösung: Wenn Sie schnell ausziehen, einziehen und bleiben, kann das Bild unendlich vergrößert werden

Der endgültige Code lautet wie folgt und das Effektbild finden Sie unter http ://www.php.cn/

$(function(){
	$(&#39;.focus_news&#39;).mouseenter(function(){
		var imgObj=$(this).find(&#39;img&#39;);	
		imgObj.stop().css({width: "100%",height: "100%",left:"0px",top:"0px"});	
		var wValue=1.5 * imgObj.width();
		var hValue=1.5 * imgObj.height();
		imgObj.animate({
			width: wValue,
			height: hValue,
			left:("-"+(0.5 * imgObj.width())/2),
			top:("-"+(0.5 * imgObj.height())/2)}, 500);
		$(this).find(&#39;.com_news_title&#39;).css(&#39;color&#39;,&#39;#F59300&#39;);
	}).mouseleave(function(){
		$(this).find(&#39;.com_news_title&#39;).css(&#39;color&#39;,&#39;#52A2DE&#39;);
		$(this).find(&#39;img&#39;).stop().animate({width: "100%",
									 height: "100%",
									 left:"0px",
									 top:"0px"}, 500 );
	});
});
Nach dem Login kopieren

Das Obige ist der Inhalt von JQuery, der den allmählichen Vergrößerungseffekt des Bildes steuert Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn)!


Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage