【发布时间】:2011-11-16 03:30:06
【问题描述】:
所以我在编写网站的这个小部分时偶然发现了自己的方式,但它有点错误。我知道 jquery 足够危险,但我希望有人可以帮助我使它变得更好、更高效。
以下是我认为可以改进的方法,但我不知道如何完成这些:
- 翻过第一个城市后,移动到下一个城市时,它 不应该带回所有其他标记然后重新隐藏它们。它 应该只是隐藏你所在的标记,然后显示你所在的标记 目前已经结束,但是鼠标悬停和延迟会带回所有标记。
- 目前,如果您从一个翻转到另一个翻转 节奏快,动画好像假发了
- 这是一个奖励,但我最初设想标记会 以递增的顺序制作动画,而不是同时制作动画。 可以是随机的,也可以是定义的。我认为这会使 动画看起来更流畅。我认为这需要一个循环 但就像我之前提到的,我只知道危险。
这里是页面链接:http://204.12.117.109/~sandbox/map/
这是我正在使用的 jquery 代码:
$(function() {
$('.city').mouseenter(function(){
var relid = $(this).attr('rel');
$("#communities div[id!=" + relid + "].pin").animate({
opacity: 0,
top: '-=40',
}, 500);
});
$('.city').mouseleave(function(){
var relid = $(this).attr('rel');
$("#communities div[id!=" + relid + "].pin").animate({
opacity: 1,
top: '+=40',
}, 500, 'easeOutBounce');
});
});
这是我正在使用的 CSS:
#communities { background: url(images/bgCommunities.gif) scroll bottom right no-repeat; position: relative; }
#communities .lists { width: 340px !important; }
#cities li { width: 160px !important; margin: 0px 2px !important; padding: 4px 0 4px 4px; }
#cities li:hover { background-color: rgb(240,240,240); }
#boyle, #long, #santa, #rich, #fres, #sac, #city, #sLA, #coach, #kern, #oak, #merc, #sal, #del { position: absolute; width: 8px; height: 12px; background: url(images/pin.png) 0 0 no-repeat; }
#boyle { top: 230px; right: 95px; }
#long { top: 241px; right: 92px; }
#santa { top: 236px; right: 84px; }
#rich { top: 139px; right: 165px; }
#fres { top: 173px; right: 121px; }
#sac { top: 133px; right: 147px; }
#city { top: 258px; right: 78px; }
#sLA { top: 235px; right: 90px; }
#coach { top: 239px; right: 62px; }
#kern { top: 206px; right: 105px; }
#oak { top: 148px; right: 162px; }
#merc { top: 161px; right: 136px; }
#sal { top: 171px; right: 155px; }
#del { top: 71px; right: 185px; }
这是我正在使用的 HTML:
<div id="communities">
<div class="lists">
<ul id="cities">
<li class="city" rel="boyle"><a href="#">Boyle Heights</a></li>
<li class="city" rel="long"><a href="#">Long Beach</a></li>
<li class="city" rel="santa"><a href="#">Central Santa Ana</a></li>
<li class="city" rel="rich"><a href="#">Richmond</a></li>
<li class="city" rel="fres"><a href="#">Central/SE/SW Fresno</a></li>
<li class="city" rel="sac"><a href="#">Sacramento</a></li>
<li class="city" rel="city"><a href="#">City Heights</a></li>
<li class="city" rel="sLA"><a href="#">South Los Angeles</a></li>
<li class="city" rel="coach"><a href="#" >Coachella Valley</a></li>
<li class="city" rel="kern"><a href="#">South Kern</a></li>
<li class="city" rel="oak"><a href="#">East Oakland</a></li>
<li class="city" rel="merc"><a href="#">SW Merced/East Merced</a></li>
<li class="city" rel="sal"><a href="#">East Salinas (Alisal)</a></li>
<li class="city" rel="del"><a href="#">Del Norte County</a></li>
</ul>
</div>
<div class="pin" id="boyle"></div>
<div class="pin" id="long"></div>
<div class="pin" id="santa"></div>
<div class="pin" id="rich"></div>
<div class="pin" id="fres"></div>
<div class="pin" id="sac"></div>
<div class="pin" id="city"></div>
<div class="pin" id="sLA"></div>
<div class="pin" id="coach"></div>
<div class="pin" id="kern"></div>
<div class="pin" id="oak"></div>
<div class="pin" id="merc"></div>
<div class="pin" id="sal"></div>
<div class="pin" id="del"></div>
【问题讨论】:
-
请重命名您的标题“如何修复错误代码?”以便其他人更容易理解您的问题。你的标题现在太笼统了。还可以尝试让您的 CSS 和 HTML 更简单,以便更容易通过。
-
嘿 Tuva,很抱歉,我真的不知道如何在不破坏功能的情况下使 CSS 和 HTML 更简单。我不知道您是否看到了我的链接,但如果您还没有看到正在运行的代码,可能会解决问题:link