javascript - 添加了一个 box-shadow,出现这个问题???
伊谢尔伦
伊谢尔伦 2017-04-11 11:47:47
[JavaScript讨论组]

鼠标移到【浏览】处时,用JQ做了一个显示隐藏的框,当我把鼠标移到显示框上的时候出现这个问题,怎么解决

显示框移动上去了,【有时候会出现,这种情况】

html代码

 浏览 

样式代码

 .htlist{
        border-radius:5px;
        box-shadow: 8px 8px 2px #888888;
    }
 .htlist  li{
     cursor:pointer;font-size:12px;width:250px;float: left;
 }
 .htlist  li:hover{
     background:#ddca3e;color:white;
 }
 .htlist  li a{
     display:inline-block;width:100%;height:100%;
 }

jq显示隐藏代码

function  browse(now) {
    var obj = $(now).siblings("ul").slideDown(200);
}
        
function  nonebrowse(now) {
    var obj = $(now).siblings("ul").slideUp(200); 
}
$(function(){
    $(".htlist").hover(
        function(){
            $(".htlist").stop(true).show();
        },
        function(){
            $(".htlist").stop(true).hide();
        }) 
    })
伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

全部回复(2)
天蓬老师
  1. 代码好乱……除非调试,否则标签里不建议写这么多style,推荐你在浏览器调试的时候可以直接写在Elements的Styles里,然后等样式ok了以后再统一粘贴回css文件对应的位置(Styles里有行号);而且事件也推荐统一用jq的事件监听来写,一会儿标签里一会儿js太分裂了。

  2. 建议你可以在<a>mouseover事件发生时,(下边是处理逻辑)先触发slideDown()动画,然后用一个变量缓存一个setTimeout延时触发slideUp(),时间你自己定吧,记得变量声明在事件处理外边别回头找不到了就行;然后<a>mouseout事件就甭管了,.htlistmouseover的时候(也就是hover()第一个参数)先clearTimeout掉刚才的setTimeout(直接stop()掉了所以会出现“一半”的情况),然后在mouseout时再执行slideUp()应该就没问题了。

阿神

批评一下楼主的代码书写,真的是乱,其次楼上讲的很不错

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

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