2016-07-07 13 views
2

jqueryとsassを始めたばかりなので、ちょっと混乱します。このようなjqueryのコードでjqueryアニメーションでscss mixinを使用する方法はありますか?

@mixin borderradius { 
 
    border-top-left-radius  : 100; 
 
    border-top-right-radius : 100; 
 
    border-bottom-right-radius : 100; 
 
    border-bottom-left-radius : 100; 
 
}

:これで代わりの方法で

$(document).ready(function() { 
 
    $('#divic,#divonja').mouseenter(function() { 
 
     $(this).animate({ 
 
      borderTopLeftRadius: 100, 
 
      borderTopRightRadius: 100, 
 
      borderBottomLeftRadius: 100, 
 
      borderBottomRightRadius: 100 
 
     }, 200); 
 
    }); 
 
    $('#divic,#divonja').mouseleave(function() { 
 
     $(this).animate({ 
 
      borderTopLeftRadius: 0, 
 
      borderTopRightRadius: 0, 
 
      borderBottomLeftRadius: 0, 
 
      borderBottomRightRadius: 0 
 
     }, 200); 
 
    }); 
 
    $('#divic,#divonja').click(function() { 
 
     $(this).toggle(1000); 
 
    }); 
 
});

私の質問は、私はこのようなミックスインを使用することができていますこれらのボーダー半径をすべて4回書くと、私は何かを書くことができますe @ borderradiusなどがありますか?このような 何か:

$(document).ready(function() { 
 
    $('#divic,#divonja').mouseenter(function() { 
 
     $(this).animate({ 
 
      @include borderradius 
 
     }, 200); 
 
    }); 
 
    $('#divic,#divonja').mouseleave(function() { 
 
     $(this).animate({ 
 
      @include borderradius 
 
     }, 200); 
 
    }); 
 
    $('#divic,#divonja').click(function() { 
 
     $(this).toggle(1000); 
 
    }); 
 
});

+0

4つの値がすべて同じ場合は、 '.animate({borderRadius:0})'を使用してください。 – hungerstar

+0

できます!それは変数と呼ばれています!ちょうどアニメーション設定オブジェクトを参照し、通常はオブジェクトを書いていた場所でそれらをplop ... – evolutionxbox

+0

私はborderRadiusを使用してみました:0しかし、それは非常に上手く動くmouseleaveでそれは非常に速く、私は言った初心者だけで、このように:D! ありがとう:)! –

答えて

0

朗報!ちょうどあなたが望むobjectを返すfunctionを使用してください。

function borderRadius(radius) { 
 
    return { 
 
    borderTopLeftRadius: radius, 
 
    borderTopRightRadius: radius, 
 
    borderBottomLeftRadius: radius, 
 
    borderBottomRightRadius: radius 
 
    }; 
 
} 
 

 
$(document).ready(function() { 
 
    $('#divic,#divonja').mouseenter(function() { 
 
     $(this).animate(borderRadius(100), 200); 
 
    }); 
 
    $('#divic,#divonja').mouseleave(function() { 
 
     $(this).animate(borderRadius(0), 200); 
 
    }); 
 
    $('#divic,#divonja').click(function() { 
 
     $(this).toggle(1000); 
 
    }); 
 
});
#divonja { background: #e1f0aa; width: 200px; height: 200px; border-radius: 20px; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div id="divonja"></div>

MMMMM、今それはすぐそこにいくつかのJSの良さです。 =)

+0

ありがとうございました:D! 私はちょうどいくつかのjqueryと嫌なことをし始めたので、それは私のためにすべて新しいです:)! –

+0

問題ありません。あなたの質問が答えられたと感じるなら、upvoteして、この答えを受け入れたものとしてマークしてください。それ以外の場合は、コメントを残してください。 – evolutionxbox

+0

私は受け入れられたとマークしました。残念ながら、私は新しいので15アップを持っていないので、アップアップすることはできません。 –

関連する問題