JQueryを使用して、ホバー時にdivの背景画像を変更しようとしています。これは私がこれまでに思いついたものですが、機能していません:
html
<div class="logo"></div>
css
.logo {
width: 300px;
height: 100px;
background: url('http://placehold.it/300x100/ffffff/000000.png&text=first') no-repeat center top;
}
js
$('.logo').hover(
function(){
$(this).animate({backgroundImage: 'http://placehold.it/300x100/ffffff/000000.png&text=second'},'fast');
},
function(){
$(this).animate({backgroundImage: 'http://placehold.it/300x100/ffffff/000000.png&text=first'},'fast');
});
jsfiddleここ: http://jsfiddle.net/26j6P/1/
私は何が間違っているのですか?背景色をアニメーション化すると、問題なく動作します...
JQueryのアニメーションを画像で使用することはできません-それは単に機能しません。
このようにプレーンなCSSを使用してください...
これがCSSです...
.logo {
width: 300px;
height: 100px;
background: url('http://placehold.it/300x100/ffffff/000000.png&text=first') no-repeat center top;
transition: 0.5s;
}
.logo:hover {
background-image: url('http://placehold.it/300x100/ffffff/000000.png&text=second');
}
.animate()
を使用して非数値プロパティをアニメーション化することはできません。
$('.logo').hover(
function () {
$(this).animate({
opacity: 0
}, 'fast', function () {
$(this)
.css({
'background-image': 'url(http://placehold.it/300x100/ffffff/000000.png&text=second)'
})
.animate({
opacity: 1
});
});
},
function () {
$(this).animate({
opacity: 0
}, 'fast', function () {
$(this)
.css({
'background-image': 'url(http://placehold.it/300x100/ffffff/000000.png&text=first)'
})
.animate({
opacity: 1
});
});
});
私は少し遅れていることを知っています。しかし、これを行う必要がある人がいる場合は、そのためのjqueryプラグインがあります。次のリンクに移動し、下にスクロールしてデモを表示し、[スライドショーとしてバックストレッチを使用する]を選択します。それはうまくいきます。
jQuery
ではできないと誰かが言っているのを見ました。これが私の例で、うまくいきます。 $(".bannerImages img")
は私の画像を直接呼び出しているので、$(this)
を使用してその属性を変更できます。それが完了したら、$(this)
を呼び出してそのattr
を変更し、アニメーションを追加することもできます。
$(".bannerImages img").animate({opacity: 0}, 'slow', function() {
$(this)
.attr({'src': 'images/mainSlider/ps1.jpg'})
.animate({opacity: 1});
});
これを試してください:-
$('.logo').hover(
function() {
$(this).css("background-image",
"url(http://placehold.it/300x100/ffffff/000000.png&text=second)");
},
function() {
$(this).css("background-image",
"url(http://placehold.it/300x100/ffffff/000000.png&text=first)");
}
);