我正在做一个心理学研究项目,所以我真的是JavaScript的初学者。不过,我必须完成这项工作,这是非常具体的。
我想在单击时放大页面的一个元素(书的封面),同时在其旁边打开一些额外的内容(一些文本),并且我希望能够离开(关闭文本并缩小) )。
到目前为止,我设法通过zoomooz.js轻松实现了缩放部分,而其余部分则通过jQuery获得了。我的书的封面和文本页(每个div)在一个较大的div(“容器”)中彼此叠置。单击容器后,封面和文字会变得生动:一个向左移动,另一个向右移动。从容器中单击并使用stopPropagation时,它们会回到中间,按计划将文字隐藏在封面后面。
现在我的问题是,当我在给div设置动画效果时尝试使用zoomooz时,它们会发生冲突。放大的方式很好用:同时进行缩放和动画处理。但是,要缩小,我无法让他们一起工作。 Zoomooz接任。我尝试手动编码zoomooz,但是我不知道自己在做什么-我只是觉得它与某个地方的“stopPropagation”有关。
这是我的模型/测试页面,其中包含所有内容,应该使事情更清晰。如果有人可以帮我,我会很高兴。非常感谢。
<!DOCTYPE html>
<html>
<head>
<style>
div#main {background:yellow;z-index:1;}
div#container {position:relative;
width:232px;height:152px;border:2px dotted black;
background:#eee;margin:0 auto;z-index:10;}
div.cover {z-index:30;position:absolute;left:58px;
background:blue;width:116px;height:152px}
div.text {z-index:20;position:absolute;left:58px;
background:green;width:116px;height:152px}
p {font-size:0.3em;}
</style>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<!-- ZOOMOOZ-->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js" type="text/javascript"></script>
<script src="jquery.zoomooz.min.js"></script>
<script type="text/javascript" src="src/js/jquery.zoomooz-helpers.js"></script>
<script type="text/javascript" src="src/js/jquery.zoomooz-anim.js"></script>
<script type="text/javascript" src="src/js/jquery.zoomooz-core.js"></script>
<script type="text/javascript" src="src/js/jquery.zoomooz-zoomTarget.js"></script>
<script type="text/javascript" src="src/js/jquery.zoomooz-zoomContainer.js"></script>
<script type="text/javascript" src="src/js/purecssmatrix.js"></script>
<script type="text/javascript" src="src/js/sylvester.src.stripped.js"></script>
</head>
<body>
<div id="main">
<div id="container"> <!--ADD A class="zoomTarget" TO HAVE THE ZOOMING WORKING FINE BUT ONLY ONE WAY -->
<div class="text">
<p>aefpize gfo hzefoihze fozeoifhzeaefpize gfo hzefoihze fozeoifhzeaefpize gfo hzefoihze fozeoifhzeaefpize gfo hzefoihze fozeoifhzeaefpize gfo hzefoihze fozeoifhzeaefpize gfo hzefoihze fozeoifhze</p>
<p>aefpize gfo hzefoihze fozeoifhzeaefpize gfo hzefoihze fozeoifhzeaefpize gfo hzefoihze fozeoifhzeaefpize gfo hzefoihze fozeoifhzeaefpize gfo hzefoihze fozeoifhzeaefpize gfo hzefoihze fozeoifhze</p>
<p>aefpize gfo hzefoihze fozeoifhzeaefpize gfo hzefoihze fozeoifhzeaefpize gfo hzefoihze fozeoifhzeaefpize gfo hzefoihze fozeoifhzeaefpize gfo hzefoihze fozeoifhzeaefpize gfo hzefoihze fozeoifhze</p>
</div>
<div class="cover">
</div>
</div>
</div>
</div>
<!-- script COVER + CONTENTS-->
<script>
$(document).ready(function() {
$("#container").click(function(e) {
$(".cover").animate({left: '0px'});
$(".text").animate({left: '116px'});
e.stopPropagation();
});
$(document).click(function() {
$(".cover").animate({left: '58px'});
$(".text").animate({left: '58px'});
});
});
</script>
</body>
</html>
最佳答案
我知道了!
实际上很简单。要缩小,我必须命令放大到主体。单独查看“缩小”编码:
<script>
$(document).click(function() {
$('body').zoomTo({targetsize:0.75, duration:600});
});
</script>
作为更复杂的用法的示例,整个函数集在一起:
<script>
$(document).ready(function() {
$(".cover").click(function(e) {
$(this).animate({left: '0px'});
$(this).siblings(".text").animate({left: '116px'});
$(this).parent().siblings().fadeOut();
$(this).parent().zoomTo({targetsize:0.75, duration:600});
e.stopPropagation();
});
$(document).click(function() {
$(".cover").animate({left: '58px'});
$(".text").animate({left: '58px'});
$(".container").fadeIn();
$('body').zoomTo({targetsize:0.75, duration:600});
});
});
</script>