jQuery滚动广告 解决子div绝对定位与父div重叠引起的闪烁问题
这两天做了一个滚动广告栏的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重叠引起的闪烁问题的更多相关文章
- JQuery实现广告效果(滚动切换)
JQuery实现广告效果(滚动切换) Html+css 效果如上图 代码: <!DOCTYPE html> <html> <head lang="en&qu ...
- CSS+DIV:父DIV相对定位+子DIV绝对定位
如何在一个div内将一个div进行绝对定位呢?很简单,把父div的position属性设为relative,子div的position属性设为absolute就可以了... 示例: <html& ...
- <转载>如何解决子级用float浮动父级div高度不能自适应的问题
转载:http://www.kwstu.com/ArticleView/divcss_2013101582430202 解决子级对象使用css float浮动 而父级div不能自适应高度,不能被父级内 ...
- vue setTimeout用法 jquery滚动到某一个div的底部
//vue 中setTimeOut用法 var $this = this; setTimeout(function(){ $this.goEnd() }, 10); goEnd:function(){ ...
- 解决子级用css float浮动 而父级div没高度不能自适应高度
解决子级对象使用css float浮动 而父级div不能自适应高度,不能被父级内容撑开解决方法,父级div没有高度解决方法. 最外层的父级DIV不能自适应高度-不能随对象撑开没有高度 当在对象内的盒子 ...
- CSS| 解决子级用css float浮动 而父级div没高度不能自适应高度
解决子级用css float浮动 而父级div没高度不能自适应高度 解决子级对象使用css float浮动 而父级div不能自适应高度,不能被父级内容撑开解决方法,父级div没有高度解决方法. 最外层 ...
- fullpage 单屏高度超过屏幕高度,实现单屏内可以滚动并解决手机端单屏高度不正确的问题
最近接触了好几次jquery.fullpage.js这个插件,实现整屏的滑动,效果很炫,用fullpage来实现也很简单,但是也碰到了一些问题和大家分享一下 1.单屏高度超过屏幕高度,实现单屏的滑动 ...
- 【IE6的疯狂之十】父级使用padding后子元素绝对定位的BUG
在前端开发中,经常会用到css的position:absolute来使层浮动,前通过left,top,right等属性来对层进行定位,但ie6对left,top,right等属性的解释和ie7,ie8 ...
- 在JSP中使用jQuery的冲突解决(收集整理)
在JSP中使用<jsp:include page="somethingPage.jsp"></jsp>来嵌套页面的时候,会出现jQuery之间的冲突 解决办 ...
随机推荐
- spark基本概念
Client:客户端进程,负责提交作业到Master. Application:Spark Application的概念和Hadoop MapReduce中的类似,指的是用户编写的Spark应用程序, ...
- UVA 806 Spatial Structures
题意: 如果某一大区域所有色块颜色是相同的,那么这一个大区域就算作一块,如果不同,则将其划分成四个小区域,然后重复上述步骤递归进行直到所有区域的颜色相同为止.然后根据上面划分的区域建树,小区域作为大区 ...
- L10 PUtty+SSH 访问vncviewer
在Linux下配置一个VNC服务器,并设置2个用户,要求其中一个用户登录时不需要输入密码.然后在客户端使用ssh+vncview的方式访问. 安装tigervnc: 输入的密码是123456 连接服务 ...
- $.Event 你不知道的用法
最近在使用Bootstrap.js,一不小心趴开源码看了一下,尤其是看到tab.js var hideEvent = $.Event('hide.bs.tab', { relatedTarget: $ ...
- javascript实现当前页导航激活
html <ul id=”nav”> <li><a href=”http://www.daqianduan.com/”>首页</a></li> ...
- Android_使用getIdentifier()获取资源Id
Android 获取资源ID的另外一种方法,常规获取ID是在特定的文件夹下面的资源,如果在比较特殊的文件夹下面,就需要其他方法获取ID 了: 使用getIdentifier()方法可以方便的获各应用包 ...
- Jquery 解决 H5 placeholder元素问题
<style type="text/css"> .placeholder{ color: #cacaca; } </style> <script ty ...
- jquery.validate的效验方式
jQuery校验官网地址:http://bassistance.de/jquery-plugins/jquery-plugin-validation 原文地址:http://www.cnblogs.c ...
- 如何用ATL创建ActiveX控件
演示截图: 代码简介或代码解析: 如何用ATL创建ActiveX控件 实现了一个ActiveX控件,它在一个圆内部有个正多边形,当用户在多变形内部单击将会使多边形的边数在当前的基础上+1,在多变形外部 ...
- Balls Rearrangement(HDU)
Problem Description Bob has N balls and A boxes. He numbers the balls from 0 to N-1, and numbers the ...