1

これが以前に対処されている場合はお詫び申し上げます。不透明度遷移によるグラデーションのフェードインについて少し学びましたが、フェードアウトに問題があります。

私はリンクである div を持っています。私の目標は、マウスがその上にあるときにグラデーションをフェードインさせ、マウスが領域を離れるとフェードアウトすることです。

関連する CSS を含む jsfiddle へのリンクは次のとおりです: http://jsfiddle.net/94KEZ/

これは div そのものです (不透明度を 0 に設定):

nav .nav-right {
    position: absolute;
    right: 0;
    top: 0;
    width: 8%;
    min-width: 110px;
    height: 100%;
    z-index: 8020;
    cursor: pointer;
    opacity: 0;
    transition: opacity 2.75s;
    -moz-transition: opacity 2.75s;
    -webkit-transition: opacity 2.75s;
    -o-transition: opacity 2.75s;
}

ホバーの CSS は次のとおりです (正常に動作しているようです…)

nav .nav-right:hover {
    opacity: 1;
    background: -moz-linear-gradient(left,  rgba(255,242,0,0) 0%, rgba(255,252,0,0) 80%, rgba(255,255,0,0.8) 100%); /* FF3.6+ */
    background: -webkit-gradient(linear, left top, right top, color-stop(0%,rgba(255,242,0,0)), color-stop(80%,rgba(255,252,0,0)), color-stop(100%,rgba(255,255,0,0.8))); /* Chrome,Safari4+ */
    background: -webkit-linear-gradient(left,  rgba(255,242,0,0) 0%,rgba(255,252,0,0) 80%,rgba(255,255,0,0.8) 100%); /* Chrome10+,Safari5.1+ */
    background: -o-linear-gradient(left,  rgba(255,242,0,0) 0%,rgba(255,252,0,0) 80%,rgba(255,255,0,0.8) 100%); /* Opera 11.10+ */
    background: -ms-linear-gradient(left,  rgba(255,242,0,0) 0%,rgba(255,252,0,0) 80%,rgba(255,255,0,0.8) 100%); /* IE10+ */
    background: linear-gradient(to right,  rgba(255,242,0,0) 0%,rgba(255,252,0,0) 80%,rgba(255,255,0,0.8) 100%); /* W3C */
    filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#00fff200', endColorstr='#ccffff00',GradientType=1 ); /* IE6-9 */
    transition: opacity 5.75s;
    -moz-transition: opacity 5.75s;
    -webkit-transition: opacity 5.75s;
    -o-transition: opacity 5.75s;
}

私もこれを試しましたが、うまくいかなかったようです:

nav .nav-right:link {
    opacity: 0;
    transition: opacity 2.75s;
    -moz-transition: opacity 2.75s;
    -webkit-transition: opacity 2.75s;
    -o-transition: opacity 2.75s;
}

私がここに欠けているものはありますか?または、このようにグラデーションの不透明度を移行することはできませんか?

いつものように、あなたが提供できる助けとアドバイスに感謝します。また、これを達成するためのより良い方法の提案も受け付けています。

4

1 に答える 1

0

はい、不透明度の遷移は可能です。

ただし、そのためには、背景が一定でなければなりません。つまり、基本状態で設定する必要があります。

CSS

nav .nav-right {
    position: absolute;
    right: 0;
    top: 0;
    width: 50%;
    min-width: 110px;
    height: 100%;
    z-index: 8020;
    cursor: pointer;
    opacity: 0;
    transition: opacity 2.75s;
    -moz-transition: opacity 2.75s;
    -webkit-transition: opacity 2.75s;
    -o-transition: opacity 2.75s;
    background: -moz-linear-gradient(left,  rgba(255,242,0,0) 0%, rgba(255,252,0,0) 80%, rgba(255,255,0,0.8) 100%); /* FF3.6+ */
    background: -webkit-gradient(linear, left top, right top, color-stop(0%,rgba(255,242,0,0)), color-stop(80%,rgba(255,252,0,0)), color-stop(100%,rgba(255,255,0,0.8))); /* Chrome,Safari4+ */
    background: -webkit-linear-gradient(left,  rgba(255,242,0,0) 0%,rgba(255,252,0,0) 80%,rgba(255,255,0,0.8) 100%); /* Chrome10+,Safari5.1+ */
    background: -o-linear-gradient(left,  rgba(255,242,0,0) 0%,rgba(255,252,0,0) 80%,rgba(255,255,0,0.8) 100%); /* Opera 11.10+ */
    background: -ms-linear-gradient(left,  rgba(255,242,0,0) 0%,rgba(255,252,0,0) 80%,rgba(255,255,0,0.8) 100%); /* IE10+ */
    background: linear-gradient(to right,  rgba(255,242,0,0) 0%,rgba(255,252,0,0) 80%,rgba(255,255,0,0.8) 100%); /* W3C */
    filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#00fff200', endColorstr='#ccffff00',GradientType=1 ); /* IE6-9 */
}

nav .nav-right:link {
    opacity: 0;
    transition: opacity 2.75s;
    -moz-transition: opacity 2.75s;
    -webkit-transition: opacity 2.75s;
    -o-transition: opacity 2.75s;
}

nav .nav-right:hover {
    opacity: 1;
    transition: opacity 2.75s;
    -moz-transition: opacity 2.75s;
    -webkit-transition: opacity 2.75s;
    -o-transition: opacity 2.75s;
}

更新されたデモ

于 2013-10-30T19:33:00.200 に答える