jQuery menghidupkan backgroundColor

327

Saya mencoba menganimasikan perubahan pada backgroundColor menggunakan jQuery pada mouseover.

Saya telah memeriksa beberapa contoh dan saya tampaknya benar, ia bekerja dengan properti lain seperti fontSize, tetapi dengan backgroundColor saya dapatkan dan kesalahan js "Invalid Property". Elemen yang saya kerjakan adalah sebuah div.

$(".usercontent").mouseover(function() {
    $(this).animate({ backgroundColor: "olive" }, "slow");
});

Ada ide?

SteveCl
sumber
Untuk jquery 1.4.2 dengan efek jquery 1.8 saya harus mengakui bahwa solusi Andrew berfungsi dengan sempurna. Lihat postingnya di bawah.
Patrick Desjardins
1
Catatan: plugin ini mendeteksi warna latar belakang elemen saat ini - browser Chrome mengembalikan rgba(0, 0, 0, 0)nilai kosong / null yang diharapkan saat tidak ada warna latar yang ditentukan. Untuk "memperbaiki" ini, elemen harus memiliki warna latar belakang awal.
Shadow Wizard adalah Ear For You
Halaman yang ditautkan tampaknya rusak (setidaknya halaman proyek dan halaman demo).
Paolo Stefan

Jawaban:

333

Plugin warna hanya 4kb jauh lebih murah daripada perpustakaan UI. Tentu saja Anda akan ingin menggunakan versi plugin yang layak dan bukan buggy old thing yang tidak menangani Safari dan crash ketika transisinya terlalu cepat. Karena versi yang diperkecil tidak disediakan, Anda mungkin ingin menguji berbagai kompresor dan membuat versi min Anda sendiri . YUI mendapatkan kompresi terbaik dalam hal ini hanya membutuhkan 2317 byte dan karena sangat kecil - ini dia:

(function (d) {
    d.each(["backgroundColor", "borderBottomColor", "borderLeftColor", "borderRightColor", "borderTopColor", "color", "outlineColor"], function (f, e) {
        d.fx.step[e] = function (g) {
            if (!g.colorInit) {
                g.start = c(g.elem, e);
                g.end = b(g.end);
                g.colorInit = true
            }
            g.elem.style[e] = "rgb(" + [Math.max(Math.min(parseInt((g.pos * (g.end[0] - g.start[0])) + g.start[0]), 255), 0), Math.max(Math.min(parseInt((g.pos * (g.end[1] - g.start[1])) + g.start[1]), 255), 0), Math.max(Math.min(parseInt((g.pos * (g.end[2] - g.start[2])) + g.start[2]), 255), 0)].join(",") + ")"
        }
    });

    function b(f) {
        var e;
        if (f && f.constructor == Array && f.length == 3) {
            return f
        }
        if (e = /rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(f)) {
            return [parseInt(e[1]), parseInt(e[2]), parseInt(e[3])]
        }
        if (e = /rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(f)) {
            return [parseFloat(e[1]) * 2.55, parseFloat(e[2]) * 2.55, parseFloat(e[3]) * 2.55]
        }
        if (e = /#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(f)) {
            return [parseInt(e[1], 16), parseInt(e[2], 16), parseInt(e[3], 16)]
        }
        if (e = /#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(f)) {
            return [parseInt(e[1] + e[1], 16), parseInt(e[2] + e[2], 16), parseInt(e[3] + e[3], 16)]
        }
        if (e = /rgba\(0, 0, 0, 0\)/.exec(f)) {
            return a.transparent
        }
        return a[d.trim(f).toLowerCase()]
    }
    function c(g, e) {
        var f;
        do {
            f = d.css(g, e);
            if (f != "" && f != "transparent" || d.nodeName(g, "body")) {
                break
            }
            e = "backgroundColor"
        } while (g = g.parentNode);
        return b(f)
    }
    var a = {
        aqua: [0, 255, 255],
        azure: [240, 255, 255],
        beige: [245, 245, 220],
        black: [0, 0, 0],
        blue: [0, 0, 255],
        brown: [165, 42, 42],
        cyan: [0, 255, 255],
        darkblue: [0, 0, 139],
        darkcyan: [0, 139, 139],
        darkgrey: [169, 169, 169],
        darkgreen: [0, 100, 0],
        darkkhaki: [189, 183, 107],
        darkmagenta: [139, 0, 139],
        darkolivegreen: [85, 107, 47],
        darkorange: [255, 140, 0],
        darkorchid: [153, 50, 204],
        darkred: [139, 0, 0],
        darksalmon: [233, 150, 122],
        darkviolet: [148, 0, 211],
        fuchsia: [255, 0, 255],
        gold: [255, 215, 0],
        green: [0, 128, 0],
        indigo: [75, 0, 130],
        khaki: [240, 230, 140],
        lightblue: [173, 216, 230],
        lightcyan: [224, 255, 255],
        lightgreen: [144, 238, 144],
        lightgrey: [211, 211, 211],
        lightpink: [255, 182, 193],
        lightyellow: [255, 255, 224],
        lime: [0, 255, 0],
        magenta: [255, 0, 255],
        maroon: [128, 0, 0],
        navy: [0, 0, 128],
        olive: [128, 128, 0],
        orange: [255, 165, 0],
        pink: [255, 192, 203],
        purple: [128, 0, 128],
        violet: [128, 0, 128],
        red: [255, 0, 0],
        silver: [192, 192, 192],
        white: [255, 255, 255],
        yellow: [255, 255, 0],
        transparent: [255, 255, 255]
    }
})(jQuery);
Andrew
sumber
2
Baiklah, buka tautan yang diusulkan Andrew. Unduh file. Anda perlu menambahkannya ke proyek Anda. Anda masih dapat memiliki jquery.effects.core di proyek Anda ini akan bekerja dengan sempurna. Terima kasih atas jawabannya. +1
Patrick Desjardins
3
Saya hanya menempelkan file di atas ke dalam file 'jquery-ui-1.8.2.min.js' saya yang sudah ada dan ... semuanya masih berfungsi :-)
Dave Everitt
7
Saya ingin mencatat, pada tahun lalu (2011) penulis plugin ini merilis versi 2 yang memiliki banyak fitur bagus di dalamnya, tetapi tidak diperlukan untuk fungsi dasar lib ini biasanya dicari untuk. Sekarang 20 + kb besar. Anda dapat memilih v1cabang untuk mendapatkan versi yang lama (Yang masih berfungsi) tetapi jauh lebih ringan.
Aren
6
FWIW - Anda dapat menghapus pemetaan warna-ke-rgb dalam kode dan mengurangi ukuran lebih lanjut: raw.github.com/gist/1891361/… . Kelemahannya adalah Anda tidak dapat menggunakan nama warna untuk animasi. Anda harus menggunakan nilai rgb.
Niyaz
4
jQuery 1.8 memecah plug ini di btw. curCSS tidak ada di jQuery lagi.
Rich Bradshaw
68

Saya memiliki masalah yang sama dan memperbaikinya dengan memasukkan jQuery UI. Ini skrip lengkapnya:

<!-- include Google's AJAX API loader -->
<script src="http://www.google.com/jsapi"></script>
<!-- load JQuery and UI from Google (need to use UI to animate colors) -->
<script type="text/javascript">
google.load("jqueryui", "1.5.2");
</script>


<script type="text/javascript">
$(document).ready(function() {
$('#menu ul li.item').hover(
    function() {
        $(this).stop().animate({backgroundColor:'#4E1402'}, 300);
        }, function () {
        $(this).stop().animate({backgroundColor:'#943D20'}, 100);
    });
});
</script>
menardmam
sumber
61

Lakukan dengan Transisi CSS3. Dukungan luar biasa (semua browser modern, bahkan IE). Dengan Kompas dan SASS ini dengan cepat dilakukan:

#foo {background:red; @include transition(background 1s)}
#foo:hover {background:yellow}

CSS murni:

#foo {
background:red;
-webkit-transition:background 1s;
-moz-transition:background 1s;
-o-transition:background 1s;
transition:background 1s
}
#foo:hover {background:yellow}

Saya telah menulis artikel berbahasa Jerman tentang topik ini: http://www.solife.cc/blog/animation-farben-css3-transition.html

serigala
sumber
6
Bermain biar dengan hover dan klik transisi di: jsfiddle.net/K5Qyx
Dem Pilafian
30

Bitstorm memiliki plugin animasi warna jquery terbaik yang pernah saya lihat. Ini merupakan peningkatan pada proyek warna jquery. Ini juga mendukung rgba.

http://www.bitstorm.org/jquery/color-animation/

Emmanuel
sumber
1
Saya tidak bisa cukup berterima kasih karena menyatakan bahwa itu mendukung 'rgba' yang persis seperti yang saya cari
Onimusha
13

Anda dapat menggunakan jQuery UI untuk menambahkan fungsi ini. Anda dapat mengambil apa yang Anda butuhkan, jadi jika Anda ingin menghidupkan warna, yang harus Anda sertakan adalah kode berikut. Saya mendapat if dari jQuery UI terbaru (saat ini 1.8.14)

/******************************************************************************/
/****************************** COLOR ANIMATIONS ******************************/
/******************************************************************************/

// override the animation for color styles
$.each(['backgroundColor', 'borderBottomColor', 'borderLeftColor',
    'borderRightColor', 'borderTopColor', 'borderColor', 'color', 'outlineColor'],
function(i, attr) {
    $.fx.step[attr] = function(fx) {
        if (!fx.colorInit) {
            fx.start = getColor(fx.elem, attr);
            fx.end = getRGB(fx.end);
            fx.colorInit = true;
        }

        fx.elem.style[attr] = 'rgb(' +
            Math.max(Math.min(parseInt((fx.pos * (fx.end[0] - fx.start[0])) + fx.start[0], 10), 255), 0) + ',' +
            Math.max(Math.min(parseInt((fx.pos * (fx.end[1] - fx.start[1])) + fx.start[1], 10), 255), 0) + ',' +
            Math.max(Math.min(parseInt((fx.pos * (fx.end[2] - fx.start[2])) + fx.start[2], 10), 255), 0) + ')';
    };
});

// Color Conversion functions from highlightFade
// By Blair Mitchelmore
// http://jquery.offput.ca/highlightFade/

// Parse strings looking for color tuples [255,255,255]
function getRGB(color) {
        var result;

        // Check if we're already dealing with an array of colors
        if ( color && color.constructor == Array && color.length == 3 )
                return color;

        // Look for rgb(num,num,num)
        if (result = /rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(color))
                return [parseInt(result[1],10), parseInt(result[2],10), parseInt(result[3],10)];

        // Look for rgb(num%,num%,num%)
        if (result = /rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(color))
                return [parseFloat(result[1])*2.55, parseFloat(result[2])*2.55, parseFloat(result[3])*2.55];

        // Look for #a0b1c2
        if (result = /#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(color))
                return [parseInt(result[1],16), parseInt(result[2],16), parseInt(result[3],16)];

        // Look for #fff
        if (result = /#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(color))
                return [parseInt(result[1]+result[1],16), parseInt(result[2]+result[2],16), parseInt(result[3]+result[3],16)];

        // Look for rgba(0, 0, 0, 0) == transparent in Safari 3
        if (result = /rgba\(0, 0, 0, 0\)/.exec(color))
                return colors['transparent'];

        // Otherwise, we're most likely dealing with a named color
        return colors[$.trim(color).toLowerCase()];
}

function getColor(elem, attr) {
        var color;

        do {
                color = $.curCSS(elem, attr);

                // Keep going until we find an element that has color, or we hit the body
                if ( color != '' && color != 'transparent' || $.nodeName(elem, "body") )
                        break;

                attr = "backgroundColor";
        } while ( elem = elem.parentNode );

        return getRGB(color);
};

Ini hanya 1.43kb setelah dikompresi dengan YUI:

$.each(["backgroundColor","borderBottomColor","borderLeftColor","borderRightColor","borderTopColor","borderColor","color","outlineColor"],function(b,a){$.fx.step[a]=function(c){if(!c.colorInit){c.start=getColor(c.elem,a);c.end=getRGB(c.end);c.colorInit=true}c.elem.style[a]="rgb("+Math.max(Math.min(parseInt((c.pos*(c.end[0]-c.start[0]))+c.start[0],10),255),0)+","+Math.max(Math.min(parseInt((c.pos*(c.end[1]-c.start[1]))+c.start[1],10),255),0)+","+Math.max(Math.min(parseInt((c.pos*(c.end[2]-c.start[2]))+c.start[2],10),255),0)+")"}});function getRGB(b){var a;if(b&&b.constructor==Array&&b.length==3){return b}if(a=/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(b)){return[parseInt(a[1],10),parseInt(a[2],10),parseInt(a[3],10)]}if(a=/rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(b)){return[parseFloat(a[1])*2.55,parseFloat(a[2])*2.55,parseFloat(a[3])*2.55]}if(a=/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(b)){return[parseInt(a[1],16),parseInt(a[2],16),parseInt(a[3],16)]}if(a=/#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(b)){return[parseInt(a[1]+a[1],16),parseInt(a[2]+a[2],16),parseInt(a[3]+a[3],16)]}if(a=/rgba\(0, 0, 0, 0\)/.exec(b)){return colors.transparent}return colors[$.trim(b).toLowerCase()]}function getColor(c,a){var b;do{b=$.curCSS(c,a);if(b!=""&&b!="transparent"||$.nodeName(c,"body")){break}a="backgroundColor"}while(c=c.parentNode);return getRGB(b)};

Anda juga dapat menghidupkan warna menggunakan transisi CSS3 tetapi hanya didukung oleh peramban modern.

a.test {
  color: red;
  -moz-transition-property: color;  /* FF4+ */
  -moz-transition-duration: 1s;
  -webkit-transition-property: color;  /* Saf3.2+, Chrome */
  -webkit-transition-duration: 1s;
  -o-transition-property: color;  /* Opera 10.5+ */
  -o-transition-duration: 1s;
  -ms-transition-property: color;  /* IE10? */
  -ms-transition-duration: 1s;
  transition-property: color;  /* Standard */
  transition-duration: 1s;
  }

  a.test:hover {
  color: blue;
  }

Menggunakan properti steno:

/* shorthand notation for transition properties */
/* transition: [transition-property] [transition-duration] [transition-timing-function] [transition-delay]; */

a.test {
  color: red;
  -moz-transition: color 1s;
  -webkit-transition: color 1s;
  -o-transition: color 1s;
  -ms-transition: color 1s;
  transition: color 1s;
  }

a.test {
  color: blue;
 }

Tidak seperti transisi javascript biasa, transisi CSS3 dipercepat perangkat keras dan karenanya lebih halus. Anda dapat menggunakan Modernizr, untuk mengetahui apakah browser mendukung transisi CSS3, jika tidak maka Anda dapat menggunakan jQuery sebagai cadangan:

if ( !cssTransitions() ) {
    $(document).ready(function(){
        $(".test").hover(function () {
                $(this).stop().animate({ backgroundColor: "red" },500)
             }, function() {
                 $(this).stop().animate({ backgroundColor: "blue" },500)}    
             );
    }); 
}

Ingat untuk menggunakan stop () untuk menghentikan animasi saat ini sebelum memulai yang baru jika tidak ketika Anda melewati elemen terlalu cepat, efeknya terus berkedip untuk sementara waktu.

Faraz Kelhini
sumber
11

Bagi siapa pun yang menemukan ini. Lebih baik Anda menggunakan versi jQuery UI karena berfungsi di semua browser. Plugin warna memiliki masalah dengan Safari dan Chrome. Kadang hanya berfungsi.

Donny V.
sumber
6
-1 Versi terbaru dari plugin warna berfungsi sempurna di Chrome.
Andrew
3
Sangat berat untuk menyertakan skrip tambahan hanya untuk menghidupkan latar belakang
oneiros
11

Anda dapat menggunakan 2 div:

Anda bisa meletakkan klon di atasnya dan memudar yang asli saat memudar.

Setelah pudar, kembalikan yang asli dengan bg baru.

$(function(){
    var $mytd = $('#mytd'), $elie = $mytd.clone(), os = $mytd.offset();

      // Create clone w other bg and position it on original
    $elie.toggleClass("class1, class2").appendTo("body")
         .offset({top: os.top, left: os.left}).hide();

    $mytd.mouseover(function() {            
          // Fade original
        $mytd.fadeOut(3000, function() {
            $mytd.toggleClass("class1, class2").show();
            $elie.toggleClass("class1, class2").hide();            
        });
          // Show clone at same time
        $elie.fadeIn(3000);
    });
});​

contoh jsFiddle


.toggleClass()
.offset()
.fadeIn()
.fadeOut()

Peter Ajtai
sumber
mungkin itu bekerja di beberapa titik, setidaknya benar bukan sepertinya tidak melakukan apa yang diharapkan itu.
epeleg
@epeleg - Bekerja di mac chrome untuk saya. Anda klik pada persegi panjang berwarna, dan itu berubah warna (2013 - 07 - 15)
Peter Ajtai
Saya tidak tahu bagaimana, tetapi memang sekarang bekerja pada chrome windows7 saya. mungkin terkait dengan pembaruan chrome yang saya lakukan kemarin?! Lagi pula seperti yang saya katakan memang berhasil sekarang.
epeleg
8

Saya menggunakan kombinasi transisi CSS dengan JQuery untuk efek yang diinginkan; jelas browser yang tidak mendukung transisi CSS tidak akan bernyawa tetapi itu opsi yang ringan yang bekerja dengan baik untuk sebagian besar browser dan untuk persyaratan saya adalah degradasi yang dapat diterima.

Jquery untuk mengubah warna latar:

   $('.mylinkholder a').hover(
        function () {
            $(this).css({ backgroundColor: '#f0f0f0' }); 
        },
        function () {
            $(this).css({ backgroundColor: '#fff' });
        }
    );

CSS menggunakan transisi untuk memudar perubahan warna latar belakang

   .mylinkholder a
   {
   transition: background-color .5s ease-in-out;
   -moz-transition: background-color .5s ease-in-out;
   -webkit-transition: background-color .5s ease-in-out; 
  -o-transition: background-color .5s ease-in-out; 
   }
Jimbo Jones
sumber
6

Plugin jQuery color hari ini mendukung warna bernama berikut:

aqua:[0,255,255],
azure:[240,255,255],
beige:[245,245,220],
black:[0,0,0],
blue:[0,0,255],
brown:[165,42,42],
cyan:[0,255,255],
darkblue:[0,0,139],
darkcyan:[0,139,139],
darkgrey:[169,169,169],
darkgreen:[0,100,0],
darkkhaki:[189,183,107],
darkmagenta:[139,0,139],
darkolivegreen:[85,107,47],
darkorange:[255,140,0],
darkorchid:[153,50,204],
darkred:[139,0,0],
darksalmon:[233,150,122],
darkviolet:[148,0,211],
fuchsia:[255,0,255],
gold:[255,215,0],
green:[0,128,0],
indigo:[75,0,130],
khaki:[240,230,140],
lightblue:[173,216,230],
lightcyan:[224,255,255],
lightgreen:[144,238,144],
lightgrey:[211,211,211],
lightpink:[255,182,193],
lightyellow:[255,255,224],
lime:[0,255,0],
magenta:[255,0,255],
maroon:[128,0,0],
navy:[0,0,128],
olive:[128,128,0],
orange:[255,165,0],
pink:[255,192,203],
purple:[128,0,128],
violet:[128,0,128],
red:[255,0,0],
silver:[192,192,192],
white:[255,255,255],
yellow:[255,255,0]
рüффп
sumber
1
Bisakah Anda mengutip sumbernya? Terima kasih sudah mendaftar btw.
Shrikant Sharat
Daftar ini berasal dari plugin warna jQuery: plugins.jquery.com/project/color
spoulson
2
-1 Daftar warna Anda mengacu pada versi yang kedaluwarsa. Versi saat ini memiliki setidaknya satu warna tambahan yang saya perhatikan.
Andrew
5

Saya suka menggunakan delay () untuk menyelesaikan ini, berikut ini sebuah contoh:

jQuery(element).animate({ backgroundColor: "#FCFCD8" },1).delay(1000).animate({ backgroundColor: "#EFEAEA" }, 1500);

Ini dapat dipanggil dengan fungsi, dengan "elemen" menjadi elemen kelas / nama / dll. Elemen akan langsung muncul dengan latar belakang # FCFCD8, tahan sebentar, lalu menghilang menjadi #EFEAEA.

Andy
sumber
4

Cukup tambahkan cuplikan berikut di bawah skrip jquery Anda dan nikmati:

<script src="https://cdn.jsdelivr.net/jquery.color-animation/1/mainfile"></script>

Lihat contohnya

Referensi untuk info lebih lanjut

Darush
sumber
Harap sebariskan contoh-contoh tersebut agar tidak rentan terhadap pembusukan tautan.
Ege Özcan
2

Saya menemukan halaman ini dengan masalah yang sama, tetapi masalah berikut:

  1. Saya tidak dapat menyertakan file plugin jQuery tambahan dengan pengaturan saya saat ini.
  2. Saya tidak nyaman menempel blok kode besar yang saya tidak punya waktu untuk membaca dan memvalidasi.
  3. Saya tidak memiliki akses ke css.
  4. Saya hampir tidak punya waktu untuk implementasi (itu hanya peningkatan visual ke halaman admin)

Dengan jawaban di atas, hampir tidak ada jawaban. Mengingat warna pudar saya sangat sederhana, saya menggunakan quick hack berikut:

element
  .css('color','#FF0000')
;
$('<div />')
  .css('width',0)
  .animate(
    {'width':100},
    {
      duration: 3000,
      step:function(now){
        var v = (255 - 255/100 * now).toString(16);
        v = (v.length < 2 ? '0' : '') + v.substr(0,2);
        element.css('color','#'+v+'0000');
      }
    }
  )
;

Di atas membuat div sementara yang tidak pernah ditempatkan dalam aliran dokumen. Saya kemudian menggunakan animasi bawaan jQuery untuk menghidupkan properti numerik dari elemen itu - dalam hal ini width- yang dapat mewakili persentase (0 hingga 100). Kemudian, menggunakan fungsi langkah, saya mentransfer animasi numerik ini ke warna teks dengan hex hexacation sederhana.

Hal yang sama dapat dicapai dengan setInterval, tetapi dengan menggunakan metode ini Anda dapat mengambil manfaat dari metode animasi jQuery - seperti .stop()- dan Anda dapat menggunakan easingdan duration.

Jelas itu hanya digunakan untuk memudarkan warna yang sederhana, untuk konversi warna yang lebih rumit Anda harus menggunakan salah satu jawaban di atas - atau kode warna Anda sendiri memudar matematika :)

Pebbl
sumber
2

Coba yang ini:

(function($) {  

            var i = 0;  

            var someBackground = $(".someBackground");  
            var someColors = [ "yellow", "red", "blue", "pink" ];  


            someBackground.css('backgroundColor', someColors[0]);  

            window.setInterval(function() {  
                i = i == someColors.length ? 0 : i;  
                someBackground.animate({backgroundColor: someColors[i]}, 3000);  
                i++;  
            }, 30);  

})(jQuery);  

Anda dapat mempratinjau contoh di sini: http://jquerydemo.com/demo/jquery-animate-background-color.aspx

mag
sumber
1

Colokan ColorBlend melakukan apa yang Anda inginkan

http://plugins.jquery.com/project/colorBlend

Ini kode sorot saya

$("#container").colorBlend([{
    colorList:["white",  "yellow"], 
    param:"background-color",
    cycles: 1,
    duration: 500
}]);
Orhaan
sumber
1

Jika Anda tidak ingin menghidupkan latar belakang Anda hanya menggunakan fungsionalitas inti jQuery, coba ini:

jQuery(".usercontent").mouseover(function() {
      jQuery(".usercontent").animate({backgroundColor:'red'}, 'fast', 'linear', function() {
            jQuery(this).animate({
                backgroundColor: 'white'
            }, 'normal', 'linear', function() {
                jQuery(this).css({'background':'none', backgroundColor : ''});
            });
        });
pengguna1029978
sumber
0

Cobalah untuk menggunakannya

-moz-transition: background .2s linear;
-webkit-transition: background .2s linear;
-o-transition: background .2s linear;
transition: background .2s linear;
Anton Rodin
sumber
0

Coba yang ini:

jQuery(".usercontent").hover(function() {
    jQuery(this).animate({backgroundColor:"pink"}, "slow");
},function(){
    jQuery(this).animate({backgroundColor:"white"}, "slow");
});

Cara yang direvisi dengan efek:

jQuery(".usercontent").hover(function() {

    jQuery(this).fadeout("slow",function(){
        jQuery(this).animate({"color","yellow"}, "slow");
    });
});
Mary Daisy Sanchez
sumber