2013-05-08 100 views
0

我正在制作图像滑块。当用户点击图像上:在调用另一个功能之前执行一些功能

  1. 图片幻灯片和进来前
  2. 在被翻转的下一个单击图像和放大
  3. 在下单击图像返回到其原始尺寸和位置

在选择其他图像时,会发生相同的步骤。我想要做的是:假设我选择了一个图像,图像翻转和放大。然后我直接点击另一张图片,所以我想写的功能是在放大新图片之前,第一张图片应该回到原来的大小和位置。

如何做到这一点?

var status=1; 
function flipIt(obj){ 
//$(obj).wrap("<div class='centerImage'></div>") 



console.log("value before Function status "+status); 

if(status==1) 
{ 
alert("i am From JS IF part"); 
    $(obj).animate({"left": "-=30px","opacity": "0.65"},"slow"); 
    $(obj).animate({"height":"400px","width":"350px"},30); 


    // initial  w295 h354 
$(obj).css("-webkit-transform-style","preserve-3d"); 
$(obj).css("-webkit-transition","all 1.0s linear"); 
$(obj).css("transform-style","preserve-3d"); 
$(obj).css("transition","all 1.0s linear"); 

$(obj).css("-webkit-transform","rotateY(180deg)"); 
$(obj).css("transform","rotateY(180deg)"); 
//$(obj).css("box-shadow","-5px 5px 5px #aaa"); 

status=0; 
console.log("after if value set status "+status); 
} 
else 
{ 

//alert("i am From JS Else part"); 
    $(obj).animate({"left": "+=30px","opacity": "0.99"},"slow"); 
    $(obj).animate({"height":"354px","width":"295px"},30); 

$(obj).css("-webkit-transform-style","preserve-3d"); 
$(obj).css("-webkit-transition","all 1.0s linear"); 
$(obj).css("transform-style","preserve-3d"); 
$(obj).css("transition","all 1.0s linear"); 


$(obj).css("-webkit-transform","rotateY(0deg)"); 
$(obj).css("transform","rotateY(0deg)"); 
//alert("apply css"); 
    status=1; 
    Removecss(); 

console.log("ater else value set status "+status); 

} 
+0

如果你找到一个或多个答案,这个问题有帮助的,请考虑[upvoting(http://stackoverflow.com/privileges/vote-up)和/或[标记一个答案,因为接受( http://stackoverflow.com/faq#howtoask),以帮助未来的访问者找到他们正在寻找更多qui的信息ckly。 – 2013-05-16 14:03:15

回答

0

如果我理解正确的话,你的情况可以被抽象为一个事物的列表,当用户选择的事情有事吧(图像翻转和放大,在这种情况下)一个。当用户选择列表中的其他东西时,您想重置第一个效果。

达到此目的的一种方法是在选定的事物上设置一个css类,如.flipped-and-enlarged。每当你然后在列表中任意变换对象,你首先要做的任何对象的反向操作有这个类:

function flipAndEnlarge(obj) { 
    $('.flipped-and-enlarge').reverseFlipAndEnlarge(); 

    // do the rest of your stuff 
} 

这样一来,如果你这样做是正确,永远不会有一个以上的翻转和放大随时图像。


注意,使用.reverseFlipAndEnlarge()如代码示例以上需要编写它作为一个jQuery插件。这样做是really easy和我强烈建议的东西,但如果你真的不想你可以做一些像reverseFlipAndEnlarge($('.flipped-and-enlarged'))而不是。

0

尝试声明一个变量,将举行的姓名,班级,或查看当前的ID /放大图像,然后调用之前的第二图像是点击这个样子。

var previousImage = $(this).attr('class'); 

,并在如果尝试将另一如果要检查是否持有原先的形象ATTR变量为空这样

if(yourFirstStatement){ 
    if(previousImage != ''){ 
     //doTheResetOfImageSize(); 
    } 
    //doYourImageChangeSizeAndOtherAnimationThing.. 
} 

希望这有助于你.. :) 欢呼声.. ..

相关问题