1

これは簡単な答えかもしれませんが、私はそれについて多くを見つけるのに苦労しています.

メーソンリー プラグインを使用して、ページに画像を挿入しています。画像は芸術作品です。アーティストの作品の画像にマウスを合わせると、そのアーティストの名前が下からスライドして表示されるようにしてほしいです。

現在、マウスオーバーイベントを機能させようとしていますが、何も起こっていません。誰でも助けてもらえますか?

$(document).ready(function(){


$.get("artists.json", function(data){

    json = $.parseJSON(data);

    $.each(json, function(i, data){

            $("#container").append("<div class='thumbnail small' id='" + data.id + "' index='"+i+"' style=\"background:url('" + data.imageofWork + "') no-repeat center center; background-size:cover; \" caption = '"+data.artistName+"' ></div>");



    });

});

$("#container").imagesLoaded( function(){
    setTimeout(function()
    {
        $('#container').masonry({
            itemSelector : '.thumbnail',
            gutterWidth: 0,
            isAnimated: true
        });

        $("#container").css('visibility','visible').hide().fadeIn('slow', function(){setTimeout(function(){ checkURL();},500)});

    },1200)



});


$(document).on("mouseover", ".thumbnail.small", function(){

        //console.log($(this));
        $(this).css('width:', '110%');
});
4

3 に答える 3

2

cssでできる...

http://jsfiddle.net/3Rkdp/1/

あなたのjquery(あなたの答えから)

$("#container").append("<div class='thumbnail small' id='" + data.id + "' index='"+i+"' style=\"background:url('" + data.imageofWork + "') no-repeat center center; background-size:cover; \" ><div id='artistname' style='display: block; visibility: hidden;z-index:1000; font-size: 115%; font-weight: bold; padding: 10px; background-color: #000000; color: #ffffff; opacity: .5;'>"+data.artistName+"</div></div>");

CSS

.thumbnail { height: 200px; width:300px; overflow:hidden; position: relative; }
.thumbnail:hover .artistname { bottom: 0; }
.artistname { padding: 10px; width:100%; background-color: #000000; color: #ffffff; opacity: .5; position:absolute; bottom :-100px;  -webkit-transition:all .2s ease-in-out; -moz-transition:all .2s ease-in-out; -o-transition:all .2s ease-in-out; -ms-transition:all .2s ease-in-out; }

CSS トランジションを使用してトランジションをきれいに見せていますが、これは 9 以下では機能しませんが、正常に劣化します。

于 2013-03-22T18:14:00.700 に答える
0

「mouseover」は機能するはずですが、要素で「mouseenter」と「mouseleave」を組み合わせて使用​​すると有利な場合があります。これにより、イン/アウト トランジションの視覚効果を微調整することもできます。

試す:

$("body").on("mouseenter mouseleave", ".thumbnail.small", function(e){
    if(e.type == "mouseenter"){
        //some hover state
    }else if(e.type == "mouseleave"){
        //remove your hover state
    }
});

幸運を!

于 2013-03-22T15:13:51.320 に答える
0

石積みを含む div (この場合は「サムネイル小」) 内のマウスオーバーで表示したい div をネストしてスタイルを設定する必要がありました。

$("#container").append("<div class='thumbnail small' id='" + data.id + "' index='"+i+"' style=\"background:url('" + data.imageofWork + "') no-repeat center center; background-size:cover; \" ><div id='artistname' style='display: block; visibility: hidden;z-index:1000; font-size: 115%; font-weight: bold; padding: 10px; background-color: #000000; color: #ffffff; opacity: .5;'>"+data.artistName+"</div></div>");
于 2013-03-22T17:57:59.233 に答える