【问题标题】:jQuery + Transit rotationjQuery + Transit 轮换
【发布时间】:2013-09-05 13:34:53
【问题描述】:

我在我的页面中使用 jquery-2.0.2.min.jsjquery.transit.min.js。我有一个 id="expand" 的 div,当您单击它时它会在旋转中切换。我的问题是在第二次切换之后,它不会旋转。它只是在第一次点击时旋转。

flag_expand 的初始值为 0。

$('#expand').click(function() {

        if (flag_expand == 0) {
            $('footer').transition({
                height: 140
            }, 1000, function() {} );

            $('#expand').transition({
                rotate: '180deg'
            }, 1000, function() {} );

            flag_expand = 1;
        }

        else if (flag_expand == 1) {
            $('footer').transition({
                height: 60
            }, 1000, function() {} );

            $('#expand').transition({
                rotate: '180deg'
            }, 1000, function() {} );

            flag_expand = 0;
        }

});

【问题讨论】:

    标签: jquery css-transitions jquery-transit


    【解决方案1】:

    transition rotate 函数将旋转设置为 180 度,但它不会将其旋转 180 度。如果你想将它旋转回来尝试在旋转后块中使用 0 度,或者如果你想让它一直旋转(并继续始终顺时针旋转),那么你必须获得当前旋转并每次添加 180 度.

    jsfiddle

    $(function () {
        var flag_expand = 0;
        $('#expand').on('click', function () {
            if (flag_expand == 0) {
                $('#expand').transition({
                    rotate: '180deg'
                }, 1000, function () {
                    flag_expand = 1;
                });
            } else {
                $('#expand').transition({
                    rotate: '0deg'
                }, 1000, function () {
                    flag_expand = 0;
                });
            }
        });
    });
    

    【讨论】:

      【解决方案2】:

      在你的代码中试试这个:

      $('#expand').click(function(e) {
      
          e.preventDefault();
      
          if (flag_expand == 0) {
              $('footer').transition({
                  height: 140
              }, 1000, function() {} );
      
              $('#expand').transition({
                  rotate: '180deg'
              }, 1000, function() {} );
      
              setTimeout(function() {
      
                  flag_expand = 1;
      
              }, 1);            
          }
      
          else if (flag_expand == 1) {
      
              $('footer').transition({
                  height: 60
              }, 1000, function() {} );
      
              $('#expand').transition({
                  rotate: '0deg'        // Updated
              }, 1000, function() {} );
      
              setTimeout(function() {
      
                  flag_expand = 0;
      
              }, 1);
          }
      });
      

      【讨论】:

      • 在您的小提琴中写下:$('document').. 将其更改为 $(document) 不带引号...页脚在哪里?
      • 是#expand 的容器
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-06-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-10
      相关资源
      最近更新 更多