实现网页底部菜单图标点击切换效果

实现网页底部菜单图标点击切换效果

首先我们将准备好的图片,放入工程目录中,如图所示,在这里,定义了如下四个图标,在后面加上_hover的就是点击后需要切换的图标 思路:用户点击某图标时将该图标的路径后面加上_hover,将未点击的图标去掉_hover,即可完成效果。

做法一:js切换 html代码如下:

再上js代码: //加上点击事件

$(.btn-menu).click(
			function(event) {
			    if(event.target.tagName === IMG){
			    var nodes = $(.btn-menu img);
			    for(var i=0; i<nodes.length; i++){
			        nodes[i].src = nodes[i].src.replace(_hover.png,.png);
			    }
			    event.target.src = event.target.src.replace(.png,_hover.png);
			    }
			}
		)

做完后可实现点击切换图标的效果,基本算完成了,但是会有一个小问题,如果图标带上链接的话,那么点击图标之后页面就会跳转,跳转之后的页面又会刷新会造成图标复原的情况。这又该如何解决呢。

在这里推荐使用URI判断的方式解决,啥也不说了,先端上代码吧

//定义图标原路径
String[] imgPaths = new String[4];
    imgPaths[0] = "bottom-nav-ico-home";
    imgPaths[1] = "bottom-nav-ico-all";
    imgPaths[2] = "bottom-nav-ico-cart";
    imgPaths[3] = "bottom-nav-ico-user";
//获取到页面URI
    String clickedUri  = request.getRequestURI();
    //先打印出来看看叭
    System.out.println(clickedUri);
    //简单来讲,如果跳到这个链接的话,就把对应的图标路径改变,以此类推...
    if(clickedUri.indexOf("/WEB-INF/view//wechat/sundry/index.jsp") >= 0){
        imgPaths[0] += "_hover";
    }
    if(clickedUri.indexOf("/WEB-INF/view//wechat/sundry/sundry_list.jsp") >= 0){
        imgPaths[1] += "_hover";
    }
    if(clickedUri.indexOf("/WEB-INF/view//wechat/sundry/shop_cart.jsp") >= 0){
        imgPaths[2] += "_hover";
    }
    if(clickedUri.indexOf("/WEB-INF/view//wechat/center/index.jsp") >= 0) {
        imgPaths[3] += "_hover";
    }
    for (int i = 0; i < imgPaths.length; i++){
        imgPaths[i] += ".png";
    }
你没看错,这是写在jsp页面的java脚本,虽然写法奇葩点,但是有用就是王道啦...

最后来看看效果吧

经验分享 程序员 微信小程序 职场和发展