当前位置 : 主页 > 网页制作 > JQuery >

jquery – CSS box-shadow transition

来源:互联网 收集:自由互联 发布时间:2021-06-15
我的网站上有几个div元素,它们是具有嵌入框阴影的类的一部分.当我将鼠标悬停在那些div框上时,我希望从box-shadow中删除inset属性,并且我希望它转换为向外阴影.但是,虽然阴影正确更改
我的网站上有几个div元素,它们是具有嵌入框阴影的类的一部分.当我将鼠标悬停在那些div框上时,我希望从box-shadow中删除inset属性,并且我希望它转换为向外阴影.但是,虽然阴影正确更改,但在更改期间不会转换.它只是瞬间切换阴影.我该如何解决?

这是HTML:

<header>

    <div id="header-stuff">

        <p class="header-big">Green Homes 101</p>

        <div id="header-links">

            <div class="header-link">
                <a href="alt-en.html#top">
                    <img src="images/index/alt-en.svg" alt="Alternate Energy" />
                    <p>Alternate Energy</p>
                </a>
            </div>

            <div class="header-link">
                <a href="diy.html#top">
                    <img src="images/index/diy.svg" alt="DIY" />
                    <p>DIY</p>
                </a>
            </div>

            <div class="header-link">
                <a href="buying.html#top">
                    <img src="images/index/buying.svg" alt="Buying Green Homes" />
                    <p>Buying Green Homes</p>
                </a>
            </div>

            <div class="header-link">
                <a href="about.html#top">
                    <img src="images/index/about.svg" alt="About Us" />
                    <p>About Us</p>
                </a>
            </div>

        </div>

    </div>

</header>

这是CSS:

.header-link {
    display: inline-block;
    background-color: rgba(50, 125, 42, 0.75);
    margin: 1%;
    overflow: hidden;
    border-radius: 10%;
    box-shadow:0 0 10px rgba(0, 0, 0, 0.7) inset;

    -ms-transition: all .25s linear;
    -moz-transition: all .25s linear;
    -webkit-transition: all .25s linear;
    -o-transition: all .25s linear;
}

.header-link > a {
    display: block;
    width: 100%;
    height: 100%;
    color: rgba(10, 85, 2, 0.35);
    text-shadow: 1px 4px 6px rgba(33, 108, 25, 0.85), 0 0 0 #000, 1px 4px 6px rgba(33, 108, 25, 0.85);
    border-radius: 10%;
}

.header-link > a > img {
    display: block;
    width: 100%;
    height: 80%;
}

.header-link:hover {
    background-color: #1e9cd7;
    box-shadow:0 0 10px rgba(0, 0, 0, 0.7);

    -ms-transition: all .25s linear;
    -moz-transition: all .25s linear;
    -webkit-transition: all .25s linear;
    -o-transition: all .25s linear;
}
您无法从普通框阴影过渡到插入框阴影.

幸运的是,你可以设置多个盒子阴影,这样你就可以写了

.header-link {
    box-shadow:0 0 10px rgba(0, 0, 0, 0.7) inset, 0px 0px 0px white;
}

.header-link:hover {
    box-shadow: 0px 0px 0px white inset, 0 0 10px rgba(0, 0, 0, 0.7);
}

请注意,这些阴影与您拥有的阴影相同,因为额外的阴影具有0px,因此不会显示.另请注意,顺序很重要:浏览器只有在第一个阴影插入(或正常)时才转换它,第二个阴影插入(或正常)两者,依此类推

fiddle

我已经删除了悬停状态中的转换,您不需要重复它们.

网友评论