Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在单击时旋转图像,然后在再次单击后将其旋转回来?使用HTML、CSS和jQuery_Jquery_Html_Css_Image_Rotation - Fatal编程技术网

如何在单击时旋转图像,然后在再次单击后将其旋转回来?使用HTML、CSS和jQuery

如何在单击时旋转图像,然后在再次单击后将其旋转回来?使用HTML、CSS和jQuery,jquery,html,css,image,rotation,Jquery,Html,Css,Image,Rotation,我试图使一个网站,有一个图像(播放按钮)。按下该按钮时,会出现iframe,图像应缓慢旋转90度。当再次单击图像时,iframe应该消失,图像应该旋转回原来的90度,但到目前为止,我无法让它工作 我猜我的jQuery有问题,但还没有找到问题所在 下面是一个例子: HTML: jQuery: $( document ).ready(function() { var NumberOfClicks = 0; $('#TrailerBox img.PlayButton').cli

我试图使一个网站,有一个图像(播放按钮)。按下该按钮时,会出现iframe,图像应缓慢旋转90度。当再次单击图像时,iframe应该消失,图像应该旋转回原来的90度,但到目前为止,我无法让它工作

我猜我的jQuery有问题,但还没有找到问题所在

下面是一个例子:

HTML:

jQuery:

$( document ).ready(function() {
    var NumberOfClicks = 0;
        $('#TrailerBox img.PlayButton').click(function(e) {
            e.preventDefault();
            $('#video').toggleClass('hidden');

            NumberOfClicks++;
            if (NumberOfClicks = 1) {
                        $(this).css({
                            '-webkit-transform': 'rotate(' + 90 + 'deg)',
                            '-moz-transform': 'rotate(' + 90 + 'deg)',
                            '-ms-transform': 'rotate(' + 90 + 'deg)',
                            'transform': 'rotate(' + 90 + 'deg)'
                        });
                        $(this).rotate(rotation);
                };
            }
            if (NumberOfClicks = 2) {
                        $(this).css({
                            '-webkit-transform': 'rotate(' + -90 + 'deg)',
                            '-moz-transform': 'rotate(' + -90 + 'deg)',
                            '-ms-transform': 'rotate(' + -90 + 'deg)',
                            'transform': 'rotate(' + -90 + 'deg)'
                        });
                        $(this).rotate(rotation);
                };
                NumberOfClicks = 0;                    
            }
   });

使用此代码,如果这是您想要的:

$(document).ready(function(){
    $rotated = false;
    $('#TrailerBox img#PlayButton').click(function(){
        if($rotated == false){
            $(this).css({
                '-webkit-transform': 'rotate(' + 90 + 'deg)',
                '-moz-transform': 'rotate(' + 90 + 'deg)',
                '-ms-transform': 'rotate(' + 90 + 'deg)',
                'transform': 'rotate(' + 90 + 'deg)'
             });
             $rotated = true;
        }else{
            $(this).css({
                '-webkit-transform': 'rotate(' + 0 + 'deg)',
                '-moz-transform': 'rotate(' + 0 + 'deg)',
                '-ms-transform': 'rotate(' + 0 + 'deg)',
                'transform': 'rotate(' + 0 + 'deg)'
             });
             $rotated = false;
        }
    });
});

因此,一个让你的生活少一点压力的好办法是建立一个css类,该类具有这些设置,并在过渡过程中使用Easy。这创造了我认为您需要的动画效果,并且更易于跟踪,因此下面选择器的css将是:

    #PlayButton {
        width: 5em;
        height: 10em;
        cursor: pointer;
        background-color:red;
        -webkit-transform: rotate(0deg);
        -moz-transform: rotate(0deg);
        -ms-transform: rotate(0deg);
        transform: rotate(0deg);
        -webkit-transition: all 0.4s ease-in;
        -moz-transition: all 0.4s ease-in;
        -o-transition: all 0.4s ease-in;
        transition: all 0.4s ease-in;
    }

.rotateOn{-webkit-transform: rotate(90deg)!important;
                     -moz-transform: rotate(90deg)!important;
                     -ms-transform: rotate(90deg)!important;
                     transform: rotate(90deg)!important;
                    -webkit-transition: all 0.4s ease-in;
                    -moz-transition: all 0.4s ease-in;
                    -o-transition: all 0.4s ease-in;
                    transition: all 0.4s ease-in;
       }
jquery可以是:

`$(document).ready(function(){
    $rotated = false;
    $('#TrailerBox img#PlayButton').click(function(){
       $(this).toggleClass('rotateOn');
    });
});`

这没有按照OP的要求设置动画。尝试了代码,也解决了问题,两个代码似乎都有相同的动画效果,非常感谢!刚刚尝试了代码,它的工作!!非常感谢您如果有帮助,请将此标记为正确答案!
    #PlayButton {
        width: 5em;
        height: 10em;
        cursor: pointer;
        background-color:red;
        -webkit-transform: rotate(0deg);
        -moz-transform: rotate(0deg);
        -ms-transform: rotate(0deg);
        transform: rotate(0deg);
        -webkit-transition: all 0.4s ease-in;
        -moz-transition: all 0.4s ease-in;
        -o-transition: all 0.4s ease-in;
        transition: all 0.4s ease-in;
    }

.rotateOn{-webkit-transform: rotate(90deg)!important;
                     -moz-transform: rotate(90deg)!important;
                     -ms-transform: rotate(90deg)!important;
                     transform: rotate(90deg)!important;
                    -webkit-transition: all 0.4s ease-in;
                    -moz-transition: all 0.4s ease-in;
                    -o-transition: all 0.4s ease-in;
                    transition: all 0.4s ease-in;
       }
`$(document).ready(function(){
    $rotated = false;
    $('#TrailerBox img#PlayButton').click(function(){
       $(this).toggleClass('rotateOn');
    });
});`