<div class="phone">
<a href="#" >
<img src="/assets/phonenew.png" alt="" height="90px" width="90px" />
</a>
</div>
<div class="phone-number">
<a href="#">
<img src="/assets/phonenumber.png" class="phone-full" height="45px" />
</a>
</div>
CSS
.phone {
position: absolute;
top: 200px;
left: 915px;
cursor: pointer;
z-index: 100;
}
.phone-number {
position: absolute;
top: 225px;
left: 908px;
display: none;
cursor: pointer;
font-family: 'Open Sans';
font-size: 28px;
color: rgb(68, 69, 67);
}
これは私が自分の携帯電話のアイコンドットフォン番号をさらすのMouseEnterに残された(phonenew.png)スライドを作るために使用しているjQueryのです次にマウスの左に戻り、phone-numberを隠します。このアニメーションは非常にやわらかいです。私はキューイングのようなステップがないと思っています。
$.fn.animateRotate = function(angle,prevAngle, duration, easing, complete) {
var args = $.speed(duration, easing, complete);
var step = args.step;
return this.each(function(i, e) {
args.complete = $.proxy(args.complete, e);
args.step = function(now) {
$.style(e, 'transform', 'rotate(' + now + 'deg)');
if (step) return step.apply(e, arguments);
};
$({deg: prevAngle}).animate({deg: angle}, args);
});
};
var angle = 0;
var prevAngle = 0;
$(".phone").mouseenter(function(e) {
prevAngle = angle
angle -= 100;
$(this).animateRotate(angle, prevAngle, 250);
e.preventDefault();
$(this).animate({
left: "800px",
opacity: 1
}, {
duration: 300,
queue: false
});
$(".phone-number").fadeIn(1000);
// $(".phone-number").show("slide", 400);
});
$(".phone").mouseleave(function(e) {
prevAngle = angle
angle += 100;
$(this).animateRotate(angle, prevAngle, 350);
e.preventDefault();
$(this).animate({
left: "905px",
opacity: 1
}, {
duration: 300,
queue: false
});
$(".phone-number").hide("slide", "easeInQuart", 300);
});
どのブラウザを使用しますか?どのオペレーティングシステムですか?すべて同じ結果? Chrome Dev Toolsにアニメーションを記録してみてください。フレームレートを見て、どの操作が遅れているかを見ることができます。遅いものから30フレーム/秒=ジッタ。ああ、サファリはあなたの友人ではありません。 – zipzit
Chrome、OS Mavericks、私はまだChrome Dev Toolsを使用していません。 – user5531720
水上は上手く行く!そして、あなたのリンク先の方法はこちらです(https://developer.chrome.com/devtools/docs/timeline) – zipzit