这两天做了一个滚动广告栏的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. 解决IP地址被占用问题

    问题背景: 在公司一直有同事在抱怨IP地址总是被占用的问题,我决定用技术解决这个问题 解决方案: 1 最开始想在防火墙里面做IP和mac地址绑定,做了几个之后,还是有同事在说IP被占用,后来 分析了一 ...

  2. juce 中的WeakReference分析

    juce中的WeakReference设计得比较巧妙,巧妙就是使用delete之后就可以通知道WeakReference,原理其实也很间单,其实就是在对象里添加了一个子对象masterReferenc ...

  3. [ZT]DAS\NAS\IP SAN\FC SAN之区别

    DAS:服务器直接后挂存储设备,最经济的一种结构. NAS:网络上直接挂接的存储设备,其实就是处于以太网上的一台利用NFS.CIFS等网络文件系统的文件共享服务器. SAN是网络上的磁盘,NAS是一个 ...

  4. C#.NET Split 的几种使用方法

    第一种方法: string s = "abcdeabcdeabcde"; string[] sArray = s.Split('c'); foreach (string i in ...

  5. QJ系列笔记

    1.求int型数据在内存中存储时1的个数输入一个int型数据,计算出该int型数据在内存中存储时1的个数. #include<stdio.h> void main() { ; int yu ...

  6. MYSQL 查询缓存

    查询缓存: 是指对select 语句的结果进行缓存,当下一次运行同样的select语句时,就可以直接返回数据,跳过解析,执行,优化阶段. 1.查询缓存会跟踪查询涉及的表,如果表发生变化,相关的缓存都会 ...

  7. J2SE知识点摘记(四)

    1.        抽象类(abstract) 抽象类和抽象方法都必须用abstract关键字来修饰. 抽象类不能被直接实例化,也就是不能直接用new关键字去产生对象. 抽象方法只需声明,而不需实现. ...

  8. 使用JLink间接烧写S3C2410、S3C2440开发板Nor、Nand Flash的方法

    1. 简要说明 JLink的调试功能.烧写Flash的功能都很强大,但是对于S3C2410.S3C2440的Flash操作有些麻烦:烧写Nor Flash时需要设置SDRAM,否则速率很慢:烧写Nan ...

  9. xlslib库使用简记

    xlslib库使用简记 1 前言 最近需要使用C++结合xlslib库来生成Excel文件,但发现这个库的文档还真难找,找来找去发现唯一的线索是有一个test/目录里面的几个例子而已. 想到以后要不断 ...

  10. 只有电信3G是公网ip。

    只有电信3G是公网ip,其它网络拿到是内部网.