这两天做了一个滚动广告栏的demo 功能有自动轮播 左右箭头移动 导航点选中图片移动效果 模仿的是新浪体育的广告

最难的问题就是子div绝对定位于父div 鼠标移入子div 系统会判定鼠标移出了父div 所以会触发子div消失的效果 消失完因为鼠标在父div中 所以又触发了子div出现的效果

这样就会导致子div一直重复消失出现 形成闪烁的效果 在网上没有找到合适的解决问题办法 我通过设定状态和js的setTimeout解决了此问题

效果如图

需要设定两个状态

var arrow = false; //判断是否进入了箭头区域
var isDiv = false;//判断是否进入了父div

附上关键代码

 $("#content").mouseenter(function () {
if ($("#left").is(":animated") || $("#right").is(":animated"))//当箭头处于动画时 不执行鼠标移入事件
{
return false;//防止鼠标一直进出导致的动画累计
}
if (arrow == true) {//移入div同时移入箭头 这个条件永远不会触发 因为两个区域不会相交
alert("永远不触发");
$("#left").fadeIn(moveTime);
$("#right").fadeIn(moveTime);
}
else {//移入div且不在箭头区域 正常触发
$("#left").fadeIn(moveTime);
$("#right").fadeIn(moveTime);
}
isDiv = true;//鼠标移入div状态
flag = false; //停止轮播
});
$("#content").mouseleave(function () {
var t = setTimeout(a, 1); //晚一点执行 先执行进入箭头区域的事件 把状态改过来 手动改变事件本身的执行顺序
function a() {
if (arrow == true) {//由于先执行了箭头移入事件 箭头区域就不会消失
$("#left").fadeIn(moveTime);
$("#right").fadeIn(moveTime);
}
else {//移出div且不在箭头区域
$("#left").fadeOut(moveTime);
$("#right").fadeOut(moveTime);
}
isDiv = false;
}
flag = true;
}); $("#left").mouseover(function () {
arrow = true;
flag = false;
$("#left").css("background-position", "-10px -65px");
$("#left").css("cursor", "pointer");
});
$("#left").mouseout(function () {
$("#left").css("background-position", "-10px -5px");
var t = setTimeout(a, 1);//让div的mouseover先执行 以便取到isDiv的值
function a() {
if (isDiv == false) {//移出箭头区域 且不在div中 箭头消失
$("#left").fadeOut(moveTime);
$("#right").fadeOut(moveTime);
}
}
arrow = false;
flag = true;
});
$("#right").mouseover(function () {
arrow = true
flag = false;
$("#right").css("background-position", "-10px -65px");
$("#right").css("cursor", "pointer");
});
$("#right").mouseout(function () {
$("#right").css("background-position", "-10px -5px");
var t = setTimeout(a, 1);
function a() {
if (isDiv == false) {
$("#left").fadeOut(moveTime);
$("#right").fadeOut(moveTime);
}
}
arrow = false;
flag = true;
});

第一次在博客园写文章 也不知道写的好不好 凡事都有个第一次吗

jQuery滚动广告 解决子div绝对定位与父div重叠引起的闪烁问题的更多相关文章

  1. JQuery实现广告效果(滚动切换)

    JQuery实现广告效果(滚动切换)   Html+css 效果如上图 代码: <!DOCTYPE html> <html> <head lang="en&qu ...

  2. CSS+DIV:父DIV相对定位+子DIV绝对定位

    如何在一个div内将一个div进行绝对定位呢?很简单,把父div的position属性设为relative,子div的position属性设为absolute就可以了... 示例: <html& ...

  3. <转载>如何解决子级用float浮动父级div高度不能自适应的问题

    转载:http://www.kwstu.com/ArticleView/divcss_2013101582430202 解决子级对象使用css float浮动 而父级div不能自适应高度,不能被父级内 ...

  4. vue setTimeout用法 jquery滚动到某一个div的底部

    //vue 中setTimeOut用法 var $this = this; setTimeout(function(){ $this.goEnd() }, 10); goEnd:function(){ ...

  5. 解决子级用css float浮动 而父级div没高度不能自适应高度

    解决子级对象使用css float浮动 而父级div不能自适应高度,不能被父级内容撑开解决方法,父级div没有高度解决方法. 最外层的父级DIV不能自适应高度-不能随对象撑开没有高度 当在对象内的盒子 ...

  6. CSS| 解决子级用css float浮动 而父级div没高度不能自适应高度

    解决子级用css float浮动 而父级div没高度不能自适应高度 解决子级对象使用css float浮动 而父级div不能自适应高度,不能被父级内容撑开解决方法,父级div没有高度解决方法. 最外层 ...

  7. fullpage 单屏高度超过屏幕高度,实现单屏内可以滚动并解决手机端单屏高度不正确的问题

    最近接触了好几次jquery.fullpage.js这个插件,实现整屏的滑动,效果很炫,用fullpage来实现也很简单,但是也碰到了一些问题和大家分享一下 1.单屏高度超过屏幕高度,实现单屏的滑动 ...

  8. 【IE6的疯狂之十】父级使用padding后子元素绝对定位的BUG

    在前端开发中,经常会用到css的position:absolute来使层浮动,前通过left,top,right等属性来对层进行定位,但ie6对left,top,right等属性的解释和ie7,ie8 ...

  9. 在JSP中使用jQuery的冲突解决(收集整理)

    在JSP中使用<jsp:include page="somethingPage.jsp"></jsp>来嵌套页面的时候,会出现jQuery之间的冲突 解决办 ...

随机推荐

  1. spark基本概念

    Client:客户端进程,负责提交作业到Master. Application:Spark Application的概念和Hadoop MapReduce中的类似,指的是用户编写的Spark应用程序, ...

  2. UVA 806 Spatial Structures

    题意: 如果某一大区域所有色块颜色是相同的,那么这一个大区域就算作一块,如果不同,则将其划分成四个小区域,然后重复上述步骤递归进行直到所有区域的颜色相同为止.然后根据上面划分的区域建树,小区域作为大区 ...

  3. L10 PUtty+SSH 访问vncviewer

    在Linux下配置一个VNC服务器,并设置2个用户,要求其中一个用户登录时不需要输入密码.然后在客户端使用ssh+vncview的方式访问. 安装tigervnc: 输入的密码是123456 连接服务 ...

  4. $.Event 你不知道的用法

    最近在使用Bootstrap.js,一不小心趴开源码看了一下,尤其是看到tab.js var hideEvent = $.Event('hide.bs.tab', { relatedTarget: $ ...

  5. javascript实现当前页导航激活

    html <ul id=”nav”> <li><a href=”http://www.daqianduan.com/”>首页</a></li> ...

  6. Android_使用getIdentifier()获取资源Id

    Android 获取资源ID的另外一种方法,常规获取ID是在特定的文件夹下面的资源,如果在比较特殊的文件夹下面,就需要其他方法获取ID 了: 使用getIdentifier()方法可以方便的获各应用包 ...

  7. Jquery 解决 H5 placeholder元素问题

    <style type="text/css"> .placeholder{ color: #cacaca; } </style> <script ty ...

  8. jquery.validate的效验方式

    jQuery校验官网地址:http://bassistance.de/jquery-plugins/jquery-plugin-validation 原文地址:http://www.cnblogs.c ...

  9. 如何用ATL创建ActiveX控件

    演示截图: 代码简介或代码解析: 如何用ATL创建ActiveX控件 实现了一个ActiveX控件,它在一个圆内部有个正多边形,当用户在多变形内部单击将会使多边形的边数在当前的基础上+1,在多变形外部 ...

  10. Balls Rearrangement(HDU)

    Problem Description Bob has N balls and A boxes. He numbers the balls from 0 to N-1, and numbers the ...