JQuery Box-shadow插入问题

时间:2011-08-22 01:43:21

标签: jquery css css3

我遇到了JQuery和插入Box-Shadow的问题。

首先,我有一个输入字段。

<input id="name" name="name" type="text" />

该字段具有以下css样式:

 #contact input[type="text"] {
     background: rgba(55,55,55, 0.6);
     height:2em;
     border: 1px dashed #666;
     width:200px;
     box-shadow:inset 0px 0px 10px #222;
     border-radius: 2px;
}

好。现在是JQuery部分:

我想做什么!如果我将鼠标悬停在输入字段上,我想要一个“外部”框阴影。喜欢:boxShadow:“0px 0px 15px#750082”。但插入的盒子阴影应该是相同的!!

$(document).ready(function(){
    $("#message").hover(
        function()
            {$(this).stop().animate({boxShadow: "0px 0px 15px #750082"},800);
            },
        function()
            {$(this).stop().animate({boxShadow: "inset 0px 0px 10px #222222"});

    });
});

问题是“外部”框阴影将显示为插入框阴影。 但我想要一个“外部”盒子阴影和一个插入盒子阴影!

我的解决方案有什么问题?有人有更好的吗?

祝你好运

修改的 我正在使用JQuery 1.6.2,用于我使用{4}}插件的方框图!

1 个答案:

答案 0 :(得分:5)

这里有两个选项以获得相同的预期结果

example jsfiddle

1:使用<input>

的包装器
<span id="nameWrapper">
    <input id="name" name="name" type="text" value="" />
</span>

jQuery的:

$("#name").hover(function() {
    $(this).parent().stop().animate({
        boxShadow: "0px 0px 15px #750082"
    }, 800);
}, function() {
    $(this).parent().stop().animate({
        boxShadow: ""
    }, 800);
});

2:改用CSS3过渡

CSS:

#contact input[type="text"] {
    background: rgba(55,55,55, 0.6);
    height:2em;
    border: 1px dashed #666;
    width:200px;
    box-shadow:inset 0px 0px 10px #222;
    border-radius: 2px;
    outline:0;/* prevent webkit highlight on focus */
    -webkit-transition: all 0.8s ease-in-out;
       -moz-transition: all 0.8s ease-in-out;
        -ms-transition: all 0.8s ease-in-out;
         -o-transition: all 0.8s ease-in-out;
            transition: all 0.8s ease-in-out;
}
#contact input[type="text"]:hover {
    /* set both shadows */
    box-shadow:inset 0px 0px 10px #222,0px 0px 15px #750082;
}

你可以考虑编写影子插件的作者来通知他/她这个问题。