我在做一个图片轮转效果,把下面的数字和图片布局在一起,发现改变按钮(1,2,3...8的链接)样式没加上,而且点第二次的时候有效果。当我把 id 为 divLink的div放在外面,这些链接又是ok的,求解答,好像和js冒泡没关系...
http://files.cnblogs.com/xiaoshuai1992/PicRun.zip demo下载地址
测试谷歌是ok的,IE8不ok
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>图片切换</title> <script src="jquery-1.8.0.js" type="text/javascript"></script> <link href="picchange.css" rel="stylesheet" type="text/css" /> <script type="text/javascript"> var picCurrent = 0; var picTotal = 8; var step = -1; var interval; function picSelect() { setSelectClass(); picAnimate(); return false; } function picMove() { picCurrent = (picCurrent + step + picTotal) % picTotal; picSelect(); } function setSelectClass() { var $a = $("#divLink").children("a"); $a.removeClass("picselect") $a.eq(picCurrent).addClass("picselect") } function picAnimate() { $("#divImg").stop().animate({ left: -((picCurrent) * 1000)}, "1000"); } function picRun(functionName) { interval = setInterval(picMove, "3000"); } function picStop() { clearTimeout(interval); } $(document).ready(function () { $("#divLink").children("a").click(function() { picStop(); picCurrent = $(this).index(); picSelect(); picRun(); }); picRun(); }); </script> </head> <body> <div id="picMain"> <div id="divImg"> <img src="images/pic1.jpg" /> <img src="images/pic2.jpg" /> <img src="images/pic3.jpg" /> <img src="images/pic4.jpg" /> <img src="images/pic5.jpg" /> <img src="images/pic6.jpg" /> <img src="images/pic7.jpg" /> <img src="images/pic8.jpg" /> </div> <div id="divLink"> <a href="###" title="1">1</a> <a href="###" title="2">2</a> <a href="###" title="3">3</a> <a href="###" title="4">4</a> <a href="###" title="5">5</a> <a href="###" title="6">6</a> <a href="###" title="7">7</a> <a href="###" title="8">8</a> </div> </div> </body> </html>
#picMain { margin: auto; overflow: hidden; width: 1000px; height: 400px; position: relative; } #divImg { width: 10000px; height: 400px; background-color: #000000; position: absolute; top: 0px; } #divLink { position: absolute; width: 1000px; height: 50px; background-color: #000000; filter: alpha(opacity=50); -moz-opacity: 0.5; opacity: 0.5; overflow: auto; display: block; bottom: 0px; left: 0px; } #divLink a { border: 1px solid #C0C0C0; width: 30px; height: 30px; float: left; margin-left: 10px; line-height: 30px; text-decoration: none; text-align: center; color: #FFFFFF; font-weight: bold; margin-top: 10px; display: block; } #divImg img { width: 1000px; height: 400px; float: left; } .picselect { background-color: #919191; }
以上HTML和CSS并不是解决楼主的BUG,只是我在你的基础之上修改了一下,正好自我学习一番。希望你不会介意。
我有几个建议:(1)分号漏了哦 (2)大括号位置不统一 (3)函数名,变量名最好是动宾结构,比如picNext改为nextPic
以上仅是个人观点
建议很不错,但是我给链接的地址为图片地址是为了“留后路”,js失效链接也是有效的,不过你的代码比我的简洁多了
@轻狂.书生: 解决了告诉我一下啊,我都崩溃了,就是找不出来为什么IE8会出问题,而谷歌没问题。
@ThreeTree: 可能是透明样式的问题,但是不知道怎么改
使用火狐进入demo没有发现楼主说的问题。 或者楼主可以截图正确应该怎么样
下面的1,2,3...8,点了链接后样式不会马上改变,当你点其他地方时样式才会改变,图片切换是正常的
@轻狂.书生: 额 估计是浏览器兼容性问题。我这边都可以。点击对应按钮,切换对应图片的效果实现了
@轻狂.书生: 应该是你的JS不支持IE8.
加载样式方法重新调用一下