javascript - 请问的搜索框foucs时,隐藏了旁边的分类导航条,是怎么实现的?能不能不用js纯css实现?
巴扎黑
巴扎黑 2017-04-10 15:03:46
[JavaScript讨论组]

请问segmentfault的搜索框foucs时,隐藏了旁边的分类导航条,是怎么实现的?能不能不用js的情况下使用纯css实现?纯css请问怎么实现?

搜索框和导航条分别是在两个p中的。两个p是兄弟。

巴扎黑
巴扎黑

全部回复(4)
大家讲道理

HTML: (伪代码)

htmlform
    i.fa.fa-search
    input type="text"
    ul
        li * 5 > {nav-item-$}

SCSS:

scssinput {
    //未focus时的样式
    &~ul {
        //未focus时的列表样式
    }
    &:focus {
        //input focus时的样式
        &~ul {
            //input focus时的列表样式
        }
    }
}
迷茫

网站实现源码:

$("#searchBox").focus(function(){
    var e=$(".nav .menu").width()+180+"px";
    $(".nav .menu").hide();
    $(this).animate({width:e},200)
});
$("#searchBox").blur(function(){
    $(this).animate({width:"180px"},200,"swing",function(){$(".nav .menu").show()})
});
高洛峰

input/Ul 同级
input focus伪类加兄弟选择器 input:focus + ul {display: none}

黄舟

我也试了试。如果input元素focus,宽度变长时,没有动画效果的话,用纯CSS是可以的。方法就是用兄弟选择器,和伪类focus。但是segmentfault上面好像是有动画效果的。如果有动画效果的话,就会出现blur后,input元素的宽度缩减还没结束,右侧的ul就已经显示出来了这样的结果。纯CSS的办法理论上应该是让 ul 从隐藏到显示也加入一个动画,但好像试不出来。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号