【问题标题】:Mobile nav open close img移动导航打开关闭img
【发布时间】:2014-10-03 19:59:05
【问题描述】:

我正在制作一个移动导航以及包含一个加号和减号图像以指示子菜单何时打开或关闭的内容。当用户单击以打开子菜单时,我的第一部分工作正常,加号 img 更改为减号 img 但现在我可以在子菜单关闭时将其改回

这里是jquery

$(".listItem").click(function(){
   $(this).find('ul').slideToggle();
 $(this).children('img').attr('src',"images/minus.png");
 })

【问题讨论】:

  • 在 jsfiddle.net 中创建一个工作小提琴,上下文(html 和 css)非常重要
  • 试试$(this).children('img').attr('src', function() { this.src == "images/minus.png" ? "images/plus.png" : "images/minus.png" });
  • 这是一个小提琴link

标签: jquery mobile nav


【解决方案1】:

我喜欢来自@regent 的评论,一个简单的三元应该可以很好地工作。

另一种选择是将图像设置为css中的背景图像,然后您可以使用toggleClass()方法设置图像。

DEMO

HTML:(将您的 navOpen 图像替换为具有 nav-icon 类的 span 元素)

<li class="listItem"><a href="#">Products</a><span class="nav-icon open"></span>

CSS:

.nav-icon{
    float:right;
    padding:3px;
    width: 20px;
    height: 20px;
    background-repeat: no-repeat;
}
.nav-icon.open {
    background-image: url('https://cdn2.iconfinder.com/data/icons/freecns-cumulus/16/519691-199_CircledPlus-20.png');
}
.nav-icon.close {
    background-image: url('https://cdn2.iconfinder.com/data/icons/freecns-cumulus/16/519692-200_CircledMinus-20.png');
}

jQuery:(在列表项中找到导航图标类并在其上切换打开/关闭类

 $('.listItem').click(function(){
    $(this).find('ul').slideToggle();
    $(this).find('.nav-icon').toggleClass('open close');
 });

【讨论】:

  • P.S.在演示中,我将图标设置为绝对位置,以使其脱离文档流。这将确保它不会影响文本的居中。请记住,您必须添加 position: 相对于您的列表项类。
猜你喜欢
  • 1970-01-01
  • 2019-03-27
  • 1970-01-01
  • 1970-01-01
  • 2016-12-05
  • 1970-01-01
  • 1970-01-01
  • 2013-07-25
  • 1970-01-01
相关资源
最近更新 更多