首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有扩展圆动画的黑暗模式

带有扩展圆动画的黑暗模式
EN

Stack Overflow用户
提问于 2021-05-08 00:49:11
回答 3查看 299关注 0票数 1

我有夜间模式(或黑暗模式)切换按钮在我的页面右上角。

这是一个完美示例的链接,它显示了我想做的事情。

然而,不像上面的链接,我切换夜间模式像下面的代码。

我使用数据主题属性来改变模式.(夜>光>夜)

代码语言:javascript
复制
<body data-theme="">
    <div class="toggle" id="switch" onclick="toggleDarkMode()"></div>
</body>

JS

代码语言:javascript
复制
function toggleDarkMode() {
    var dataTheme = $('body').attr('data-theme');
    
    if(dataTheme == 'dark') {   
        $('body').attr('data-theme', 'light');
    } else {
        $('body').attr('data-theme', 'dark');
    }
};

我需要你的建议,如何切换夜间模式与扩展循环动画与关键帧。

提前感谢!

EN

回答 3

Stack Overflow用户

发布于 2021-05-08 01:45:59

对此,一个非常简单但有效的解决方案是创建一个class dark,您可以在其中放置所有的暗模式风格。然后在单击“class”时添加或删除该class

代码语言:javascript
复制
document.querySelector('.toggle').addEventListener('click', function(e) {
  var body = document.getElementsByTagName('body')[0];
  body.className = body.className !== 'dark' && 'dark';
})
代码语言:javascript
复制
.dark {
  background: black;
  color: white;
}
代码语言:javascript
复制
<body>
  <p>Hello world</p>
  <button class='toggle'>Dark Mode</button>
</body>

票数 3
EN

Stack Overflow用户

发布于 2021-05-08 00:59:26

您可以在CSS属性选择器属性的基础上使用data-theme来锁定主体,并对其进行适当的样式设置。

代码语言:javascript
复制
function toggleDarkMode() {
  var dataTheme = $('body').attr('data-theme');

  if (dataTheme == 'dark') {
    $('body').attr('data-theme', 'light');
  } else {
    $('body').attr('data-theme', 'dark');
  }
};
代码语言:javascript
复制
body[data-theme="light"] {
  background-color: white;
  color: black;
}

body[data-theme="dark"] {
  background-color: black;
  color: white;
}
代码语言:javascript
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<body data-theme="light">
  <p>Hello world</p>
  <button class="toggle" id="switch" onclick="toggleDarkMode()">Toggle Theme</button>
</body>

这将允许您使用任何CSS样式,如从您的问题中提供的链接。

票数 1
EN

Stack Overflow用户

发布于 2021-05-08 00:59:08

试试这边

代码语言:javascript
复制
<script>
$(document).ready(function(){
  $("#switch").click(function(){
       var dataTheme = $('body').attr('data-theme');
       if(dataTheme == 'dark') {   
           $('body').attr('data-theme', 'light');
       } else {
           $('body').attr('data-theme', 'dark');
       }
     };
});
</script>
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67443094

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档