【问题标题】:How to animate a dynamically changing div when a button is clicked单击按钮时如何为动态变化的div设置动画
【发布时间】:2017-12-05 18:20:03
【问题描述】:

用于显示使用指定语言的项目的投资组合的代码的 sn-p。返回的 div 会立即更改,但我想要更改时的动画效果。这是我的 HTML:

                <div>
                    <button class="waves-effect waves-light btn-large" onclick="checkProjects('python');">Python</button>
                </div>
                <div>
                    <button class="waves-effect waves-light btn-large" onclick="checkProjects('javascript');">Javascript</button>

                </div>

            <div class="col s6 project-list">
                <div class = "project1 col s12">
                    <div id="project1Title" class="project-title col s12"></div>
                    <img id="project1Pic" class="project-picture col s6" src="">
                    <div id ="project1Caption" class="col s6"></div>
                </div>
                <div class="project2 col s12">
                    <div id="project2Title" class="project-title col s12"></div>
                    <img id="project2Pic" class="project-picture col s6" src="">
                    <div id ="project2Caption" class="project-caption col s6"></div>
                </div>
            </div>

每当 project1...project2...etc 发生变化时,我都想要一个动画。

【问题讨论】:

  • 尝试使用 animate.css 吗? daneden.github.io/animate.css
  • “当它们被改变时”是什么意思?发生了什么变化?
  • 用户是否点击它以显示更多信息?他们是否正在浏览项目的幻灯片?
  • div 改变并显示项目标题/图片/标题。他们正在点击查看哪些项目使用了 python、javascript 等

标签: css animation transitions


【解决方案1】:

我能想到的基本上有两种基本方法可以完成你想做的事情。

你可以

  1. 添加/删除一个类以转换为您想要的任何样式。
  2. 使用 javascript 或 jquery 手动设置过渡动画。

听起来你的动画比较复杂,最好还是用jquery吧。

// When the user clicks on a project
$('.project').on('click',function() {

  // Animate the project element
  $(this).animate({
    opacity:1
  },{duration:200,queue:false})

  // To access this specific project's child 
  // elements (ie, title, picture, caption) you will 
  // need to use .children
  $(this).children('.project-title').animate({
    opacity:1,
    top:'50px'
  },{duration:200,queue:false})
})

Jquery 的动画功能对于复杂的多元素动画非常有用,查看here 了解更多信息

【讨论】:

  • 另外,您的标题和标题 div 似乎是空的。您也可以通过$('project-title').innerHTML('content') 在此函数中放置内容。但最好将内容放在标记中,然后用 jquery 隐藏/显示它们。
  • div 不是硬编码的,因为它们在单击按钮时通过 checkProjects() 函数进行更改
猜你喜欢
  • 2013-08-15
  • 1970-01-01
  • 1970-01-01
  • 2013-07-31
  • 1970-01-01
  • 2013-03-18
  • 1970-01-01
  • 2014-10-10
  • 1970-01-01
相关资源
最近更新 更多