javascript - 根据屏幕尺寸更改过渡类型

标签 javascript jquery html css

基本上代码应该做什么 - 如果网站大小大于 750 像素,则下拉菜单会随着悬停效果向下滑动,但如果其小于 750 像素的下拉菜单在点击切换时起作用。

我检查媒体查询是否已更改(大于 750 像素 float == 左)和是否(小于 750 像素 float == 无) 如果我从 650 像素的 Web 宽度开始,它会在点击切换时起作用,但是当我将其调整为全屏然后返回到 650 像素时,它不仅在点击切换时显示为悬停和点击切换。

谁能解释我做错了什么?我对 jquery 很陌生。

提前致谢!

$(document).ready(function() {
    checkSize();
    $(window).resize(checkSize);
});

//Function to the css rule
function checkSize() {
    if ($("#drop > li").css("float") == "none") {
        $('#dropdown-btn').click(function() {
            $('.dropdown').slideToggle(200);

        });
    } else if ($("#drop > li").css("float") == "left") {
        $('#dropdown-btn').hover(
            function() {
                $('.dropdown').slideDown(200);




            },
            function() {
                $('.dropdown').slideUp(200);


            }

        );
    }
}; 

最佳答案

我认为您的问题在于,您的 checkSize 函数每次触发时都会绑定(bind)一个事件,这在调整大小时会产生很多影响。更好的方法是摆脱调整大小功能并在事件中使用 if 语句,如下所示:

$(document).ready(function() {

    $('#dropdown-btn').on('click',function() {
      if($("#drop > li").css("float") == "none"))
        $('.dropdown').slideToggle(200);
    });

    $('#dropdown-btn').on({
      mouseenter: function () {
        //stuff to do on mouse enter
        if ($("#drop > li").css("float") == "left")
          $('.dropdown').slideDown(200);
      },
      mouseleave: function () {
        //stuff to do on mouse leave
        if ($("#drop > li").css("float") == "left")
          $('.dropdown').slideUp(200);
      }
});

您还应该使用 jQuery 的 on() 函数,而不是 hover()click()

引用:http://api.jquery.com/on/

关于javascript - 根据屏幕尺寸更改过渡类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36507650/

相关文章:

javascript - 我可以在对象类的更改上触发或执行 JavaScript 函数吗?

javascript - 用 innerhtml 替换节点

jquery - 如何将类添加到类名不在数组中的元素

javascript - Jquery 模板不适用于 'each'

jquery - 开头有特定计数的 CSS 计数器

html - 当 parent 的 parent 有动画时,为什么我的 iframe 会出错?

javascript - Kendo datepicker 值方法不会触发自己的更改事件

javascript - 在一个 JSP 文件中调用另一个 JSP 文件中定义的函数

javascript - 使用 javascript/jquery 检查函数是否已完成其任务

javascript - 将 Javascript 应用于 XSL