javascript - 将标志添加到 javascript (hasClass)

标签 javascript jquery html css

所以我有图像,当您单击它们时它们会展开(通过 css)。但是,我也想要它,以便在您单击时将图像推到页面顶部。据我所知,如果我使用 toggleClass 函数,那么我需要在启动动画之前有一个标志,但是,我似乎无法让它正常运行。

$("img").on("click", function (){
  $(this).toggleClass("selected");

  if ($("img").hasClass("selected")) {
    found = true;
  }


  var timeout = setTimeout(function () {
            $('html,body').animate({
                scrollTop: $('.selected').offset().top - 60
            }, 100);
        }, 5);
});

最佳答案

您应该考虑使用 CSS3 转换而不是使用计时器进行监控。您设置 transition 以转换 top 属性。然后让 selected 类通过切换来更改 top。更改将导致动画启动。See this example :

HTML:

<div class="bar">weee!</div>

CSS:

.bar{
    width: 100px;
    height: 100px;
    background: red;
    position: relative;
    transition: top 1s ease 0;
    top: 100px;
}

.bar.selected{
    top : 0px;
}

JS:

$('.bar').on('click',function(){
   $(this).toggleClass('selected'); 
});

关于javascript - 将标志添加到 javascript (hasClass),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24702583/

相关文章:

jquery 可排序并可调整大小并具有重叠的列表项

html - margin : 0 auto not working on mobile device

html - 并排显示两个 div 元素的文本溢出

python - 在检查粗体时从 HTML 文件中提取所有文本 (Python)

javascript - 在 PHP 中查询嵌套的 HTML 标签以返回其属性的值

javascript - ReduxReducer - 根据 id 过滤数组,然后更改键/值对

jquery - session 超时后,对第一个请求的后续 AJAX post 请求将抛出 InvalidCsrfTokenException

javascript - 发送 ajax 请求而不等待回答

javascript - 当第一项相同时更新第二项 - ReactJS

javascript - 一次性绑定(bind)在自定义 AngularJS 指令中不起作用