javascript - 我如何在 html css 和 jquery 上创建一个响应式菜单,一个一个地隐藏 li 元素?

标签 javascript jquery html css

例如这是菜单:

<ul class="main-menu">
  <li>1</li>
  <li>2</li>
  <li>3</li>
  <li>4</li>
  <li>5</li>
  <li>6</li>
</ul>

我需要在调整大小时隐藏 6,在 5 之后,菜单将如下所示:

<ul class="main-menu">
  <li>1
    <ul>
        <li>6</li>
        <li>5</li>
    </ul>
  </li>
  <li>2</li>
  <li>3</li>
  <li>4</li>
</ul>

最佳答案

您当然可以提高效率。这只是说明解决方案。

您的 HTML:

<ul class="main-menu">
  <li>1</li>
  <li>2</li>
  <li>3</li>
  <li>4</li>
  <li>5</li>
  <li>6</li>
</ul>

JS:

$( window ).resize(function() {
    var liWidth = 100;
    if($(window).height()/$('.main-menu').children().length < liWidth){
        console.log('here');
        if($('.main-menu li').first().find('ul').length > 0){
            $('.main-menu li').first().find('ul').append('<li>'+$('.main-menu li').last().html()+'</li>');
            $('.main-menu li').last().remove();
        }
        else{
            $('.main-menu li').first().append('<ul><li>'+$('.main-menu li').last().html()+'</li></ul>');
            $('.main-menu li').last().remove();
        }
    }

    else if($(window).height()/($('.main-menu').children().length + 1) > liWidth){
        console.log('there');
        if($('.main-menu li').first().find('ul li').length === 1 ){
            $('.main-menu').append('<li>' +$('.main-menu li').first().find('ul li').html() + '</li>')
            $('.main-menu li').first().find('ul').remove();
        }
        else if ($('.main-menu li').first().find('ul li').length > 1) {
            $('.main-menu').append('<li>' +$('.main-menu li').first().find('ul li').last().html() + '</li>')
            $('.main-menu li').first().find('ul li').last().remove();
        }
    } 
});

结果:

Fiddle

关于javascript - 我如何在 html css 和 jquery 上创建一个响应式菜单,一个一个地隐藏 li 元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24811877/

相关文章:

javascript - 当我添加应成为新 ':last' 的新元素时,jQuery 单击事件不会更新 ":last"

javascript - 获取图像的 webkit-transform

javascript - 使用键和值时 ng-repeat 无法正常工作

Javascript:根据属性值将对象数组拆分为具有动态名称的单独数组

php - 用户友好的时间输入

javascript - 如何使用 javascript 从动画 gif 中提取帧?

html - 不显示背景图像,但显示背景颜色

javascript - Jquery 对话框上的 Ajax 问题

javascript - 如何将动态创建的文本框值传递给jquery中的数组

javascript - 如何呈现带有链接但没有其他 html 的用户帖子?